@ponchia/ui 0.3.5 → 0.4.0
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.
- package/CHANGELOG.md +945 -0
- package/README.md +31 -7
- package/behaviors/index.d.ts +11 -0
- package/behaviors/index.js +109 -0
- package/classes/index.d.ts +3 -0
- package/classes/index.js +3 -0
- package/classes/vscode.css-custom-data.json +4 -12
- package/css/dataviz.css +96 -0
- package/css/dots.css +70 -4
- package/css/skins.css +54 -0
- package/css/tokens.css +4 -10
- package/dist/bronto.css +1 -1
- package/dist/css/dataviz.css +1 -0
- package/dist/css/dots.css +1 -1
- package/dist/css/skins.css +1 -0
- package/dist/css/tokens.css +1 -1
- package/docs/adr/0001-color-system.md +272 -0
- package/docs/contrast.md +170 -51
- package/docs/reference.md +13 -9
- package/docs/theming.md +66 -1
- package/docs/usage.md +99 -0
- package/glyphs/glyphs.d.ts +115 -0
- package/glyphs/glyphs.js +1063 -0
- package/llms.txt +54 -4
- package/package.json +63 -5
- package/react/index.d.ts +36 -0
- package/react/index.js +67 -0
- package/solid/index.d.ts +36 -0
- package/solid/index.js +67 -0
- package/tokens/charts.d.ts +37 -0
- package/tokens/charts.js +96 -0
- package/tokens/charts.json +61 -0
- package/tokens/index.d.ts +3 -3
- package/tokens/index.js +4 -8
- package/tokens/index.json +8 -16
- package/tokens/resolved.json +9 -13
- package/tokens/skins.d.ts +27 -0
- package/tokens/skins.js +62 -0
- package/tokens/tokens.dtcg.json +4 -24
package/tokens/index.d.ts
CHANGED
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
export type ThemeName = 'light' | 'dark';
|
|
5
5
|
|
|
6
6
|
export type GlobalTokenName = '--radius-xl' | '--radius-lg' | '--radius-md' | '--radius-sm' | '--radius-pill' | '--space-2xs' | '--space-xs' | '--space-sm' | '--space-md' | '--space-lg' | '--space-xl' | '--space-2xl' | '--mono' | '--sans' | '--dot-font' | '--display' | '--text-2xs' | '--text-xs' | '--text-sm' | '--text-base' | '--text-lg' | '--text-xl' | '--tracking-wide' | '--tracking-wider' | '--ease-standard' | '--ease-spring' | '--ease-out' | '--duration-fast' | '--duration-base' | '--duration-slow' | '--dot-size' | '--dot-gap' | '--z-base' | '--z-raised' | '--z-sticky' | '--z-overlay' | '--z-popover' | '--z-toast' | '--accent-1' | '--accent-2' | '--accent-3' | '--accent-4' | '--accent-5' | '--accent-6' | '--surface-1' | '--surface-2' | '--surface-3' | '--surface-4' | '--surface-5' | '--surface-6' | '--bronto-color-bg' | '--bronto-color-surface' | '--bronto-color-surface-raised' | '--bronto-color-border' | '--bronto-color-border-strong' | '--bronto-color-text' | '--bronto-color-text-muted' | '--bronto-color-action' | '--bronto-color-on-action' | '--bronto-color-focus' | '--bronto-color-success' | '--bronto-color-warning' | '--bronto-color-danger' | '--bronto-color-info' | '--surface' | '--surface-raised' | '--surface-muted' | '--border' | '--border-strong';
|
|
7
|
-
export type LightTokenName = '--bg' | '--bg-elevated' | '--bg-accent' | '--panel' | '--panel-strong' | '--panel-soft' | '--line' | '--line-strong' | '--text' | '--text-soft' | '--text-dim' | '--accent' | '--accent-strong' | '--accent-text' | '--accent-soft' | '--success' | '--success-soft' | '--warning' | '--warning-soft' | '--
|
|
8
|
-
export type DarkTokenName = '--bg' | '--bg-elevated' | '--bg-accent' | '--panel' | '--panel-strong' | '--panel-soft' | '--line' | '--line-strong' | '--text' | '--text-soft' | '--text-dim' | '--accent' | '--accent-strong' | '--accent-text' | '--accent-soft' | '--success' | '--success-soft' | '--warning' | '--warning-soft' | '--
|
|
7
|
+
export type LightTokenName = '--bg' | '--bg-elevated' | '--bg-accent' | '--panel' | '--panel-strong' | '--panel-soft' | '--line' | '--line-strong' | '--text' | '--text-soft' | '--text-dim' | '--accent' | '--accent-strong' | '--accent-text' | '--accent-soft' | '--success' | '--success-soft' | '--warning' | '--warning-soft' | '--danger' | '--danger-soft' | '--info' | '--info-soft' | '--code-bg' | '--button-text' | '--field-dot' | '--field-dot-hot' | '--field-dot-accent' | '--focus-ring' | '--shadow' | '--shadow-raised';
|
|
8
|
+
export type DarkTokenName = '--bg' | '--bg-elevated' | '--bg-accent' | '--panel' | '--panel-strong' | '--panel-soft' | '--line' | '--line-strong' | '--text' | '--text-soft' | '--text-dim' | '--accent' | '--accent-strong' | '--accent-text' | '--accent-soft' | '--success' | '--success-soft' | '--warning' | '--warning-soft' | '--danger' | '--danger-soft' | '--info' | '--info-soft' | '--code-bg' | '--button-text' | '--field-dot' | '--field-dot-hot' | '--field-dot-accent' | '--focus-ring' | '--shadow' | '--shadow-raised';
|
|
9
9
|
|
|
10
10
|
/** Exact mirror of the :root blocks in css/tokens.css (literal keys). */
|
|
11
11
|
export declare const cssVars: {
|
|
@@ -15,7 +15,7 @@ export declare const cssVars: {
|
|
|
15
15
|
};
|
|
16
16
|
|
|
17
17
|
export type ScaleKey = 'radius-xl' | 'radius-lg' | 'radius-md' | 'radius-sm' | 'radius-pill' | 'space-2xs' | 'space-xs' | 'space-sm' | 'space-md' | 'space-lg' | 'space-xl' | 'space-2xl' | 'mono' | 'sans' | 'dot-font' | 'display' | 'text-2xs' | 'text-xs' | 'text-sm' | 'text-base' | 'text-lg' | 'text-xl' | 'tracking-wide' | 'tracking-wider' | 'ease-standard' | 'ease-spring' | 'ease-out' | 'duration-fast' | 'duration-base' | 'duration-slow' | 'dot-size' | 'dot-gap' | 'z-base' | 'z-raised' | 'z-sticky' | 'z-overlay' | 'z-popover' | 'z-toast' | 'accent-1' | 'accent-2' | 'accent-3' | 'accent-4' | 'accent-5' | 'accent-6' | 'surface-1' | 'surface-2' | 'surface-3' | 'surface-4' | 'surface-5' | 'surface-6' | 'bronto-color-bg' | 'bronto-color-surface' | 'bronto-color-surface-raised' | 'bronto-color-border' | 'bronto-color-border-strong' | 'bronto-color-text' | 'bronto-color-text-muted' | 'bronto-color-action' | 'bronto-color-on-action' | 'bronto-color-focus' | 'bronto-color-success' | 'bronto-color-warning' | 'bronto-color-danger' | 'bronto-color-info' | 'surface' | 'surface-raised' | 'surface-muted' | 'border' | 'border-strong';
|
|
18
|
-
export type ColorKey = 'bg' | 'bg-elevated' | 'bg-accent' | 'panel' | 'panel-strong' | 'panel-soft' | 'line' | 'line-strong' | 'text' | 'text-soft' | 'text-dim' | 'accent' | 'accent-strong' | 'accent-text' | 'accent-soft' | 'success' | 'success-soft' | 'warning' | 'warning-soft' | '
|
|
18
|
+
export type ColorKey = 'bg' | 'bg-elevated' | 'bg-accent' | 'panel' | 'panel-strong' | 'panel-soft' | 'line' | 'line-strong' | 'text' | 'text-soft' | 'text-dim' | 'accent' | 'accent-strong' | 'accent-text' | 'accent-soft' | 'success' | 'success-soft' | 'warning' | 'warning-soft' | 'danger' | 'danger-soft' | 'info' | 'info-soft' | 'code-bg' | 'button-text' | 'field-dot' | 'field-dot-hot' | 'field-dot-accent' | 'focus-ring' | 'shadow' | 'shadow-raised';
|
|
19
19
|
|
|
20
20
|
/** Ergonomic view derived from {@link cssVars} (`--` prefix stripped). */
|
|
21
21
|
export declare const tokens: {
|
package/tokens/index.js
CHANGED
|
@@ -56,10 +56,10 @@ export const cssVars = {
|
|
|
56
56
|
'--z-overlay': '30',
|
|
57
57
|
'--z-popover': '50',
|
|
58
58
|
'--z-toast': '60',
|
|
59
|
-
'--accent-1': 'color-mix(in
|
|
60
|
-
'--accent-2': 'color-mix(in
|
|
61
|
-
'--accent-3': 'color-mix(in
|
|
62
|
-
'--accent-4': 'color-mix(in
|
|
59
|
+
'--accent-1': 'color-mix(in oklch, var(--accent) 8%, var(--bg))',
|
|
60
|
+
'--accent-2': 'color-mix(in oklch, var(--accent) 16%, var(--bg))',
|
|
61
|
+
'--accent-3': 'color-mix(in oklch, var(--accent) 32%, var(--bg))',
|
|
62
|
+
'--accent-4': 'color-mix(in oklch, var(--accent) 60%, var(--bg))',
|
|
63
63
|
'--accent-5': 'var(--accent)',
|
|
64
64
|
'--accent-6': 'var(--accent-strong)',
|
|
65
65
|
'--surface-1': 'var(--bg)',
|
|
@@ -109,8 +109,6 @@ export const cssVars = {
|
|
|
109
109
|
'--success-soft': 'rgb(47, 125, 79, 0.12)',
|
|
110
110
|
'--warning': '#806414',
|
|
111
111
|
'--warning-soft': 'rgb(128, 100, 20, 0.13)',
|
|
112
|
-
'--orange': '#a85f32',
|
|
113
|
-
'--orange-soft': 'rgb(168, 95, 50, 0.13)',
|
|
114
112
|
'--danger': '#c01622',
|
|
115
113
|
'--danger-soft': 'rgb(192, 22, 34, 0.1)',
|
|
116
114
|
'--info': '#1f63c4',
|
|
@@ -145,8 +143,6 @@ export const cssVars = {
|
|
|
145
143
|
'--success-soft': 'rgb(78, 194, 126, 0.14)',
|
|
146
144
|
'--warning': '#d8bd72',
|
|
147
145
|
'--warning-soft': 'rgb(216, 189, 114, 0.14)',
|
|
148
|
-
'--orange': '#d08c5b',
|
|
149
|
-
'--orange-soft': 'rgb(208, 140, 91, 0.15)',
|
|
150
146
|
'--danger': '#ff4d54',
|
|
151
147
|
'--danger-soft': 'rgb(255, 77, 84, 0.15)',
|
|
152
148
|
'--info': '#6fb0e6',
|
package/tokens/index.json
CHANGED
|
@@ -39,10 +39,10 @@
|
|
|
39
39
|
"--z-overlay": "30",
|
|
40
40
|
"--z-popover": "50",
|
|
41
41
|
"--z-toast": "60",
|
|
42
|
-
"--accent-1": "color-mix(in
|
|
43
|
-
"--accent-2": "color-mix(in
|
|
44
|
-
"--accent-3": "color-mix(in
|
|
45
|
-
"--accent-4": "color-mix(in
|
|
42
|
+
"--accent-1": "color-mix(in oklch, var(--accent) 8%, var(--bg))",
|
|
43
|
+
"--accent-2": "color-mix(in oklch, var(--accent) 16%, var(--bg))",
|
|
44
|
+
"--accent-3": "color-mix(in oklch, var(--accent) 32%, var(--bg))",
|
|
45
|
+
"--accent-4": "color-mix(in oklch, var(--accent) 60%, var(--bg))",
|
|
46
46
|
"--accent-5": "var(--accent)",
|
|
47
47
|
"--accent-6": "var(--accent-strong)",
|
|
48
48
|
"--surface-1": "var(--bg)",
|
|
@@ -91,8 +91,6 @@
|
|
|
91
91
|
"--success-soft": "rgb(47, 125, 79, 0.12)",
|
|
92
92
|
"--warning": "#806414",
|
|
93
93
|
"--warning-soft": "rgb(128, 100, 20, 0.13)",
|
|
94
|
-
"--orange": "#a85f32",
|
|
95
|
-
"--orange-soft": "rgb(168, 95, 50, 0.13)",
|
|
96
94
|
"--danger": "#c01622",
|
|
97
95
|
"--danger-soft": "rgb(192, 22, 34, 0.1)",
|
|
98
96
|
"--info": "#1f63c4",
|
|
@@ -126,8 +124,6 @@
|
|
|
126
124
|
"--success-soft": "rgb(78, 194, 126, 0.14)",
|
|
127
125
|
"--warning": "#d8bd72",
|
|
128
126
|
"--warning-soft": "rgb(216, 189, 114, 0.14)",
|
|
129
|
-
"--orange": "#d08c5b",
|
|
130
|
-
"--orange-soft": "rgb(208, 140, 91, 0.15)",
|
|
131
127
|
"--danger": "#ff4d54",
|
|
132
128
|
"--danger-soft": "rgb(255, 77, 84, 0.15)",
|
|
133
129
|
"--info": "#6fb0e6",
|
|
@@ -182,10 +178,10 @@
|
|
|
182
178
|
"z-overlay": "30",
|
|
183
179
|
"z-popover": "50",
|
|
184
180
|
"z-toast": "60",
|
|
185
|
-
"accent-1": "color-mix(in
|
|
186
|
-
"accent-2": "color-mix(in
|
|
187
|
-
"accent-3": "color-mix(in
|
|
188
|
-
"accent-4": "color-mix(in
|
|
181
|
+
"accent-1": "color-mix(in oklch, var(--accent) 8%, var(--bg))",
|
|
182
|
+
"accent-2": "color-mix(in oklch, var(--accent) 16%, var(--bg))",
|
|
183
|
+
"accent-3": "color-mix(in oklch, var(--accent) 32%, var(--bg))",
|
|
184
|
+
"accent-4": "color-mix(in oklch, var(--accent) 60%, var(--bg))",
|
|
189
185
|
"accent-5": "var(--accent)",
|
|
190
186
|
"accent-6": "var(--accent-strong)",
|
|
191
187
|
"surface-1": "var(--bg)",
|
|
@@ -235,8 +231,6 @@
|
|
|
235
231
|
"success-soft": "rgb(47, 125, 79, 0.12)",
|
|
236
232
|
"warning": "#806414",
|
|
237
233
|
"warning-soft": "rgb(128, 100, 20, 0.13)",
|
|
238
|
-
"orange": "#a85f32",
|
|
239
|
-
"orange-soft": "rgb(168, 95, 50, 0.13)",
|
|
240
234
|
"danger": "#c01622",
|
|
241
235
|
"danger-soft": "rgb(192, 22, 34, 0.1)",
|
|
242
236
|
"info": "#1f63c4",
|
|
@@ -270,8 +264,6 @@
|
|
|
270
264
|
"success-soft": "rgb(78, 194, 126, 0.14)",
|
|
271
265
|
"warning": "#d8bd72",
|
|
272
266
|
"warning-soft": "rgb(216, 189, 114, 0.14)",
|
|
273
|
-
"orange": "#d08c5b",
|
|
274
|
-
"orange-soft": "rgb(208, 140, 91, 0.15)",
|
|
275
267
|
"danger": "#ff4d54",
|
|
276
268
|
"danger-soft": "rgb(255, 77, 84, 0.15)",
|
|
277
269
|
"info": "#6fb0e6",
|
package/tokens/resolved.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
|
-
"$comment": "@ponchia/ui colour tokens resolved to static values per theme (var() + sRGB color-mix() evaluated at build). For non-CSS render targets: MapLibre/canvas/WebGL/SVG. Generated from tokens/index.js — do not edit by hand; run `npm run resolved:build`. Drift-checked in CI.",
|
|
2
|
+
"$comment": "@ponchia/ui colour tokens resolved to static values per theme (var() + sRGB/OKLCH color-mix() evaluated at build). For non-CSS render targets: MapLibre/canvas/WebGL/SVG. Generated from tokens/index.js — do not edit by hand; run `npm run resolved:build`. Drift-checked in CI.",
|
|
3
3
|
"light": {
|
|
4
|
-
"--accent-1": "#
|
|
5
|
-
"--accent-2": "#
|
|
6
|
-
"--accent-3": "#
|
|
7
|
-
"--accent-4": "#
|
|
4
|
+
"--accent-1": "#f6e5e2",
|
|
5
|
+
"--accent-2": "#f6d6d2",
|
|
6
|
+
"--accent-3": "#f5b8b1",
|
|
7
|
+
"--accent-4": "#ed8378",
|
|
8
8
|
"--accent-5": "#d71921",
|
|
9
9
|
"--accent-6": "#b2151b",
|
|
10
10
|
"--surface-1": "#f4f4f2",
|
|
@@ -51,8 +51,6 @@
|
|
|
51
51
|
"--success-soft": "rgba(47, 125, 79, 0.12)",
|
|
52
52
|
"--warning": "#806414",
|
|
53
53
|
"--warning-soft": "rgba(128, 100, 20, 0.13)",
|
|
54
|
-
"--orange": "#a85f32",
|
|
55
|
-
"--orange-soft": "rgba(168, 95, 50, 0.13)",
|
|
56
54
|
"--danger": "#c01622",
|
|
57
55
|
"--danger-soft": "rgba(192, 22, 34, 0.1)",
|
|
58
56
|
"--info": "#1f63c4",
|
|
@@ -65,10 +63,10 @@
|
|
|
65
63
|
"--focus-ring": "#d71921"
|
|
66
64
|
},
|
|
67
65
|
"dark": {
|
|
68
|
-
"--accent-1": "#
|
|
69
|
-
"--accent-2": "#
|
|
70
|
-
"--accent-3": "#
|
|
71
|
-
"--accent-4": "#
|
|
66
|
+
"--accent-1": "#020000",
|
|
67
|
+
"--accent-2": "#0d0101",
|
|
68
|
+
"--accent-3": "#330506",
|
|
69
|
+
"--accent-4": "#80191c",
|
|
72
70
|
"--accent-5": "#ff3b41",
|
|
73
71
|
"--accent-6": "#ff5a5f",
|
|
74
72
|
"--surface-1": "#000000",
|
|
@@ -115,8 +113,6 @@
|
|
|
115
113
|
"--success-soft": "rgba(78, 194, 126, 0.14)",
|
|
116
114
|
"--warning": "#d8bd72",
|
|
117
115
|
"--warning-soft": "rgba(216, 189, 114, 0.14)",
|
|
118
|
-
"--orange": "#d08c5b",
|
|
119
|
-
"--orange-soft": "rgba(208, 140, 91, 0.15)",
|
|
120
116
|
"--danger": "#ff4d54",
|
|
121
117
|
"--danger-soft": "rgba(255, 77, 84, 0.15)",
|
|
122
118
|
"--info": "#6fb0e6",
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/** @ponchia/ui — GENERATED from tokens/skins.js by scripts/gen-skins.mjs.
|
|
2
|
+
* Do not edit by hand; run `npm run skins:build`. Drift-checked in CI. */
|
|
3
|
+
|
|
4
|
+
/** Every display-colorway name @ponchia/ui ships (literal union). Use as a
|
|
5
|
+
* type for a `data-bronto-skin` value (`const s: SkinName = 'amber-crt'`). */
|
|
6
|
+
export type SkinName =
|
|
7
|
+
| 'amber-crt'
|
|
8
|
+
| 'e-ink'
|
|
9
|
+
| 'phosphor-green';
|
|
10
|
+
|
|
11
|
+
/** A colorway: a display label + per-theme custom-property overrides (CSS
|
|
12
|
+
* value strings). `light`/`dark` always set `--accent`; `dark` may add a
|
|
13
|
+
* display knob such as `--dotmatrix-glow`. */
|
|
14
|
+
export interface Skin {
|
|
15
|
+
label: string;
|
|
16
|
+
light: Record<string, string>;
|
|
17
|
+
dark: Record<string, string>;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/** The frozen name→colorway registry. */
|
|
21
|
+
export declare const skins: Record<SkinName, Skin>;
|
|
22
|
+
|
|
23
|
+
/** Every colorway name, frozen and sorted. */
|
|
24
|
+
export declare const SKIN_NAMES: readonly SkinName[];
|
|
25
|
+
|
|
26
|
+
declare const _default: Record<SkinName, Skin>;
|
|
27
|
+
export default _default;
|
package/tokens/skins.js
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @ponchia/ui — optional display colorways ("skins").
|
|
3
|
+
*
|
|
4
|
+
* The single source for the opt-in `data-bronto-skin` looks (ADR-0001 step 4).
|
|
5
|
+
* A skin is NOT a second brand colour — it *re-points the one accent* (and the
|
|
6
|
+
* Tier-3 dot-matrix display knobs) to a different single hue, so the
|
|
7
|
+
* one-accent-per-scope discipline holds while the palette gains creative range
|
|
8
|
+
* *across* skins. The neutral canvas, status palette, and every component stay
|
|
9
|
+
* exactly as they are.
|
|
10
|
+
*
|
|
11
|
+
* Accents are authored in **OKLCH** (ADR-0001 step 5 — "OKLCH for new work
|
|
12
|
+
* first"): perceptually-uniform lightness makes the light/dark pair easy to
|
|
13
|
+
* reason about, and it is within the package browser floor (Chrome 111+,
|
|
14
|
+
* Safari 16.4+, Firefox 121+ all support `oklch()` and `color-mix()`).
|
|
15
|
+
*
|
|
16
|
+
* Each skin gives a per-theme accent because — exactly like the core red
|
|
17
|
+
* (#d71921 light / #ff3b41 dark) — one hue cannot stay AA against both a white
|
|
18
|
+
* and a black button label; the light accent is darker, the dark one brighter.
|
|
19
|
+
* The derived family (`--accent-strong`/`-text`/`-soft`, `--focus-ring`,
|
|
20
|
+
* `--bg-accent`, `--field-dot-accent`) recomputes in the browser from the live
|
|
21
|
+
* `var(--accent)`, so a skin only sets `--accent` plus any display knobs.
|
|
22
|
+
*
|
|
23
|
+
* This module is the source for BOTH:
|
|
24
|
+
* - css/skins.css (generated by scripts/gen-skins.mjs, drift-checked)
|
|
25
|
+
* - the skin contrast audit (scripts/gen-contrast.mjs gates every skin accent)
|
|
26
|
+
*
|
|
27
|
+
* Skins are shipped OPT-IN: a separate `./css/skins.css` entrypoint, never part
|
|
28
|
+
* of the default `dist/bronto.css` bundle.
|
|
29
|
+
*/
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* name → { label, light, dark }. `light`/`dark` are CSS custom-property maps
|
|
33
|
+
* applied under the same conditions as the core light/dark palettes. Keep the
|
|
34
|
+
* key set of light and dark identical (a drift check enforces it).
|
|
35
|
+
*/
|
|
36
|
+
export const skins = {
|
|
37
|
+
'amber-crt': {
|
|
38
|
+
label: 'Amber CRT',
|
|
39
|
+
// Phosphor amber. Dark+saturated in light theme (AA under a white label),
|
|
40
|
+
// bright with a warm bloom in dark theme (the classic CRT glow).
|
|
41
|
+
light: { '--accent': 'oklch(52% 0.11 67deg)' },
|
|
42
|
+
dark: { '--accent': 'oklch(82% 0.15 82deg)', '--dotmatrix-glow': '0.4em' },
|
|
43
|
+
},
|
|
44
|
+
'phosphor-green': {
|
|
45
|
+
label: 'Phosphor Green',
|
|
46
|
+
// P1-phosphor green. Same light=dark-ink / dark=bright-glow split.
|
|
47
|
+
light: { '--accent': 'oklch(52% 0.13 150deg)' },
|
|
48
|
+
dark: { '--accent': 'oklch(84% 0.19 150deg)', '--dotmatrix-glow': '0.4em' },
|
|
49
|
+
},
|
|
50
|
+
'e-ink': {
|
|
51
|
+
label: 'E-ink',
|
|
52
|
+
// The opposite move: drop the hue almost entirely → a near-monochrome
|
|
53
|
+
// ink/paper accent, no glow. The most restrained look in the set.
|
|
54
|
+
light: { '--accent': 'oklch(34% 0.012 250deg)' },
|
|
55
|
+
dark: { '--accent': 'oklch(84% 0.008 250deg)' },
|
|
56
|
+
},
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
/** Skin names, frozen + sorted. */
|
|
60
|
+
export const SKIN_NAMES = Object.freeze(Object.keys(skins).sort());
|
|
61
|
+
|
|
62
|
+
export default skins;
|
package/tokens/tokens.dtcg.json
CHANGED
|
@@ -225,28 +225,28 @@
|
|
|
225
225
|
"$type": "color",
|
|
226
226
|
"$value": null,
|
|
227
227
|
"$extensions": {
|
|
228
|
-
"com.ponchia.css": "color-mix(in
|
|
228
|
+
"com.ponchia.css": "color-mix(in oklch, var(--accent) 8%, var(--bg))"
|
|
229
229
|
}
|
|
230
230
|
},
|
|
231
231
|
"2": {
|
|
232
232
|
"$type": "color",
|
|
233
233
|
"$value": null,
|
|
234
234
|
"$extensions": {
|
|
235
|
-
"com.ponchia.css": "color-mix(in
|
|
235
|
+
"com.ponchia.css": "color-mix(in oklch, var(--accent) 16%, var(--bg))"
|
|
236
236
|
}
|
|
237
237
|
},
|
|
238
238
|
"3": {
|
|
239
239
|
"$type": "color",
|
|
240
240
|
"$value": null,
|
|
241
241
|
"$extensions": {
|
|
242
|
-
"com.ponchia.css": "color-mix(in
|
|
242
|
+
"com.ponchia.css": "color-mix(in oklch, var(--accent) 32%, var(--bg))"
|
|
243
243
|
}
|
|
244
244
|
},
|
|
245
245
|
"4": {
|
|
246
246
|
"$type": "color",
|
|
247
247
|
"$value": null,
|
|
248
248
|
"$extensions": {
|
|
249
|
-
"com.ponchia.css": "color-mix(in
|
|
249
|
+
"com.ponchia.css": "color-mix(in oklch, var(--accent) 60%, var(--bg))"
|
|
250
250
|
}
|
|
251
251
|
},
|
|
252
252
|
"5": {
|
|
@@ -550,16 +550,6 @@
|
|
|
550
550
|
"$value": "rgb(128, 100, 20, 0.13)"
|
|
551
551
|
}
|
|
552
552
|
},
|
|
553
|
-
"orange": {
|
|
554
|
-
"DEFAULT": {
|
|
555
|
-
"$type": "color",
|
|
556
|
-
"$value": "#a85f32"
|
|
557
|
-
},
|
|
558
|
-
"soft": {
|
|
559
|
-
"$type": "color",
|
|
560
|
-
"$value": "rgb(168, 95, 50, 0.13)"
|
|
561
|
-
}
|
|
562
|
-
},
|
|
563
553
|
"danger": {
|
|
564
554
|
"DEFAULT": {
|
|
565
555
|
"$type": "color",
|
|
@@ -735,16 +725,6 @@
|
|
|
735
725
|
"$value": "rgb(216, 189, 114, 0.14)"
|
|
736
726
|
}
|
|
737
727
|
},
|
|
738
|
-
"orange": {
|
|
739
|
-
"DEFAULT": {
|
|
740
|
-
"$type": "color",
|
|
741
|
-
"$value": "#d08c5b"
|
|
742
|
-
},
|
|
743
|
-
"soft": {
|
|
744
|
-
"$type": "color",
|
|
745
|
-
"$value": "rgb(208, 140, 91, 0.15)"
|
|
746
|
-
}
|
|
747
|
-
},
|
|
748
728
|
"danger": {
|
|
749
729
|
"DEFAULT": {
|
|
750
730
|
"$type": "color",
|