add WCAG contrast table, add raw OKLCH definitions
This commit is contained in:
parent
f01b841aa8
commit
d98de5aba4
91
DESIGN.md
91
DESIGN.md
@ -85,19 +85,13 @@ the relevant values for making a decision. We want to ensure all accents can
|
||||
reach >4.5 WCAG 2 contrast ratio (the standard requirement for small text on
|
||||
the web) against all biome monotones for each theme:
|
||||
|
||||
+ For BG l20 (harsh, dark) -> l65 is min lightness where all accents have CR
|
||||
>=4.5
|
||||
+ For BG l25 (regular, dark) -> l65 is min lightness where all accents have CR
|
||||
>=4.5
|
||||
+ For BG l30 (soft, dark) -> l70 is min lightness where all accents have CR
|
||||
>=4.5
|
||||
+ For BG l20 (harsh, dark) -> l65 is min lightness where all accents have CR >=4.5
|
||||
+ For BG l25 (regular, dark) -> l65 is min lightness where all accents have CR >=4.5
|
||||
+ For BG l30 (soft, dark) -> l70 is min lightness where all accents have CR >=4.5
|
||||
|
||||
+ For BG l90 (harsh, dark) -> l45 is max lightness where all accents have CR
|
||||
>=4.5
|
||||
+ For BG l85 (regular, dark) -> l45 is min lightness where all accents have CR
|
||||
>=4.5
|
||||
+ For BG l80 (soft, dark) -> l40 is min lightness where all accents have CR
|
||||
>=4.5
|
||||
+ For BG l90 (harsh, dark) -> l45 is max lightness where all accents have CR >=4.5
|
||||
+ For BG l85 (regular, dark) -> l45 is min lightness where all accents have CR >=4.5
|
||||
+ For BG l80 (soft, dark) -> l40 is min lightness where all accents have CR >=4.5
|
||||
|
||||
For the monotone boundaries (l15 and l95, neither of which are possible
|
||||
backgrounds for terminal or nvim in the current theme definitions), the
|
||||
@ -117,3 +111,76 @@ shade" of the l15-l95 shade group is l55, meaning these groups are very central
|
||||
(the light triplet could move down by one shade step, but we want these accents
|
||||
to be as bright as we can get away with; otherwise, they are extremely dull in
|
||||
the light modes, and we thus don't mind bias toward a brighter lightness).
|
||||
|
||||
The following table shows the lightness thresholds of accent colors required to achieve various
|
||||
contrast ratios under different lightness levels of monotone backgrounds. These
|
||||
ratios correspond to WCAG 2.2 standards:
|
||||
|
||||
- WCAG AA: contrast ratio ≥3:1 for large text, ≥4.5:1 for normal text
|
||||
- WCAG AAA: contrast ratio ≥4.5:1 for large text, ≥7:1 for normal text
|
||||
|
||||
The official theme variants treat WCAG AA for normal text as the sweet spot,
|
||||
but one could redefine accent selection around a more extreme contrast
|
||||
threshold as desired.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th rowspan="2">Monotone<br>lightness</th>
|
||||
<th colspan="3">Accent lightness for contrast ratio</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>3:1</th>
|
||||
<th>4.5:1</th>
|
||||
<th>7:1</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>=15%</td>
|
||||
<td>≥50%</td>
|
||||
<td>≥60%</td>
|
||||
<td>≥75%</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>=20%</td>
|
||||
<td>≥55%</td>
|
||||
<td>≥65%</td>
|
||||
<td>≥75%</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>=25%</td>
|
||||
<td>≥55%</td>
|
||||
<td>≥65%</td>
|
||||
<td>≥80%</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>=30%</td>
|
||||
<td>≥60%</td>
|
||||
<td>≥70%</td>
|
||||
<td>≥80%</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>=80%</td>
|
||||
<td>≤50%</td>
|
||||
<td>≤40%</td>
|
||||
<td>≤30%</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>=85%</td>
|
||||
<td>≤50%</td>
|
||||
<td>≤45%</td>
|
||||
<td>≤30%</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>=90%</td>
|
||||
<td>≤55%</td>
|
||||
<td>≤45%</td>
|
||||
<td>≤35%</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>=95%</td>
|
||||
<td>≤60%</td>
|
||||
<td>≤50%</td>
|
||||
<td>≤40%</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
|
||||
222
templates/groups/monobiome-oklch.json
Normal file
222
templates/groups/monobiome-oklch.json
Normal file
@ -0,0 +1,222 @@
|
||||
{
|
||||
"default": {
|
||||
"l15": "oklch(15% 0 137.33)",
|
||||
"l20": "oklch(20% 0 137.33)",
|
||||
"l25": "oklch(25% 0 137.33)",
|
||||
"l30": "oklch(30% 0 137.33)",
|
||||
"l35": "oklch(35% 0 137.33)",
|
||||
"l40": "oklch(40% 0 137.33)",
|
||||
"l45": "oklch(45% 0 137.33)",
|
||||
"l50": "oklch(50% 0 137.33)",
|
||||
"l55": "oklch(55% 0 137.33)",
|
||||
"l60": "oklch(60% 0 137.33)",
|
||||
"l65": "oklch(65% 0 137.33)",
|
||||
"l70": "oklch(70% 0 137.33)",
|
||||
"l75": "oklch(75% 0 137.33)",
|
||||
"l80": "oklch(80% 0 137.33)",
|
||||
"l85": "oklch(85% 0 137.33)",
|
||||
"l90": "oklch(90% 0 137.33)",
|
||||
"l95": "oklch(95% 0 137.33)",
|
||||
"l98": "oklch(97.5% 0 137.33)"
|
||||
},
|
||||
"badlands": {
|
||||
"l15": "oklch(15% 0.011 29)",
|
||||
"l20": "oklch(20% 0.011 29)",
|
||||
"l25": "oklch(25% 0.011 29)",
|
||||
"l30": "oklch(30% 0.011 29)",
|
||||
"l35": "oklch(35% 0.011 29)",
|
||||
"l40": "oklch(40% 0.011 29)",
|
||||
"l45": "oklch(45% 0.011 29)",
|
||||
"l50": "oklch(50% 0.011 29)",
|
||||
"l55": "oklch(55% 0.011 29)",
|
||||
"l60": "oklch(60% 0.011 29)",
|
||||
"l65": "oklch(65% 0.011 29)",
|
||||
"l70": "oklch(70% 0.011 29)",
|
||||
"l75": "oklch(75% 0.011 29)",
|
||||
"l80": "oklch(80% 0.011 29)",
|
||||
"l85": "oklch(85% 0.011 29)",
|
||||
"l90": "oklch(90% 0.011 29)",
|
||||
"l95": "oklch(95% 0.011 29)",
|
||||
"l98": "oklch(97.5% 0.011 29)"
|
||||
},
|
||||
"chaparral": {
|
||||
"l15": "oklch(15% 0.011 62.5)",
|
||||
"l20": "oklch(20% 0.011 62.5)",
|
||||
"l25": "oklch(25% 0.011 62.5)",
|
||||
"l30": "oklch(30% 0.011 62.5)",
|
||||
"l35": "oklch(35% 0.011 62.5)",
|
||||
"l40": "oklch(40% 0.011 62.5)",
|
||||
"l45": "oklch(45% 0.011 62.5)",
|
||||
"l50": "oklch(50% 0.011 62.5)",
|
||||
"l55": "oklch(55% 0.011 62.5)",
|
||||
"l60": "oklch(60% 0.011 62.5)",
|
||||
"l65": "oklch(65% 0.011 62.5)",
|
||||
"l70": "oklch(70% 0.011 62.5)",
|
||||
"l75": "oklch(75% 0.011 62.5)",
|
||||
"l80": "oklch(80% 0.011 62.5)",
|
||||
"l85": "oklch(85% 0.011 62.5)",
|
||||
"l90": "oklch(90% 0.011 62.5)",
|
||||
"l95": "oklch(95% 0.011 62.5)",
|
||||
"l98": "oklch(97.5% 0.011 62.5)"
|
||||
},
|
||||
"savanna": {
|
||||
"l15": "oklch(15% 0.011 104)",
|
||||
"l20": "oklch(20% 0.011 104)",
|
||||
"l25": "oklch(25% 0.011 104)",
|
||||
"l30": "oklch(30% 0.011 104)",
|
||||
"l35": "oklch(35% 0.011 104)",
|
||||
"l40": "oklch(40% 0.011 104)",
|
||||
"l45": "oklch(45% 0.011 104)",
|
||||
"l50": "oklch(50% 0.011 104)",
|
||||
"l55": "oklch(55% 0.011 104)",
|
||||
"l60": "oklch(60% 0.011 104)",
|
||||
"l65": "oklch(65% 0.011 104)",
|
||||
"l70": "oklch(70% 0.011 104)",
|
||||
"l75": "oklch(75% 0.011 104)",
|
||||
"l80": "oklch(80% 0.011 104)",
|
||||
"l85": "oklch(85% 0.011 104)",
|
||||
"l90": "oklch(90% 0.011 104)",
|
||||
"l95": "oklch(95% 0.011 104)",
|
||||
"l98": "oklch(97.5% 0.011 104)"
|
||||
},
|
||||
"grassland": {
|
||||
"l15": "oklch(15.01% 0.011 148)",
|
||||
"l20": "oklch(20% 0.011 148)",
|
||||
"l25": "oklch(25% 0.011 148)",
|
||||
"l30": "oklch(30% 0.011 148)",
|
||||
"l35": "oklch(35% 0.011 148)",
|
||||
"l40": "oklch(40% 0.011 148)",
|
||||
"l45": "oklch(45% 0.011 148)",
|
||||
"l50": "oklch(50% 0.011 148)",
|
||||
"l55": "oklch(55% 0.011 148)",
|
||||
"l60": "oklch(60% 0.011 148)",
|
||||
"l65": "oklch(65% 0.011 148)",
|
||||
"l70": "oklch(70% 0.011 148)",
|
||||
"l75": "oklch(75% 0.011 148)",
|
||||
"l80": "oklch(80% 0.011 148)",
|
||||
"l85": "oklch(85% 0.011 148)",
|
||||
"l90": "oklch(90% 0.011 148)",
|
||||
"l95": "oklch(95% 0.011 148)",
|
||||
"l98": "oklch(97.5% 0.011 148)"
|
||||
},
|
||||
"tundra": {
|
||||
"l15": "oklch(15% 0.011 262)",
|
||||
"l20": "oklch(20% 0.011 262)",
|
||||
"l25": "oklch(25% 0.011 262)",
|
||||
"l30": "oklch(30% 0.011 262)",
|
||||
"l35": "oklch(35% 0.011 262)",
|
||||
"l40": "oklch(40% 0.011 262)",
|
||||
"l45": "oklch(45% 0.011 262)",
|
||||
"l50": "oklch(50% 0.011 262)",
|
||||
"l55": "oklch(55% 0.011 262)",
|
||||
"l60": "oklch(60% 0.011 262)",
|
||||
"l65": "oklch(65% 0.011 262)",
|
||||
"l70": "oklch(70% 0.011 262)",
|
||||
"l75": "oklch(75% 0.011 262)",
|
||||
"l80": "oklch(80% 0.011 262)",
|
||||
"l85": "oklch(85% 0.011 262)",
|
||||
"l90": "oklch(90% 0.011 262)",
|
||||
"l95": "oklch(95% 0.011 262)",
|
||||
"l98": "oklch(97.5% 0.011 262)"
|
||||
},
|
||||
"red": {
|
||||
"l15": "oklch(15% 0.058 29)",
|
||||
"l20": "oklch(20% 0.074 29)",
|
||||
"l25": "oklch(25% 0.092 29)",
|
||||
"l30": "oklch(30% 0.11 29)",
|
||||
"l35": "oklch(35% 0.128 29)",
|
||||
"l40": "oklch(40% 0.147 29)",
|
||||
"l45": "oklch(45% 0.167 29)",
|
||||
"l50": "oklch(50% 0.183 29)",
|
||||
"l55": "oklch(55% 0.193 29)",
|
||||
"l60": "oklch(60% 0.193 29)",
|
||||
"l65": "oklch(65% 0.182 29)",
|
||||
"l70": "oklch(70% 0.164 29)",
|
||||
"l75": "oklch(75% 0.14 29)",
|
||||
"l80": "oklch(80% 0.112 29)",
|
||||
"l85": "oklch(85% 0.081 29)",
|
||||
"l90": "oklch(90% 0.052 29)",
|
||||
"l95": "oklch(95% 0.024 29)",
|
||||
"l98": "oklch(97.5% 0.012 29)"
|
||||
},
|
||||
"orange": {
|
||||
"l15": "oklch(15% 0.0301 62.5)",
|
||||
"l20": "oklch(20% 0.038 62.5)",
|
||||
"l25": "oklch(25% 0.046 62.5)",
|
||||
"l30": "oklch(30% 0.058 62.5)",
|
||||
"l35": "oklch(35% 0.07 62.5)",
|
||||
"l40": "oklch(40% 0.084 62.5)",
|
||||
"l45": "oklch(45% 0.1 62.5)",
|
||||
"l50": "oklch(50% 0.114 62.5)",
|
||||
"l55": "oklch(55% 0.125 62.5)",
|
||||
"l60": "oklch(60% 0.134 62.5)",
|
||||
"l65": "oklch(65% 0.138 62.5)",
|
||||
"l70": "oklch(70% 0.136 62.5)",
|
||||
"l75": "oklch(75% 0.128 62.5)",
|
||||
"l80": "oklch(80% 0.112 62.5)",
|
||||
"l85": "oklch(85% 0.092 62.5)",
|
||||
"l90": "oklch(90% 0.064 62.5)",
|
||||
"l95": "oklch(95% 0.032 62.5)",
|
||||
"l98": "oklch(97.5% 0.008 62.5)"
|
||||
},
|
||||
"yellow": {
|
||||
"l15": "oklch(14.99% 0.02 104)",
|
||||
"l20": "oklch(20% 0.024 104)",
|
||||
"l25": "oklch(25% 0.03 104)",
|
||||
"l30": "oklch(30% 0.036 104)",
|
||||
"l35": "oklch(35% 0.044 104)",
|
||||
"l40": "oklch(40% 0.05 104)",
|
||||
"l45": "oklch(45% 0.06 104)",
|
||||
"l50": "oklch(50% 0.068 104)",
|
||||
"l55": "oklch(55% 0.076 104)",
|
||||
"l60": "oklch(60% 0.082 104)",
|
||||
"l65": "oklch(65% 0.088 104)",
|
||||
"l70": "oklch(70% 0.088 104)",
|
||||
"l75": "oklch(75% 0.086 104)",
|
||||
"l80": "oklch(80% 0.082 104)",
|
||||
"l85": "oklch(85% 0.072 104)",
|
||||
"l90": "oklch(90% 0.058 104)",
|
||||
"l95": "oklch(95% 0.04 104)",
|
||||
"l98": "oklch(97.5% 0.016 104)"
|
||||
},
|
||||
"green": {
|
||||
"l15": "oklch(14.99% 0.0401 148)",
|
||||
"l20": "oklch(20% 0.048 148)",
|
||||
"l25": "oklch(25% 0.056 148)",
|
||||
"l30": "oklch(30% 0.064 148)",
|
||||
"l35": "oklch(35% 0.072 148)",
|
||||
"l40": "oklch(40% 0.08 148)",
|
||||
"l45": "oklch(45% 0.09 148)",
|
||||
"l50": "oklch(50% 0.098 148)",
|
||||
"l55": "oklch(55% 0.104 148)",
|
||||
"l60": "oklch(60% 0.108 148)",
|
||||
"l65": "oklch(65% 0.11 148)",
|
||||
"l70": "oklch(70% 0.108 148)",
|
||||
"l75": "oklch(75% 0.102 148)",
|
||||
"l80": "oklch(80% 0.094 148)",
|
||||
"l85": "oklch(85% 0.084 148)",
|
||||
"l90": "oklch(90% 0.072 148)",
|
||||
"l95": "oklch(95% 0.05 148)",
|
||||
"l98": "oklch(97.5% 0.024 148)"
|
||||
},
|
||||
"blue": {
|
||||
"l15": "oklch(15% 0.06 262)",
|
||||
"l20": "oklch(20% 0.072 262)",
|
||||
"l25": "oklch(25% 0.084 262)",
|
||||
"l30": "oklch(30% 0.096 262)",
|
||||
"l35": "oklch(35% 0.106 262)",
|
||||
"l40": "oklch(40% 0.116 262.01)",
|
||||
"l45": "oklch(45% 0.124 262)",
|
||||
"l50": "oklch(50% 0.13 262)",
|
||||
"l55": "oklch(55% 0.132 262)",
|
||||
"l60": "oklch(60% 0.128 262)",
|
||||
"l65": "oklch(65% 0.122 262)",
|
||||
"l70": "oklch(70% 0.11 262)",
|
||||
"l75": "oklch(75% 0.096 262)",
|
||||
"l80": "oklch(80% 0.08 262)",
|
||||
"l85": "oklch(85% 0.064 262)",
|
||||
"l90": "oklch(90% 0.044 262)",
|
||||
"l95": "oklch(95% 0.023 262)",
|
||||
"l98": "oklch(97.5% 0.011 262)"
|
||||
}
|
||||
}
|
||||
@ -1,4 +1,4 @@
|
||||
version = "1.1.0"
|
||||
version = "1.1.1"
|
||||
|
||||
[default]
|
||||
l15 = "#0b0b0b"
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user