@hanzo/design 0.5.12 → 0.5.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -15,20 +15,25 @@ export declare const colors: {
15
15
  readonly 'pure-white': "#FFFFFF";
16
16
  readonly 'hanzo-black': "#0A0A0B";
17
17
  readonly 'hanzo-white': "#FFFFFF";
18
+ readonly 'white-03': "rgb(255 255 255 / .03)";
18
19
  readonly 'white-05': "rgb(255 255 255 / .05)";
19
20
  readonly 'white-06': "rgb(255 255 255 / .06)";
20
21
  readonly 'white-08': "rgb(255 255 255 / .08)";
21
22
  readonly 'white-10': "rgb(255 255 255 / .10)";
23
+ readonly 'white-14': "rgb(255 255 255 / .14)";
22
24
  readonly 'white-15': "rgb(255 255 255 / .15)";
23
25
  readonly 'white-16': "rgb(255 255 255 / .16)";
26
+ readonly 'white-18': "rgb(255 255 255 / .18)";
24
27
  readonly 'white-20': "rgb(255 255 255 / .20)";
25
28
  readonly 'white-22': "rgb(255 255 255 / .22)";
26
29
  readonly 'white-30': "rgb(255 255 255 / .30)";
27
30
  readonly 'white-40': "rgb(255 255 255 / .40)";
31
+ readonly 'white-45': "rgb(255 255 255 / .45)";
28
32
  readonly 'white-55': "rgb(255 255 255 / .55)";
29
33
  readonly 'white-60': "rgb(255 255 255 / .60)";
30
34
  readonly 'white-78': "rgb(255 255 255 / .78)";
31
35
  readonly 'white-80': "rgb(255 255 255 / .80)";
36
+ readonly 'white-92': "rgb(255 255 255 / .92)";
32
37
  readonly background: "#0a0a0a";
33
38
  readonly foreground: "#fafafa";
34
39
  readonly card: "#0f0f0f";
@@ -313,20 +318,25 @@ export declare const cssVars: {
313
318
  readonly '--pure-white': "#FFFFFF";
314
319
  readonly '--hanzo-black': "#0A0A0B";
315
320
  readonly '--hanzo-white': "#FFFFFF";
321
+ readonly '--white-03': "rgb(255 255 255 / .03)";
316
322
  readonly '--white-05': "rgb(255 255 255 / .05)";
317
323
  readonly '--white-06': "rgb(255 255 255 / .06)";
318
324
  readonly '--white-08': "rgb(255 255 255 / .08)";
319
325
  readonly '--white-10': "rgb(255 255 255 / .10)";
326
+ readonly '--white-14': "rgb(255 255 255 / .14)";
320
327
  readonly '--white-15': "rgb(255 255 255 / .15)";
321
328
  readonly '--white-16': "rgb(255 255 255 / .16)";
329
+ readonly '--white-18': "rgb(255 255 255 / .18)";
322
330
  readonly '--white-20': "rgb(255 255 255 / .20)";
323
331
  readonly '--white-22': "rgb(255 255 255 / .22)";
324
332
  readonly '--white-30': "rgb(255 255 255 / .30)";
325
333
  readonly '--white-40': "rgb(255 255 255 / .40)";
334
+ readonly '--white-45': "rgb(255 255 255 / .45)";
326
335
  readonly '--white-55': "rgb(255 255 255 / .55)";
327
336
  readonly '--white-60': "rgb(255 255 255 / .60)";
328
337
  readonly '--white-78': "rgb(255 255 255 / .78)";
329
338
  readonly '--white-80': "rgb(255 255 255 / .80)";
339
+ readonly '--white-92': "rgb(255 255 255 / .92)";
330
340
  readonly '--background': "#0a0a0a";
331
341
  readonly '--foreground': "#fafafa";
332
342
  readonly '--card': "#0f0f0f";
@@ -1 +1 @@
1
- {"version":3,"file":"tokens.gen.d.ts","sourceRoot":"","sources":["../src/tokens.gen.ts"],"names":[],"mappings":"AAIA,kEAAkE;AAClE,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyFT,CAAA;AAEV,0EAA0E;AAC1E,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmEb,CAAA;AAEV,oEAAoE;AACpE,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2CV,CAAA;AAEV,8DAA8D;AAC9D,eAAO,MAAM,IAAI;;;;;;;;;;;;CAYP,CAAA;AAEV,kEAAkE;AAClE,eAAO,MAAM,MAAM;;;;;;;;;CAST,CAAA;AAEV,wEAAwE;AACxE,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2BZ,CAAA;AAEV,kEAAkE;AAClE,eAAO,MAAM,MAAM;;;;;;;;;;;;;CAaT,CAAA;AAEV,6DAA6D;AAC7D,eAAO,MAAM,MAAM;;;;;;;;;;;;CAYT,CAAA;AAEV,gEAAgE;AAChE,eAAO,MAAM,KAAK;;;;;;CAMR,CAAA;AAEV,8DAA8D;AAC9D,eAAO,MAAM,IAAI,IAEP,CAAA;AAEV,sFAAsF;AACtF,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8QV,CAAA;AAEV,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,OAAO,CAAA"}
1
+ {"version":3,"file":"tokens.gen.d.ts","sourceRoot":"","sources":["../src/tokens.gen.ts"],"names":[],"mappings":"AAIA,kEAAkE;AAClE,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8FT,CAAA;AAEV,0EAA0E;AAC1E,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmEb,CAAA;AAEV,oEAAoE;AACpE,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2CV,CAAA;AAEV,8DAA8D;AAC9D,eAAO,MAAM,IAAI;;;;;;;;;;;;CAYP,CAAA;AAEV,kEAAkE;AAClE,eAAO,MAAM,MAAM;;;;;;;;;CAST,CAAA;AAEV,wEAAwE;AACxE,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2BZ,CAAA;AAEV,kEAAkE;AAClE,eAAO,MAAM,MAAM;;;;;;;;;;;;;CAaT,CAAA;AAEV,6DAA6D;AAC7D,eAAO,MAAM,MAAM;;;;;;;;;;;;CAYT,CAAA;AAEV,gEAAgE;AAChE,eAAO,MAAM,KAAK;;;;;;CAMR,CAAA;AAEV,8DAA8D;AAC9D,eAAO,MAAM,IAAI,IAEP,CAAA;AAEV,sFAAsF;AACtF,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmRV,CAAA;AAEV,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,OAAO,CAAA"}
@@ -18,20 +18,25 @@ export const colors = {
18
18
  'pure-white': '#FFFFFF',
19
19
  'hanzo-black': '#0A0A0B',
20
20
  'hanzo-white': '#FFFFFF',
21
+ 'white-03': 'rgb(255 255 255 / .03)',
21
22
  'white-05': 'rgb(255 255 255 / .05)',
22
23
  'white-06': 'rgb(255 255 255 / .06)',
23
24
  'white-08': 'rgb(255 255 255 / .08)',
24
25
  'white-10': 'rgb(255 255 255 / .10)',
26
+ 'white-14': 'rgb(255 255 255 / .14)',
25
27
  'white-15': 'rgb(255 255 255 / .15)',
26
28
  'white-16': 'rgb(255 255 255 / .16)',
29
+ 'white-18': 'rgb(255 255 255 / .18)',
27
30
  'white-20': 'rgb(255 255 255 / .20)',
28
31
  'white-22': 'rgb(255 255 255 / .22)',
29
32
  'white-30': 'rgb(255 255 255 / .30)',
30
33
  'white-40': 'rgb(255 255 255 / .40)',
34
+ 'white-45': 'rgb(255 255 255 / .45)',
31
35
  'white-55': 'rgb(255 255 255 / .55)',
32
36
  'white-60': 'rgb(255 255 255 / .60)',
33
37
  'white-78': 'rgb(255 255 255 / .78)',
34
38
  'white-80': 'rgb(255 255 255 / .80)',
39
+ 'white-92': 'rgb(255 255 255 / .92)',
35
40
  'background': '#0a0a0a',
36
41
  'foreground': '#fafafa',
37
42
  'card': '#0f0f0f',
@@ -316,20 +321,25 @@ export const cssVars = {
316
321
  '--pure-white': '#FFFFFF',
317
322
  '--hanzo-black': '#0A0A0B',
318
323
  '--hanzo-white': '#FFFFFF',
324
+ '--white-03': 'rgb(255 255 255 / .03)',
319
325
  '--white-05': 'rgb(255 255 255 / .05)',
320
326
  '--white-06': 'rgb(255 255 255 / .06)',
321
327
  '--white-08': 'rgb(255 255 255 / .08)',
322
328
  '--white-10': 'rgb(255 255 255 / .10)',
329
+ '--white-14': 'rgb(255 255 255 / .14)',
323
330
  '--white-15': 'rgb(255 255 255 / .15)',
324
331
  '--white-16': 'rgb(255 255 255 / .16)',
332
+ '--white-18': 'rgb(255 255 255 / .18)',
325
333
  '--white-20': 'rgb(255 255 255 / .20)',
326
334
  '--white-22': 'rgb(255 255 255 / .22)',
327
335
  '--white-30': 'rgb(255 255 255 / .30)',
328
336
  '--white-40': 'rgb(255 255 255 / .40)',
337
+ '--white-45': 'rgb(255 255 255 / .45)',
329
338
  '--white-55': 'rgb(255 255 255 / .55)',
330
339
  '--white-60': 'rgb(255 255 255 / .60)',
331
340
  '--white-78': 'rgb(255 255 255 / .78)',
332
341
  '--white-80': 'rgb(255 255 255 / .80)',
342
+ '--white-92': 'rgb(255 255 255 / .92)',
333
343
  '--background': '#0a0a0a',
334
344
  '--foreground': '#fafafa',
335
345
  '--card': '#0f0f0f',
package/package.json CHANGED
@@ -1,7 +1,6 @@
1
1
  {
2
2
  "name": "@hanzo/design",
3
- "version": "0.5.12",
4
- "packageManager": "pnpm@11.17.0",
3
+ "version": "0.5.13",
5
4
  "description": "Hanzo Design System — monochrome, dark-default tokens + components + brand assets, the single source of truth for every Hanzo surface. CSS + typed programmatic tokens.",
6
5
  "license": "MIT OR Apache-2.0",
7
6
  "repository": {
@@ -32,13 +31,6 @@
32
31
  "./skills/*": "./skills/*",
33
32
  "./tailwind.css": "./tailwind.css"
34
33
  },
35
- "scripts": {
36
- "gen": "node scripts/gen-tokens.mjs",
37
- "test": "node scripts/check-tokens.mjs && node scripts/check-preference.mjs && node scripts/lint.mjs .",
38
- "build": "pnpm gen && pnpm test && tsc -p tsconfig.json && node scripts/check-dist.mjs",
39
- "prepublishOnly": "pnpm build",
40
- "lint": "node scripts/lint.mjs"
41
- },
42
34
  "devDependencies": {
43
35
  "typescript": "^5.9.3"
44
36
  },
@@ -71,5 +63,11 @@
71
63
  },
72
64
  "bin": {
73
65
  "hanzo-design-lint": "./scripts/lint.mjs"
66
+ },
67
+ "scripts": {
68
+ "gen": "node scripts/gen-tokens.mjs",
69
+ "test": "node scripts/check-tokens.mjs && node scripts/check-preference.mjs && node scripts/lint.mjs .",
70
+ "build": "pnpm gen && pnpm test && tsc -p tsconfig.json && node scripts/check-dist.mjs",
71
+ "lint": "node scripts/lint.mjs"
74
72
  }
75
- }
73
+ }
package/src/tokens.gen.ts CHANGED
@@ -19,20 +19,25 @@ export const colors = {
19
19
  'pure-white': '#FFFFFF',
20
20
  'hanzo-black': '#0A0A0B',
21
21
  'hanzo-white': '#FFFFFF',
22
+ 'white-03': 'rgb(255 255 255 / .03)',
22
23
  'white-05': 'rgb(255 255 255 / .05)',
23
24
  'white-06': 'rgb(255 255 255 / .06)',
24
25
  'white-08': 'rgb(255 255 255 / .08)',
25
26
  'white-10': 'rgb(255 255 255 / .10)',
27
+ 'white-14': 'rgb(255 255 255 / .14)',
26
28
  'white-15': 'rgb(255 255 255 / .15)',
27
29
  'white-16': 'rgb(255 255 255 / .16)',
30
+ 'white-18': 'rgb(255 255 255 / .18)',
28
31
  'white-20': 'rgb(255 255 255 / .20)',
29
32
  'white-22': 'rgb(255 255 255 / .22)',
30
33
  'white-30': 'rgb(255 255 255 / .30)',
31
34
  'white-40': 'rgb(255 255 255 / .40)',
35
+ 'white-45': 'rgb(255 255 255 / .45)',
32
36
  'white-55': 'rgb(255 255 255 / .55)',
33
37
  'white-60': 'rgb(255 255 255 / .60)',
34
38
  'white-78': 'rgb(255 255 255 / .78)',
35
39
  'white-80': 'rgb(255 255 255 / .80)',
40
+ 'white-92': 'rgb(255 255 255 / .92)',
36
41
  'background': '#0a0a0a',
37
42
  'foreground': '#fafafa',
38
43
  'card': '#0f0f0f',
@@ -329,20 +334,25 @@ export const cssVars = {
329
334
  '--pure-white': '#FFFFFF',
330
335
  '--hanzo-black': '#0A0A0B',
331
336
  '--hanzo-white': '#FFFFFF',
337
+ '--white-03': 'rgb(255 255 255 / .03)',
332
338
  '--white-05': 'rgb(255 255 255 / .05)',
333
339
  '--white-06': 'rgb(255 255 255 / .06)',
334
340
  '--white-08': 'rgb(255 255 255 / .08)',
335
341
  '--white-10': 'rgb(255 255 255 / .10)',
342
+ '--white-14': 'rgb(255 255 255 / .14)',
336
343
  '--white-15': 'rgb(255 255 255 / .15)',
337
344
  '--white-16': 'rgb(255 255 255 / .16)',
345
+ '--white-18': 'rgb(255 255 255 / .18)',
338
346
  '--white-20': 'rgb(255 255 255 / .20)',
339
347
  '--white-22': 'rgb(255 255 255 / .22)',
340
348
  '--white-30': 'rgb(255 255 255 / .30)',
341
349
  '--white-40': 'rgb(255 255 255 / .40)',
350
+ '--white-45': 'rgb(255 255 255 / .45)',
342
351
  '--white-55': 'rgb(255 255 255 / .55)',
343
352
  '--white-60': 'rgb(255 255 255 / .60)',
344
353
  '--white-78': 'rgb(255 255 255 / .78)',
345
354
  '--white-80': 'rgb(255 255 255 / .80)',
355
+ '--white-92': 'rgb(255 255 255 / .92)',
346
356
  '--background': '#0a0a0a',
347
357
  '--foreground': '#fafafa',
348
358
  '--card': '#0f0f0f',
package/styles.css CHANGED
@@ -56,20 +56,39 @@
56
56
  /* ——— the opacity ladder: the real palette ——— */
57
57
  /* Every rung below .30 is a HAIRLINE or a LIFT — the two things this system
58
58
  draws with. The rungs are the reference's own values, not a rounded ramp. */
59
+ /* The five rungs marked (chrome) below were being retyped as raw rgba in
60
+ @hanzogui/shell's theme.ts, which is the shared bar every Hanzo property
61
+ mounts. That is the same defect this ladder exists to end — a value in two
62
+ places drifts, and this pair already had: the shell's resting hairline sat
63
+ at .06 against this file's .10 for long enough that the bar and the page
64
+ under it drew different hairlines. They are rungs here now, and the shell
65
+ references them, so the chrome has no colour of its own left to drift.
66
+
67
+ They are the shell's OWN measured values, added at the alpha it already
68
+ ships. Snapping them to neighbouring rungs instead would have been a
69
+ silent redesign of the estate's chrome, and two of them carry decisions
70
+ that a round number would have destroyed: .92 is ink deliberately short of
71
+ the .98 hover so a hover still reads as a response, and .03 is the one
72
+ lift that must stay below the .05 hairline it sits inside. */
73
+ --white-03:rgb(255 255 255 / .03); /* (chrome) the raised fill */
59
74
  --white-05:rgb(255 255 255 / .05);
60
75
  --white-06:rgb(255 255 255 / .06);
61
76
  --white-08:rgb(255 255 255 / .08);
62
77
  --white-10:rgb(255 255 255 / .10);
78
+ --white-14:rgb(255 255 255 / .14); /* (chrome) selection wash */
63
79
  --white-15:rgb(255 255 255 / .15);
64
80
  --white-16:rgb(255 255 255 / .16);
81
+ --white-18:rgb(255 255 255 / .18); /* (chrome) selection tint */
65
82
  --white-20:rgb(255 255 255 / .20);
66
83
  --white-22:rgb(255 255 255 / .22);
67
84
  --white-30:rgb(255 255 255 / .30);
68
85
  --white-40:rgb(255 255 255 / .40);
86
+ --white-45:rgb(255 255 255 / .45); /* (chrome) the dimmest ink */
69
87
  --white-55:rgb(255 255 255 / .55);
70
88
  --white-60:rgb(255 255 255 / .60);
71
89
  --white-78:rgb(255 255 255 / .78);
72
90
  --white-80:rgb(255 255 255 / .80);
91
+ --white-92:rgb(255 255 255 / .92); /* (chrome) body ink */
73
92
 
74
93
  /* ——— semantic aliases (dark, the default) ——— */
75
94
  --background:#0a0a0a;
package/tailwind.css CHANGED
@@ -79,20 +79,39 @@
79
79
  /* ——— the opacity ladder: the real palette ——— */
80
80
  /* Every rung below .30 is a HAIRLINE or a LIFT — the two things this system
81
81
  draws with. The rungs are the reference's own values, not a rounded ramp. */
82
+ /* The five rungs marked (chrome) below were being retyped as raw rgba in
83
+ @hanzogui/shell's theme.ts, which is the shared bar every Hanzo property
84
+ mounts. That is the same defect this ladder exists to end — a value in two
85
+ places drifts, and this pair already had: the shell's resting hairline sat
86
+ at .06 against this file's .10 for long enough that the bar and the page
87
+ under it drew different hairlines. They are rungs here now, and the shell
88
+ references them, so the chrome has no colour of its own left to drift.
89
+
90
+ They are the shell's OWN measured values, added at the alpha it already
91
+ ships. Snapping them to neighbouring rungs instead would have been a
92
+ silent redesign of the estate's chrome, and two of them carry decisions
93
+ that a round number would have destroyed: .92 is ink deliberately short of
94
+ the .98 hover so a hover still reads as a response, and .03 is the one
95
+ lift that must stay below the .05 hairline it sits inside. */
96
+ --white-03:rgb(255 255 255 / .03); /* (chrome) the raised fill */
82
97
  --white-05:rgb(255 255 255 / .05);
83
98
  --white-06:rgb(255 255 255 / .06);
84
99
  --white-08:rgb(255 255 255 / .08);
85
100
  --white-10:rgb(255 255 255 / .10);
101
+ --white-14:rgb(255 255 255 / .14); /* (chrome) selection wash */
86
102
  --white-15:rgb(255 255 255 / .15);
87
103
  --white-16:rgb(255 255 255 / .16);
104
+ --white-18:rgb(255 255 255 / .18); /* (chrome) selection tint */
88
105
  --white-20:rgb(255 255 255 / .20);
89
106
  --white-22:rgb(255 255 255 / .22);
90
107
  --white-30:rgb(255 255 255 / .30);
91
108
  --white-40:rgb(255 255 255 / .40);
109
+ --white-45:rgb(255 255 255 / .45); /* (chrome) the dimmest ink */
92
110
  --white-55:rgb(255 255 255 / .55);
93
111
  --white-60:rgb(255 255 255 / .60);
94
112
  --white-78:rgb(255 255 255 / .78);
95
113
  --white-80:rgb(255 255 255 / .80);
114
+ --white-92:rgb(255 255 255 / .92); /* (chrome) body ink */
96
115
 
97
116
  /* ——— semantic aliases (dark, the default) ——— */
98
117
  --background:#0a0a0a;
package/tokens/colors.css CHANGED
@@ -41,20 +41,39 @@
41
41
  /* ——— the opacity ladder: the real palette ——— */
42
42
  /* Every rung below .30 is a HAIRLINE or a LIFT — the two things this system
43
43
  draws with. The rungs are the reference's own values, not a rounded ramp. */
44
+ /* The five rungs marked (chrome) below were being retyped as raw rgba in
45
+ @hanzogui/shell's theme.ts, which is the shared bar every Hanzo property
46
+ mounts. That is the same defect this ladder exists to end — a value in two
47
+ places drifts, and this pair already had: the shell's resting hairline sat
48
+ at .06 against this file's .10 for long enough that the bar and the page
49
+ under it drew different hairlines. They are rungs here now, and the shell
50
+ references them, so the chrome has no colour of its own left to drift.
51
+
52
+ They are the shell's OWN measured values, added at the alpha it already
53
+ ships. Snapping them to neighbouring rungs instead would have been a
54
+ silent redesign of the estate's chrome, and two of them carry decisions
55
+ that a round number would have destroyed: .92 is ink deliberately short of
56
+ the .98 hover so a hover still reads as a response, and .03 is the one
57
+ lift that must stay below the .05 hairline it sits inside. */
58
+ --white-03:rgb(255 255 255 / .03); /* (chrome) the raised fill */
44
59
  --white-05:rgb(255 255 255 / .05);
45
60
  --white-06:rgb(255 255 255 / .06);
46
61
  --white-08:rgb(255 255 255 / .08);
47
62
  --white-10:rgb(255 255 255 / .10);
63
+ --white-14:rgb(255 255 255 / .14); /* (chrome) selection wash */
48
64
  --white-15:rgb(255 255 255 / .15);
49
65
  --white-16:rgb(255 255 255 / .16);
66
+ --white-18:rgb(255 255 255 / .18); /* (chrome) selection tint */
50
67
  --white-20:rgb(255 255 255 / .20);
51
68
  --white-22:rgb(255 255 255 / .22);
52
69
  --white-30:rgb(255 255 255 / .30);
53
70
  --white-40:rgb(255 255 255 / .40);
71
+ --white-45:rgb(255 255 255 / .45); /* (chrome) the dimmest ink */
54
72
  --white-55:rgb(255 255 255 / .55);
55
73
  --white-60:rgb(255 255 255 / .60);
56
74
  --white-78:rgb(255 255 255 / .78);
57
75
  --white-80:rgb(255 255 255 / .80);
76
+ --white-92:rgb(255 255 255 / .92); /* (chrome) body ink */
58
77
 
59
78
  /* ——— semantic aliases (dark, the default) ——— */
60
79
  --background:#0a0a0a;