@misoto22/design 0.3.1
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/LICENSE +21 -0
- package/dist/components/Accordion/Accordion.d.ts +34 -0
- package/dist/components/Accordion/Accordion.js +37 -0
- package/dist/components/Accordion/Accordion.js.map +1 -0
- package/dist/components/Alert/Alert.d.ts +32 -0
- package/dist/components/Alert/Alert.js +49 -0
- package/dist/components/Alert/Alert.js.map +1 -0
- package/dist/components/AppShell/AppShell.d.ts +38 -0
- package/dist/components/AppShell/AppShell.js +92 -0
- package/dist/components/AppShell/AppShell.js.map +1 -0
- package/dist/components/Avatar/Avatar.d.ts +29 -0
- package/dist/components/Avatar/Avatar.js +39 -0
- package/dist/components/Avatar/Avatar.js.map +1 -0
- package/dist/components/Badge/Badge.d.ts +30 -0
- package/dist/components/Badge/Badge.js +29 -0
- package/dist/components/Badge/Badge.js.map +1 -0
- package/dist/components/Breadcrumb/Breadcrumb.d.ts +31 -0
- package/dist/components/Breadcrumb/Breadcrumb.js +31 -0
- package/dist/components/Breadcrumb/Breadcrumb.js.map +1 -0
- package/dist/components/Button/Button.d.ts +70 -0
- package/dist/components/Button/Button.js +81 -0
- package/dist/components/Button/Button.js.map +1 -0
- package/dist/components/Calendar/Calendar.d.ts +28 -0
- package/dist/components/Calendar/Calendar.js +87 -0
- package/dist/components/Calendar/Calendar.js.map +1 -0
- package/dist/components/Card/Card.d.ts +49 -0
- package/dist/components/Card/Card.js +64 -0
- package/dist/components/Card/Card.js.map +1 -0
- package/dist/components/Checkbox/Checkbox.d.ts +23 -0
- package/dist/components/Checkbox/Checkbox.js +24 -0
- package/dist/components/Checkbox/Checkbox.js.map +1 -0
- package/dist/components/Collapsible/Collapsible.d.ts +31 -0
- package/dist/components/Collapsible/Collapsible.js +35 -0
- package/dist/components/Collapsible/Collapsible.js.map +1 -0
- package/dist/components/Combobox/Combobox.d.ts +63 -0
- package/dist/components/Combobox/Combobox.js +151 -0
- package/dist/components/Combobox/Combobox.js.map +1 -0
- package/dist/components/Command/Command.d.ts +98 -0
- package/dist/components/Command/Command.js +166 -0
- package/dist/components/Command/Command.js.map +1 -0
- package/dist/components/ContextMenu/ContextMenu.d.ts +38 -0
- package/dist/components/ContextMenu/ContextMenu.js +79 -0
- package/dist/components/ContextMenu/ContextMenu.js.map +1 -0
- package/dist/components/DatePicker/DatePicker.d.ts +98 -0
- package/dist/components/DatePicker/DatePicker.js +214 -0
- package/dist/components/DatePicker/DatePicker.js.map +1 -0
- package/dist/components/Dialog/Dialog.d.ts +48 -0
- package/dist/components/Dialog/Dialog.js +72 -0
- package/dist/components/Dialog/Dialog.js.map +1 -0
- package/dist/components/DropdownMenu/DropdownMenu.d.ts +49 -0
- package/dist/components/DropdownMenu/DropdownMenu.js +89 -0
- package/dist/components/DropdownMenu/DropdownMenu.js.map +1 -0
- package/dist/components/EmptyState/EmptyState.d.ts +31 -0
- package/dist/components/EmptyState/EmptyState.js +30 -0
- package/dist/components/EmptyState/EmptyState.js.map +1 -0
- package/dist/components/ErrorState/ErrorState.d.ts +34 -0
- package/dist/components/ErrorState/ErrorState.js +32 -0
- package/dist/components/ErrorState/ErrorState.js.map +1 -0
- package/dist/components/Field/Field.d.ts +44 -0
- package/dist/components/Field/Field.js +54 -0
- package/dist/components/Field/Field.js.map +1 -0
- package/dist/components/FigureBand/FigureBand.d.ts +51 -0
- package/dist/components/FigureBand/FigureBand.js +52 -0
- package/dist/components/FigureBand/FigureBand.js.map +1 -0
- package/dist/components/FloatingIconButton/FloatingIconButton.d.ts +29 -0
- package/dist/components/FloatingIconButton/FloatingIconButton.js +32 -0
- package/dist/components/FloatingIconButton/FloatingIconButton.js.map +1 -0
- package/dist/components/Input/Input.d.ts +22 -0
- package/dist/components/Input/Input.js +21 -0
- package/dist/components/Input/Input.js.map +1 -0
- package/dist/components/Kbd/Kbd.d.ts +20 -0
- package/dist/components/Kbd/Kbd.js +21 -0
- package/dist/components/Kbd/Kbd.js.map +1 -0
- package/dist/components/LinkArrow/LinkArrow.d.ts +24 -0
- package/dist/components/LinkArrow/LinkArrow.js +24 -0
- package/dist/components/LinkArrow/LinkArrow.js.map +1 -0
- package/dist/components/NativeSelect/NativeSelect.d.ts +27 -0
- package/dist/components/NativeSelect/NativeSelect.js +46 -0
- package/dist/components/NativeSelect/NativeSelect.js.map +1 -0
- package/dist/components/NavItem/NavItem.d.ts +39 -0
- package/dist/components/NavItem/NavItem.js +31 -0
- package/dist/components/NavItem/NavItem.js.map +1 -0
- package/dist/components/Pagination/Pagination.d.ts +44 -0
- package/dist/components/Pagination/Pagination.js +109 -0
- package/dist/components/Pagination/Pagination.js.map +1 -0
- package/dist/components/Popover/Popover.d.ts +39 -0
- package/dist/components/Popover/Popover.js +57 -0
- package/dist/components/Popover/Popover.js.map +1 -0
- package/dist/components/Progress/Progress.d.ts +31 -0
- package/dist/components/Progress/Progress.js +45 -0
- package/dist/components/Progress/Progress.js.map +1 -0
- package/dist/components/RadioGroup/RadioGroup.d.ts +43 -0
- package/dist/components/RadioGroup/RadioGroup.js +43 -0
- package/dist/components/RadioGroup/RadioGroup.js.map +1 -0
- package/dist/components/ScrollArea/ScrollArea.d.ts +31 -0
- package/dist/components/ScrollArea/ScrollArea.js +54 -0
- package/dist/components/ScrollArea/ScrollArea.js.map +1 -0
- package/dist/components/SearchableMenu/SearchableMenu.d.ts +59 -0
- package/dist/components/SearchableMenu/SearchableMenu.js +79 -0
- package/dist/components/SearchableMenu/SearchableMenu.js.map +1 -0
- package/dist/components/Select/Select.d.ts +71 -0
- package/dist/components/Select/Select.js +114 -0
- package/dist/components/Select/Select.js.map +1 -0
- package/dist/components/Separator/Separator.d.ts +30 -0
- package/dist/components/Separator/Separator.js +35 -0
- package/dist/components/Separator/Separator.js.map +1 -0
- package/dist/components/Sheet/Sheet.d.ts +38 -0
- package/dist/components/Sheet/Sheet.js +68 -0
- package/dist/components/Sheet/Sheet.js.map +1 -0
- package/dist/components/Skeleton/Skeleton.d.ts +63 -0
- package/dist/components/Skeleton/Skeleton.js +44 -0
- package/dist/components/Skeleton/Skeleton.js.map +1 -0
- package/dist/components/Slider/Slider.d.ts +35 -0
- package/dist/components/Slider/Slider.js +52 -0
- package/dist/components/Slider/Slider.js.map +1 -0
- package/dist/components/Spinner/Spinner.d.ts +50 -0
- package/dist/components/Spinner/Spinner.js +48 -0
- package/dist/components/Spinner/Spinner.js.map +1 -0
- package/dist/components/StatusDot/StatusDot.d.ts +29 -0
- package/dist/components/StatusDot/StatusDot.js +44 -0
- package/dist/components/StatusDot/StatusDot.js.map +1 -0
- package/dist/components/StatusPill/StatusPill.d.ts +25 -0
- package/dist/components/StatusPill/StatusPill.js +31 -0
- package/dist/components/StatusPill/StatusPill.js.map +1 -0
- package/dist/components/Switch/Switch.d.ts +23 -0
- package/dist/components/Switch/Switch.js +23 -0
- package/dist/components/Switch/Switch.js.map +1 -0
- package/dist/components/Table/Table.d.ts +96 -0
- package/dist/components/Table/Table.js +136 -0
- package/dist/components/Table/Table.js.map +1 -0
- package/dist/components/Tabs/Tabs.d.ts +35 -0
- package/dist/components/Tabs/Tabs.js +48 -0
- package/dist/components/Tabs/Tabs.js.map +1 -0
- package/dist/components/Tag/Tag.d.ts +28 -0
- package/dist/components/Tag/Tag.js +22 -0
- package/dist/components/Tag/Tag.js.map +1 -0
- package/dist/components/Textarea/Textarea.d.ts +20 -0
- package/dist/components/Textarea/Textarea.js +32 -0
- package/dist/components/Textarea/Textarea.js.map +1 -0
- package/dist/components/Toast/Toast.d.ts +24 -0
- package/dist/components/Toast/Toast.js +41 -0
- package/dist/components/Toast/Toast.js.map +1 -0
- package/dist/components/ToggleGroup/ToggleGroup.d.ts +41 -0
- package/dist/components/ToggleGroup/ToggleGroup.js +78 -0
- package/dist/components/ToggleGroup/ToggleGroup.js.map +1 -0
- package/dist/components/Tooltip/Tooltip.d.ts +43 -0
- package/dist/components/Tooltip/Tooltip.js +40 -0
- package/dist/components/Tooltip/Tooltip.js.map +1 -0
- package/dist/fonts/hanken-grotesk-300.woff2 +0 -0
- package/dist/fonts/hanken-grotesk-400.woff2 +0 -0
- package/dist/fonts/hanken-grotesk-500.woff2 +0 -0
- package/dist/fonts/hanken-grotesk-600.woff2 +0 -0
- package/dist/fonts/hanken-grotesk-700.woff2 +0 -0
- package/dist/fonts/ibm-plex-mono-400.woff2 +0 -0
- package/dist/fonts/ibm-plex-mono-500.woff2 +0 -0
- package/dist/fonts/ibm-plex-mono-600.woff2 +0 -0
- package/dist/fonts/newsreader-300.woff2 +0 -0
- package/dist/fonts/newsreader-400.woff2 +0 -0
- package/dist/fonts/newsreader-500.woff2 +0 -0
- package/dist/fonts/newsreader-600.woff2 +0 -0
- package/dist/fonts.css +96 -0
- package/dist/index.d.ts +77 -0
- package/dist/index.js +63 -0
- package/dist/index.js.map +1 -0
- package/dist/keyframes.css +212 -0
- package/dist/lib/cn.d.ts +21 -0
- package/dist/lib/cn.js +9 -0
- package/dist/lib/cn.js.map +1 -0
- package/dist/lib/control.d.ts +31 -0
- package/dist/lib/control.js +14 -0
- package/dist/lib/control.js.map +1 -0
- package/dist/lib/index.d.ts +4 -0
- package/dist/lib/index.js +11 -0
- package/dist/lib/index.js.map +1 -0
- package/dist/lib/overlay-container.d.ts +38 -0
- package/dist/lib/overlay-container.js +15 -0
- package/dist/lib/overlay-container.js.map +1 -0
- package/dist/lib/useSelectionIndicator.d.ts +29 -0
- package/dist/lib/useSelectionIndicator.js +45 -0
- package/dist/lib/useSelectionIndicator.js.map +1 -0
- package/dist/semantic.css +127 -0
- package/dist/styles.css +98 -0
- package/dist/themes.css +115 -0
- package/dist/tokens/brand.d.ts +47 -0
- package/dist/tokens/brand.js +38 -0
- package/dist/tokens/brand.js.map +1 -0
- package/dist/tokens.css +323 -0
- package/dist/tokens.d.ts +153 -0
- package/dist/tokens.js +766 -0
- package/dist/tokens.json +765 -0
- package/package.json +130 -0
package/dist/tokens.js
ADDED
|
@@ -0,0 +1,766 @@
|
|
|
1
|
+
/* GENERATED by scripts/emit-tokens.mjs — do not edit. */
|
|
2
|
+
export const TOKENS = {
|
|
3
|
+
"paper": {
|
|
4
|
+
"layer": "tokens",
|
|
5
|
+
"category": "colour",
|
|
6
|
+
"light": "#ffffff",
|
|
7
|
+
"dark": "#0d0d0d"
|
|
8
|
+
},
|
|
9
|
+
"paper-2": {
|
|
10
|
+
"layer": "tokens",
|
|
11
|
+
"category": "colour",
|
|
12
|
+
"light": "#f7f7f5",
|
|
13
|
+
"dark": "#161616"
|
|
14
|
+
},
|
|
15
|
+
"bar": {
|
|
16
|
+
"layer": "tokens",
|
|
17
|
+
"category": "colour",
|
|
18
|
+
"light": "var(--stone)",
|
|
19
|
+
"dark": "var(--stone)"
|
|
20
|
+
},
|
|
21
|
+
"bar-2": {
|
|
22
|
+
"layer": "tokens",
|
|
23
|
+
"category": "colour",
|
|
24
|
+
"light": "var(--stone)",
|
|
25
|
+
"dark": "var(--stone)"
|
|
26
|
+
},
|
|
27
|
+
"ink": {
|
|
28
|
+
"layer": "tokens",
|
|
29
|
+
"category": "colour",
|
|
30
|
+
"light": "#101010",
|
|
31
|
+
"comment": "Two text steps and nothing lighter. --ink-3-aa is the floor — it clears AA on white at 6.7:1, and every step above it is darker. --ink-3 is the same weight expressed as alpha, for rules and washes that must sit over a photograph as well as over paper.",
|
|
32
|
+
"dark": "#f4f4f2"
|
|
33
|
+
},
|
|
34
|
+
"ink-2": {
|
|
35
|
+
"layer": "tokens",
|
|
36
|
+
"category": "colour",
|
|
37
|
+
"light": "#4a4a4a",
|
|
38
|
+
"dark": "#b4b4b0"
|
|
39
|
+
},
|
|
40
|
+
"ink-3": {
|
|
41
|
+
"layer": "tokens",
|
|
42
|
+
"category": "colour",
|
|
43
|
+
"light": "rgba(16, 16, 16, 0.55)",
|
|
44
|
+
"dark": "rgba(244, 244, 242, 0.55)"
|
|
45
|
+
},
|
|
46
|
+
"ink-3-aa": {
|
|
47
|
+
"layer": "tokens",
|
|
48
|
+
"category": "colour",
|
|
49
|
+
"light": "#5c5c5c",
|
|
50
|
+
"dark": "#9a9a96"
|
|
51
|
+
},
|
|
52
|
+
"forest": {
|
|
53
|
+
"layer": "tokens",
|
|
54
|
+
"category": "colour",
|
|
55
|
+
"light": "#3a3a3a",
|
|
56
|
+
"comment": "The second editorial voice is not a hue — it is one more neutral step, sitting between --ink and --ink-2, so a byline separates from body copy without introducing colour.",
|
|
57
|
+
"dark": "#c9c9c5"
|
|
58
|
+
},
|
|
59
|
+
"mist": {
|
|
60
|
+
"layer": "tokens",
|
|
61
|
+
"category": "colour",
|
|
62
|
+
"light": "var(--stone)",
|
|
63
|
+
"dark": "var(--stone)"
|
|
64
|
+
},
|
|
65
|
+
"stone": {
|
|
66
|
+
"layer": "tokens",
|
|
67
|
+
"category": "colour",
|
|
68
|
+
"light": "#f2f1ee",
|
|
69
|
+
"dark": "#1f1f1f"
|
|
70
|
+
},
|
|
71
|
+
"clay": {
|
|
72
|
+
"layer": "tokens",
|
|
73
|
+
"category": "colour",
|
|
74
|
+
"light": "var(--ink)",
|
|
75
|
+
"comment": "Monochrome collapses the pointer onto the mark: the accent IS ink. What used to be carried by hue is now carried by weight, rule and reversal — an ink pill, an ink underline, an ink-filled plate.",
|
|
76
|
+
"dark": "var(--ink)"
|
|
77
|
+
},
|
|
78
|
+
"clay-ink": {
|
|
79
|
+
"layer": "tokens",
|
|
80
|
+
"category": "colour",
|
|
81
|
+
"light": "var(--clay)",
|
|
82
|
+
"dark": "var(--clay)"
|
|
83
|
+
},
|
|
84
|
+
"feature-surface": {
|
|
85
|
+
"layer": "tokens",
|
|
86
|
+
"category": "colour",
|
|
87
|
+
"light": "#262626",
|
|
88
|
+
"comment": "The one reversed plate, and the one place the ramp needs a tenth step. Set to var(--ink) it was the page's darkest possible mark used as a field, which on a white page reads as a hole punched through it rather than as a panel. Two steps lighter keeps the reversal — 15.1:1 for paper-white type on it — and matches the dark side.",
|
|
89
|
+
"dark": "#1a1a1a"
|
|
90
|
+
},
|
|
91
|
+
"on-feature": {
|
|
92
|
+
"layer": "tokens",
|
|
93
|
+
"category": "colour",
|
|
94
|
+
"light": "var(--paper)",
|
|
95
|
+
"dark": "var(--ink)"
|
|
96
|
+
},
|
|
97
|
+
"focus-on-feature": {
|
|
98
|
+
"layer": "tokens",
|
|
99
|
+
"category": "focus",
|
|
100
|
+
"light": "var(--on-feature)",
|
|
101
|
+
"dark": "var(--on-feature)"
|
|
102
|
+
},
|
|
103
|
+
"on-photo": {
|
|
104
|
+
"layer": "tokens",
|
|
105
|
+
"category": "colour",
|
|
106
|
+
"light": "var(--paper)",
|
|
107
|
+
"dark": "#fbfbfa"
|
|
108
|
+
},
|
|
109
|
+
"photo-caption-surface": {
|
|
110
|
+
"layer": "tokens",
|
|
111
|
+
"category": "colour",
|
|
112
|
+
"light": "var(--ink)",
|
|
113
|
+
"dark": "var(--paper)"
|
|
114
|
+
},
|
|
115
|
+
"photo-shadow": {
|
|
116
|
+
"layer": "tokens",
|
|
117
|
+
"category": "colour",
|
|
118
|
+
"light": "0 1px 6px rgb(0 0 0 / 0.72)",
|
|
119
|
+
"dark": "0 1px 6px rgb(0 0 0 / 0.72)"
|
|
120
|
+
},
|
|
121
|
+
"rule": {
|
|
122
|
+
"layer": "tokens",
|
|
123
|
+
"category": "colour",
|
|
124
|
+
"light": "#edebe6",
|
|
125
|
+
"comment": "Three rule weights, because a monochrome page has no colour left to separate one band from the next: hairline, edge, and hard.",
|
|
126
|
+
"dark": "rgba(244, 244, 242, 0.14)"
|
|
127
|
+
},
|
|
128
|
+
"rule-2": {
|
|
129
|
+
"layer": "tokens",
|
|
130
|
+
"category": "colour",
|
|
131
|
+
"light": "#dbdbd6",
|
|
132
|
+
"dark": "rgba(244, 244, 242, 0.26)"
|
|
133
|
+
},
|
|
134
|
+
"rule-hard": {
|
|
135
|
+
"layer": "tokens",
|
|
136
|
+
"category": "colour",
|
|
137
|
+
"light": "var(--ink)",
|
|
138
|
+
"dark": "var(--ink)"
|
|
139
|
+
},
|
|
140
|
+
"red": {
|
|
141
|
+
"layer": "tokens",
|
|
142
|
+
"category": "colour",
|
|
143
|
+
"light": "var(--clay)",
|
|
144
|
+
"comment": "Historic role names, kept so a consumer written against the previous palette keeps resolving. Their hue is now ink; the role remains \"the single editorial pointer\".",
|
|
145
|
+
"dark": "var(--clay)"
|
|
146
|
+
},
|
|
147
|
+
"red-ink": {
|
|
148
|
+
"layer": "tokens",
|
|
149
|
+
"category": "colour",
|
|
150
|
+
"light": "var(--clay)",
|
|
151
|
+
"dark": "var(--clay)"
|
|
152
|
+
},
|
|
153
|
+
"red-soft": {
|
|
154
|
+
"layer": "tokens",
|
|
155
|
+
"category": "colour",
|
|
156
|
+
"light": "rgba(16, 16, 16, 0.07)",
|
|
157
|
+
"dark": "rgba(244, 244, 242, 0.12)"
|
|
158
|
+
},
|
|
159
|
+
"on-red": {
|
|
160
|
+
"layer": "tokens",
|
|
161
|
+
"category": "colour",
|
|
162
|
+
"light": "var(--paper)",
|
|
163
|
+
"dark": "var(--paper)"
|
|
164
|
+
},
|
|
165
|
+
"shadow-offset": {
|
|
166
|
+
"layer": "tokens",
|
|
167
|
+
"category": "depth",
|
|
168
|
+
"light": "var(--clay)",
|
|
169
|
+
"dark": "var(--clay)"
|
|
170
|
+
},
|
|
171
|
+
"sans": {
|
|
172
|
+
"layer": "tokens",
|
|
173
|
+
"category": "type",
|
|
174
|
+
"light": "var(--font-hanken, 'Hanken Grotesk'), var(--cjk-sans), 'Helvetica Neue', Arial, sans-serif",
|
|
175
|
+
"comment": "─── Type ─────────────────────────────────────────────────────────────── Three faces and their CJK companions. EVERY `var()` here carries a fallback, and that is load-bearing rather than tidy. A `var(--font-hanken)` with no fallback, in a host that does not define `--font-hanken`, is invalid at computed-value time — and IACVT does not skip the one term, it discards the WHOLE declaration. So the entire stack collapsed to nothing and every surface rendered in the platform's system font. It worked inside the site, where next/font defines those names, and failed everywhere else: for a package whose whole purpose is to render the same on both sides, that is the worst possible bug. With the fallback, a host that loads the faces itself (next/font, a CDN) sets `--font-*` and wins; a host that does not falls through to the literal family name, which is exactly the name `fonts.css` declares its vendored @font-face rules under. The CJK stacks deliberately end WITHOUT a generic family. They are spliced into the middle of the three stacks above, and a generic in the middle terminates a font stack — everything listed after it is unreachable."
|
|
176
|
+
},
|
|
177
|
+
"serif": {
|
|
178
|
+
"layer": "tokens",
|
|
179
|
+
"category": "type",
|
|
180
|
+
"light": "var(--font-newsreader, 'Newsreader'), var(--cjk-serif), Georgia, serif"
|
|
181
|
+
},
|
|
182
|
+
"mono": {
|
|
183
|
+
"layer": "tokens",
|
|
184
|
+
"category": "type",
|
|
185
|
+
"light": "var(--font-plex-mono, 'IBM Plex Mono'), var(--cjk-sans), ui-monospace, SFMono-Regular, Menlo,\n monospace"
|
|
186
|
+
},
|
|
187
|
+
"cjk-serif": {
|
|
188
|
+
"layer": "tokens",
|
|
189
|
+
"category": "type",
|
|
190
|
+
"light": "var(--font-noto-serif-sc, 'Noto Serif SC'), 'Source Han Serif SC', 'Songti SC', STSong,\n SimSun"
|
|
191
|
+
},
|
|
192
|
+
"cjk-sans": {
|
|
193
|
+
"layer": "tokens",
|
|
194
|
+
"category": "type",
|
|
195
|
+
"light": "var(--font-noto-sans-sc, 'Noto Sans SC'), 'PingFang SC', 'Hiragino Sans GB',\n 'Microsoft YaHei'"
|
|
196
|
+
},
|
|
197
|
+
"lh-cjk": {
|
|
198
|
+
"layer": "tokens",
|
|
199
|
+
"category": "type",
|
|
200
|
+
"light": "1.8"
|
|
201
|
+
},
|
|
202
|
+
"ls-cjk": {
|
|
203
|
+
"layer": "tokens",
|
|
204
|
+
"category": "type",
|
|
205
|
+
"light": "0"
|
|
206
|
+
},
|
|
207
|
+
"fluid": {
|
|
208
|
+
"layer": "tokens",
|
|
209
|
+
"category": "other",
|
|
210
|
+
"light": "1vw",
|
|
211
|
+
"comment": "─── The fluid base ────────────────────────────────────────────────────── Every fluid step below is one percent of THIS, not of the viewport. The default is `1vw`, which is what a page wants. A bounded frame — a device preview, a documentation canvas, an embedded console — overrides it to `1cqi` and declares itself a `container`, and the whole ramp re-bases onto the frame's width. Without the seam a 390px preview inside a 1440px window renders 54px headings and 64px gutters, which is not what a 390px screen looks like and is exactly the bug this replaces. The ramp itself is declared once, below, for BOTH `:root` and a frame — rather than composed here and inherited. A custom property substitutes `var()` where it is DECLARED, so a ramp written only on `:root` bakes in `1vw` and a deeper `--fluid` never reaches it."
|
|
212
|
+
},
|
|
213
|
+
"maxw": {
|
|
214
|
+
"layer": "tokens",
|
|
215
|
+
"category": "space",
|
|
216
|
+
"light": "1288px"
|
|
217
|
+
},
|
|
218
|
+
"col": {
|
|
219
|
+
"layer": "tokens",
|
|
220
|
+
"category": "space",
|
|
221
|
+
"light": "8.3333%"
|
|
222
|
+
},
|
|
223
|
+
"row": {
|
|
224
|
+
"layer": "tokens",
|
|
225
|
+
"category": "space",
|
|
226
|
+
"light": "52px"
|
|
227
|
+
},
|
|
228
|
+
"fs-title": {
|
|
229
|
+
"layer": "tokens",
|
|
230
|
+
"category": "type",
|
|
231
|
+
"light": "clamp(2.5rem, calc(4.6 * var(--fluid)), 3.375rem)"
|
|
232
|
+
},
|
|
233
|
+
"fs-lead": {
|
|
234
|
+
"layer": "tokens",
|
|
235
|
+
"category": "type",
|
|
236
|
+
"light": "clamp(1.875rem, calc(3 * var(--fluid)), 2.625rem)",
|
|
237
|
+
"comment": "page h1 40 → 54px"
|
|
238
|
+
},
|
|
239
|
+
"fs-heading": {
|
|
240
|
+
"layer": "tokens",
|
|
241
|
+
"category": "type",
|
|
242
|
+
"light": "clamp(1.5rem, calc(2.1 * var(--fluid)), 1.8125rem)",
|
|
243
|
+
"comment": "band heading 30 → 42px"
|
|
244
|
+
},
|
|
245
|
+
"fs-sub": {
|
|
246
|
+
"layer": "tokens",
|
|
247
|
+
"category": "type",
|
|
248
|
+
"light": "clamp(1.3125rem, calc(1.7 * var(--fluid)), 1.5625rem)",
|
|
249
|
+
"comment": "record title 24 → 29px"
|
|
250
|
+
},
|
|
251
|
+
"fs-item": {
|
|
252
|
+
"layer": "tokens",
|
|
253
|
+
"category": "type",
|
|
254
|
+
"light": "clamp(1.125rem, calc(1.35 * var(--fluid)), 1.25rem)",
|
|
255
|
+
"comment": "card sub-head 21 → 25px"
|
|
256
|
+
},
|
|
257
|
+
"pad": {
|
|
258
|
+
"layer": "tokens",
|
|
259
|
+
"category": "space",
|
|
260
|
+
"light": "clamp(18px, calc(4.4 * var(--fluid)), 64px)",
|
|
261
|
+
"comment": "in-card title 18 → 20px"
|
|
262
|
+
},
|
|
263
|
+
"sec": {
|
|
264
|
+
"layer": "tokens",
|
|
265
|
+
"category": "space",
|
|
266
|
+
"light": "clamp(54px, calc(7 * var(--fluid)), 96px)"
|
|
267
|
+
},
|
|
268
|
+
"sec-tight": {
|
|
269
|
+
"layer": "tokens",
|
|
270
|
+
"category": "space",
|
|
271
|
+
"light": "clamp(40px, calc(5 * var(--fluid)), 68px)"
|
|
272
|
+
},
|
|
273
|
+
"radius-sm": {
|
|
274
|
+
"layer": "tokens",
|
|
275
|
+
"category": "radius",
|
|
276
|
+
"light": "6px",
|
|
277
|
+
"comment": "─── Radius ───────────────────────────────────────────────────────────── Four steps, and there is no fifth. The old law was \"0 everywhere\"; the White Reset replaces that with a scale small enough to stay quiet on a white page. A 50% circle is geometry rather than a corner and is not a step here."
|
|
278
|
+
},
|
|
279
|
+
"radius": {
|
|
280
|
+
"layer": "tokens",
|
|
281
|
+
"category": "radius",
|
|
282
|
+
"light": "8px",
|
|
283
|
+
"comment": "images, thumbnails, media frames"
|
|
284
|
+
},
|
|
285
|
+
"radius-lg": {
|
|
286
|
+
"layer": "tokens",
|
|
287
|
+
"category": "radius",
|
|
288
|
+
"light": "14px",
|
|
289
|
+
"comment": "inputs, buttons, small plates"
|
|
290
|
+
},
|
|
291
|
+
"radius-pill": {
|
|
292
|
+
"layer": "tokens",
|
|
293
|
+
"category": "radius",
|
|
294
|
+
"light": "999px",
|
|
295
|
+
"comment": "feature panels, dark plates"
|
|
296
|
+
},
|
|
297
|
+
"control-h-sm": {
|
|
298
|
+
"layer": "tokens",
|
|
299
|
+
"category": "density",
|
|
300
|
+
"light": "1.875rem"
|
|
301
|
+
},
|
|
302
|
+
"control-h-md": {
|
|
303
|
+
"layer": "tokens",
|
|
304
|
+
"category": "density",
|
|
305
|
+
"light": "2.25rem",
|
|
306
|
+
"comment": "30px"
|
|
307
|
+
},
|
|
308
|
+
"control-h-lg": {
|
|
309
|
+
"layer": "tokens",
|
|
310
|
+
"category": "density",
|
|
311
|
+
"light": "2.5rem",
|
|
312
|
+
"comment": "36px — clears WCAG 2.5.8, not 2.5.5"
|
|
313
|
+
},
|
|
314
|
+
"control-px-sm": {
|
|
315
|
+
"layer": "tokens",
|
|
316
|
+
"category": "density",
|
|
317
|
+
"light": "0.75rem",
|
|
318
|
+
"comment": "40px"
|
|
319
|
+
},
|
|
320
|
+
"control-px-md": {
|
|
321
|
+
"layer": "tokens",
|
|
322
|
+
"category": "density",
|
|
323
|
+
"light": "1rem"
|
|
324
|
+
},
|
|
325
|
+
"control-px-lg": {
|
|
326
|
+
"layer": "tokens",
|
|
327
|
+
"category": "density",
|
|
328
|
+
"light": "1.25rem"
|
|
329
|
+
},
|
|
330
|
+
"control-py-sm": {
|
|
331
|
+
"layer": "tokens",
|
|
332
|
+
"category": "density",
|
|
333
|
+
"light": "0.25rem"
|
|
334
|
+
},
|
|
335
|
+
"control-py-md": {
|
|
336
|
+
"layer": "tokens",
|
|
337
|
+
"category": "density",
|
|
338
|
+
"light": "0.375rem"
|
|
339
|
+
},
|
|
340
|
+
"control-py-lg": {
|
|
341
|
+
"layer": "tokens",
|
|
342
|
+
"category": "density",
|
|
343
|
+
"light": "0.5rem"
|
|
344
|
+
},
|
|
345
|
+
"control-gap": {
|
|
346
|
+
"layer": "tokens",
|
|
347
|
+
"category": "density",
|
|
348
|
+
"light": "0.5rem"
|
|
349
|
+
},
|
|
350
|
+
"field-px": {
|
|
351
|
+
"layer": "tokens",
|
|
352
|
+
"category": "density",
|
|
353
|
+
"light": "0.625rem"
|
|
354
|
+
},
|
|
355
|
+
"field-py": {
|
|
356
|
+
"layer": "tokens",
|
|
357
|
+
"category": "density",
|
|
358
|
+
"light": "0.375rem"
|
|
359
|
+
},
|
|
360
|
+
"table-pad-y": {
|
|
361
|
+
"layer": "tokens",
|
|
362
|
+
"category": "other",
|
|
363
|
+
"light": "0.5rem"
|
|
364
|
+
},
|
|
365
|
+
"table-pad-x": {
|
|
366
|
+
"layer": "tokens",
|
|
367
|
+
"category": "other",
|
|
368
|
+
"light": "0px",
|
|
369
|
+
"comment": "`0px`, not `0`. The cell rule adds to this inside a calc, and a unitless zero makes `calc(0 + 1.5rem)` invalid at computed-value time — the whole declaration is dropped and every column loses its gutter in silence."
|
|
370
|
+
},
|
|
371
|
+
"ease": {
|
|
372
|
+
"layer": "tokens",
|
|
373
|
+
"category": "motion",
|
|
374
|
+
"light": "cubic-bezier(0.2, 0.7, 0.3, 1)",
|
|
375
|
+
"comment": "─── Motion ───"
|
|
376
|
+
},
|
|
377
|
+
"fast": {
|
|
378
|
+
"layer": "tokens",
|
|
379
|
+
"category": "motion",
|
|
380
|
+
"light": "0.13s"
|
|
381
|
+
},
|
|
382
|
+
"mid": {
|
|
383
|
+
"layer": "tokens",
|
|
384
|
+
"category": "motion",
|
|
385
|
+
"light": "0.22s"
|
|
386
|
+
},
|
|
387
|
+
"slow": {
|
|
388
|
+
"layer": "tokens",
|
|
389
|
+
"category": "motion",
|
|
390
|
+
"light": "0.34s"
|
|
391
|
+
},
|
|
392
|
+
"z-rule": {
|
|
393
|
+
"layer": "tokens",
|
|
394
|
+
"category": "layer",
|
|
395
|
+
"light": "1",
|
|
396
|
+
"comment": "─── Stacking ─── seven ranks, named for what sits at each."
|
|
397
|
+
},
|
|
398
|
+
"z-sticky": {
|
|
399
|
+
"layer": "tokens",
|
|
400
|
+
"category": "layer",
|
|
401
|
+
"light": "10"
|
|
402
|
+
},
|
|
403
|
+
"z-drawer": {
|
|
404
|
+
"layer": "tokens",
|
|
405
|
+
"category": "layer",
|
|
406
|
+
"light": "100"
|
|
407
|
+
},
|
|
408
|
+
"z-scrim": {
|
|
409
|
+
"layer": "tokens",
|
|
410
|
+
"category": "layer",
|
|
411
|
+
"light": "200"
|
|
412
|
+
},
|
|
413
|
+
"z-modal": {
|
|
414
|
+
"layer": "tokens",
|
|
415
|
+
"category": "layer",
|
|
416
|
+
"light": "210"
|
|
417
|
+
},
|
|
418
|
+
"z-palette": {
|
|
419
|
+
"layer": "tokens",
|
|
420
|
+
"category": "layer",
|
|
421
|
+
"light": "220"
|
|
422
|
+
},
|
|
423
|
+
"z-toast": {
|
|
424
|
+
"layer": "tokens",
|
|
425
|
+
"category": "layer",
|
|
426
|
+
"light": "300"
|
|
427
|
+
},
|
|
428
|
+
"focus": {
|
|
429
|
+
"layer": "tokens",
|
|
430
|
+
"category": "focus",
|
|
431
|
+
"light": "var(--red)",
|
|
432
|
+
"comment": "─── Focus ───"
|
|
433
|
+
},
|
|
434
|
+
"focus-w": {
|
|
435
|
+
"layer": "tokens",
|
|
436
|
+
"category": "focus",
|
|
437
|
+
"light": "2px"
|
|
438
|
+
},
|
|
439
|
+
"focus-off": {
|
|
440
|
+
"layer": "tokens",
|
|
441
|
+
"category": "focus",
|
|
442
|
+
"light": "3px"
|
|
443
|
+
},
|
|
444
|
+
"ico-s": {
|
|
445
|
+
"layer": "tokens",
|
|
446
|
+
"category": "icon",
|
|
447
|
+
"light": "14px",
|
|
448
|
+
"comment": "─── Icons ─── one stroke weight, three sizes."
|
|
449
|
+
},
|
|
450
|
+
"ico-m": {
|
|
451
|
+
"layer": "tokens",
|
|
452
|
+
"category": "icon",
|
|
453
|
+
"light": "16px"
|
|
454
|
+
},
|
|
455
|
+
"ico-l": {
|
|
456
|
+
"layer": "tokens",
|
|
457
|
+
"category": "icon",
|
|
458
|
+
"light": "20px"
|
|
459
|
+
},
|
|
460
|
+
"ico-stroke": {
|
|
461
|
+
"layer": "tokens",
|
|
462
|
+
"category": "icon",
|
|
463
|
+
"light": "1.5"
|
|
464
|
+
},
|
|
465
|
+
"ok": {
|
|
466
|
+
"layer": "tokens",
|
|
467
|
+
"category": "colour",
|
|
468
|
+
"light": "#3d6b34",
|
|
469
|
+
"comment": "─── Status ─── the only chroma in the system, and it is bound to state.",
|
|
470
|
+
"dark": "#84b47b"
|
|
471
|
+
},
|
|
472
|
+
"ok-soft": {
|
|
473
|
+
"layer": "tokens",
|
|
474
|
+
"category": "colour",
|
|
475
|
+
"light": "rgba(61, 107, 52, 0.13)",
|
|
476
|
+
"dark": "rgba(132, 180, 123, 0.16)"
|
|
477
|
+
},
|
|
478
|
+
"warn": {
|
|
479
|
+
"layer": "tokens",
|
|
480
|
+
"category": "colour",
|
|
481
|
+
"light": "#8a5a00",
|
|
482
|
+
"dark": "#d9a55d"
|
|
483
|
+
},
|
|
484
|
+
"warn-soft": {
|
|
485
|
+
"layer": "tokens",
|
|
486
|
+
"category": "colour",
|
|
487
|
+
"light": "rgba(138, 90, 0, 0.13)",
|
|
488
|
+
"dark": "rgba(217, 165, 93, 0.16)"
|
|
489
|
+
},
|
|
490
|
+
"danger": {
|
|
491
|
+
"layer": "tokens",
|
|
492
|
+
"category": "colour",
|
|
493
|
+
"light": "#a83214",
|
|
494
|
+
"dark": "#ee8b68"
|
|
495
|
+
},
|
|
496
|
+
"danger-soft": {
|
|
497
|
+
"layer": "tokens",
|
|
498
|
+
"category": "colour",
|
|
499
|
+
"light": "rgba(168, 50, 20, 0.14)",
|
|
500
|
+
"dark": "rgba(238, 139, 104, 0.16)"
|
|
501
|
+
},
|
|
502
|
+
"scrim": {
|
|
503
|
+
"layer": "tokens",
|
|
504
|
+
"category": "colour",
|
|
505
|
+
"light": "color-mix(in srgb, var(--ink) 62%, transparent)",
|
|
506
|
+
"dark": "color-mix(in srgb, #000 72%, transparent)"
|
|
507
|
+
},
|
|
508
|
+
"background": {
|
|
509
|
+
"layer": "semantic",
|
|
510
|
+
"category": "colour",
|
|
511
|
+
"light": "var(--paper)",
|
|
512
|
+
"comment": "─── Surfaces ───────────────────────────────────────────────────────────"
|
|
513
|
+
},
|
|
514
|
+
"background-elevated": {
|
|
515
|
+
"layer": "semantic",
|
|
516
|
+
"category": "colour",
|
|
517
|
+
"light": "var(--paper-2)"
|
|
518
|
+
},
|
|
519
|
+
"code-background": {
|
|
520
|
+
"layer": "semantic",
|
|
521
|
+
"category": "colour",
|
|
522
|
+
"light": "var(--bar)"
|
|
523
|
+
},
|
|
524
|
+
"nav-background": {
|
|
525
|
+
"layer": "semantic",
|
|
526
|
+
"category": "colour",
|
|
527
|
+
"light": "var(--paper)"
|
|
528
|
+
},
|
|
529
|
+
"card-background": {
|
|
530
|
+
"layer": "semantic",
|
|
531
|
+
"category": "colour",
|
|
532
|
+
"light": "var(--paper)",
|
|
533
|
+
"comment": "Kept as an alias rather than removed: the White Reset retired the card surface, so an elevated variant has nothing left to point at. Consumers written against it keep resolving, on paper."
|
|
534
|
+
},
|
|
535
|
+
"foreground": {
|
|
536
|
+
"layer": "semantic",
|
|
537
|
+
"category": "colour",
|
|
538
|
+
"light": "var(--ink)",
|
|
539
|
+
"comment": "─── Text ───────────────────────────────────────────────────────────────"
|
|
540
|
+
},
|
|
541
|
+
"foreground-muted": {
|
|
542
|
+
"layer": "semantic",
|
|
543
|
+
"category": "colour",
|
|
544
|
+
"light": "var(--ink-2)"
|
|
545
|
+
},
|
|
546
|
+
"secondary-text": {
|
|
547
|
+
"layer": "semantic",
|
|
548
|
+
"category": "space",
|
|
549
|
+
"light": "var(--ink-3-aa)"
|
|
550
|
+
},
|
|
551
|
+
"on-dark": {
|
|
552
|
+
"layer": "semantic",
|
|
553
|
+
"category": "colour",
|
|
554
|
+
"light": "#fbfbfa",
|
|
555
|
+
"comment": "Text sitting on a PHOTOGRAPH — a hero, a lightbox, a scrim. A photograph is a dark ground in BOTH themes, so this must not follow the paper/ink swap: as var(--paper) it inverted to near-black in dark mode, which is how headings disappeared into their own images. A literal, not var(--ink)."
|
|
556
|
+
},
|
|
557
|
+
"brand-plate": {
|
|
558
|
+
"layer": "semantic",
|
|
559
|
+
"category": "colour",
|
|
560
|
+
"light": "#ffffff",
|
|
561
|
+
"comment": "The ground under a THIRD-PARTY brand mark, and for the same reason: a foreign logo is drawn against one fixed backdrop and shipped flat, with no light-ink sibling. A plate that followed the swap erased it in dark mode. Not for our own marks, which are authored against the theme."
|
|
562
|
+
},
|
|
563
|
+
"border-color": {
|
|
564
|
+
"layer": "semantic",
|
|
565
|
+
"category": "colour",
|
|
566
|
+
"light": "var(--rule-2)",
|
|
567
|
+
"comment": "─── Lines ──────────────────────────────────────────────────────────────"
|
|
568
|
+
},
|
|
569
|
+
"border-subtle": {
|
|
570
|
+
"layer": "semantic",
|
|
571
|
+
"category": "colour",
|
|
572
|
+
"light": "var(--rule)"
|
|
573
|
+
},
|
|
574
|
+
"accent": {
|
|
575
|
+
"layer": "semantic",
|
|
576
|
+
"category": "colour",
|
|
577
|
+
"light": "var(--red)",
|
|
578
|
+
"comment": "─── Accent ───────────────────────────────────────────────────────────── One pointer, and in a monochrome system it points at ink — law 7. Every surface that marks a CHOICE reads from here rather than from --ink directly: a primary button, a checked box, the active tab, the current page, a slider's filled range, the selected day. That distinction is the whole point of having a pointer at all. While the accent IS ink the two render identically, which is why it went unnoticed that half the system was reading the primitive — and why re-pointing this one token now re-skins the system without a component being touched."
|
|
579
|
+
},
|
|
580
|
+
"accent-hover": {
|
|
581
|
+
"layer": "semantic",
|
|
582
|
+
"category": "colour",
|
|
583
|
+
"light": "var(--red-ink)"
|
|
584
|
+
},
|
|
585
|
+
"accent-muted": {
|
|
586
|
+
"layer": "semantic",
|
|
587
|
+
"category": "colour",
|
|
588
|
+
"light": "var(--red-soft)"
|
|
589
|
+
},
|
|
590
|
+
"accent-wash": {
|
|
591
|
+
"layer": "semantic",
|
|
592
|
+
"category": "colour",
|
|
593
|
+
"light": "var(--red-soft)"
|
|
594
|
+
},
|
|
595
|
+
"accent-foreground": {
|
|
596
|
+
"layer": "semantic",
|
|
597
|
+
"category": "colour",
|
|
598
|
+
"light": "var(--on-red)"
|
|
599
|
+
},
|
|
600
|
+
"accent-on-dark": {
|
|
601
|
+
"layer": "semantic",
|
|
602
|
+
"category": "colour",
|
|
603
|
+
"light": "var(--red)"
|
|
604
|
+
},
|
|
605
|
+
"accent-on-muted": {
|
|
606
|
+
"layer": "semantic",
|
|
607
|
+
"category": "colour",
|
|
608
|
+
"light": "var(--red-ink)",
|
|
609
|
+
"comment": "Accent text sitting on an accent-muted panel, which --accent cannot do: it clears AA on paper by 4.58:1, and any tint of itself underneath pushes it below 4.5. This names the situation so the choice is not left to whoever writes the next panel."
|
|
610
|
+
},
|
|
611
|
+
"success": {
|
|
612
|
+
"layer": "semantic",
|
|
613
|
+
"category": "colour",
|
|
614
|
+
"light": "var(--ok)",
|
|
615
|
+
"comment": "─── Status ─── bound to state, never to brand. ─────────────────────────"
|
|
616
|
+
},
|
|
617
|
+
"success-wash": {
|
|
618
|
+
"layer": "semantic",
|
|
619
|
+
"category": "colour",
|
|
620
|
+
"light": "var(--ok-soft)"
|
|
621
|
+
},
|
|
622
|
+
"warning": {
|
|
623
|
+
"layer": "semantic",
|
|
624
|
+
"category": "colour",
|
|
625
|
+
"light": "var(--warn)"
|
|
626
|
+
},
|
|
627
|
+
"warning-wash": {
|
|
628
|
+
"layer": "semantic",
|
|
629
|
+
"category": "colour",
|
|
630
|
+
"light": "var(--warn-soft)"
|
|
631
|
+
},
|
|
632
|
+
"danger-wash": {
|
|
633
|
+
"layer": "semantic",
|
|
634
|
+
"category": "colour",
|
|
635
|
+
"light": "var(--danger-soft)"
|
|
636
|
+
},
|
|
637
|
+
"info": {
|
|
638
|
+
"layer": "semantic",
|
|
639
|
+
"category": "colour",
|
|
640
|
+
"light": "var(--ink-2)"
|
|
641
|
+
},
|
|
642
|
+
"info-wash": {
|
|
643
|
+
"layer": "semantic",
|
|
644
|
+
"category": "colour",
|
|
645
|
+
"light": "var(--red-soft)"
|
|
646
|
+
},
|
|
647
|
+
"photo-scrim": {
|
|
648
|
+
"layer": "semantic",
|
|
649
|
+
"category": "colour",
|
|
650
|
+
"light": "#101010",
|
|
651
|
+
"comment": "The photo scrim is always dark by design, so it takes the ink literal rather than the semantic token (which inverts)."
|
|
652
|
+
},
|
|
653
|
+
"shadow-color": {
|
|
654
|
+
"layer": "semantic",
|
|
655
|
+
"category": "depth",
|
|
656
|
+
"light": "transparent",
|
|
657
|
+
"comment": "─── Depth ──────────────────────────────────────────────────────────── Law 2 — a box-shadow is never blurred. The system has no elevation ramp; depth is a hard offset in ink, applied per component. These three resolve to nothing on purpose, so a component ported from a shadowed system stays flat instead of drawing a blur the White Reset does not have. Reach for --lift instead, which is the offset idiom expressed once."
|
|
658
|
+
},
|
|
659
|
+
"shadow-sm": {
|
|
660
|
+
"layer": "semantic",
|
|
661
|
+
"category": "depth",
|
|
662
|
+
"light": "none"
|
|
663
|
+
},
|
|
664
|
+
"shadow": {
|
|
665
|
+
"layer": "semantic",
|
|
666
|
+
"category": "depth",
|
|
667
|
+
"light": "none"
|
|
668
|
+
},
|
|
669
|
+
"shadow-lg": {
|
|
670
|
+
"layer": "semantic",
|
|
671
|
+
"category": "depth",
|
|
672
|
+
"light": "none"
|
|
673
|
+
},
|
|
674
|
+
"lift": {
|
|
675
|
+
"layer": "semantic",
|
|
676
|
+
"category": "depth",
|
|
677
|
+
"light": "3px 3px 0 0 var(--shadow-offset)",
|
|
678
|
+
"comment": "The one depth cue the system does have: a hard 3px ink offset, no blur. Used by a plate that must read as sitting above the page."
|
|
679
|
+
},
|
|
680
|
+
"lift-sm": {
|
|
681
|
+
"layer": "semantic",
|
|
682
|
+
"category": "depth",
|
|
683
|
+
"light": "2px 2px 0 0 var(--shadow-offset)"
|
|
684
|
+
},
|
|
685
|
+
"ring": {
|
|
686
|
+
"layer": "semantic",
|
|
687
|
+
"category": "focus",
|
|
688
|
+
"light": "var(--focus)",
|
|
689
|
+
"comment": "─── Focus + motion ─── the site's long-lived names onto the primitives."
|
|
690
|
+
},
|
|
691
|
+
"ring-offset": {
|
|
692
|
+
"layer": "semantic",
|
|
693
|
+
"category": "focus",
|
|
694
|
+
"light": "var(--focus-off)"
|
|
695
|
+
},
|
|
696
|
+
"ease-out-expo": {
|
|
697
|
+
"layer": "semantic",
|
|
698
|
+
"category": "motion",
|
|
699
|
+
"light": "var(--ease)"
|
|
700
|
+
},
|
|
701
|
+
"duration-fast": {
|
|
702
|
+
"layer": "semantic",
|
|
703
|
+
"category": "motion",
|
|
704
|
+
"light": "var(--fast)"
|
|
705
|
+
},
|
|
706
|
+
"duration-base": {
|
|
707
|
+
"layer": "semantic",
|
|
708
|
+
"category": "motion",
|
|
709
|
+
"light": "var(--mid)"
|
|
710
|
+
},
|
|
711
|
+
"duration-slow": {
|
|
712
|
+
"layer": "semantic",
|
|
713
|
+
"category": "motion",
|
|
714
|
+
"light": "var(--slow)"
|
|
715
|
+
},
|
|
716
|
+
"overlay": {
|
|
717
|
+
"layer": "semantic",
|
|
718
|
+
"category": "colour",
|
|
719
|
+
"light": "var(--scrim)"
|
|
720
|
+
},
|
|
721
|
+
"disabled-opacity": {
|
|
722
|
+
"layer": "semantic",
|
|
723
|
+
"category": "depth",
|
|
724
|
+
"light": "0.5"
|
|
725
|
+
},
|
|
726
|
+
"z-dropdown": {
|
|
727
|
+
"layer": "semantic",
|
|
728
|
+
"category": "layer",
|
|
729
|
+
"light": "var(--z-drawer)",
|
|
730
|
+
"comment": "─── Stacking ─── five component-facing names onto the seven ranks. ─────"
|
|
731
|
+
},
|
|
732
|
+
"z-overlay": {
|
|
733
|
+
"layer": "semantic",
|
|
734
|
+
"category": "layer",
|
|
735
|
+
"light": "var(--z-scrim)"
|
|
736
|
+
},
|
|
737
|
+
"page-pad": {
|
|
738
|
+
"layer": "semantic",
|
|
739
|
+
"category": "space",
|
|
740
|
+
"light": "var(--pad)",
|
|
741
|
+
"comment": "─── Layout ─────────────────────────────────────────────────────────────"
|
|
742
|
+
},
|
|
743
|
+
"w-page": {
|
|
744
|
+
"layer": "semantic",
|
|
745
|
+
"category": "space",
|
|
746
|
+
"light": "var(--maxw)"
|
|
747
|
+
},
|
|
748
|
+
"w-reading": {
|
|
749
|
+
"layer": "semantic",
|
|
750
|
+
"category": "space",
|
|
751
|
+
"light": "46rem",
|
|
752
|
+
"comment": "Caps the prose track only, which is what a 73ch measure is for."
|
|
753
|
+
},
|
|
754
|
+
"measure-record": {
|
|
755
|
+
"layer": "semantic",
|
|
756
|
+
"category": "space",
|
|
757
|
+
"light": "66ch",
|
|
758
|
+
"comment": "The cap on a listed record's description — a row, a card, a CV entry. In `ch` rather than px so it tracks the type it is set in, and one token rather than the six hand-picked widths surfaces had drifted into. A ceiling, not a width: a narrower column still wins."
|
|
759
|
+
},
|
|
760
|
+
"scroll-offset": {
|
|
761
|
+
"layer": "semantic",
|
|
762
|
+
"category": "space",
|
|
763
|
+
"light": "88px",
|
|
764
|
+
"comment": "How far below the viewport top an anchored heading comes to rest — a fixed masthead plus a line of air."
|
|
765
|
+
}
|
|
766
|
+
}
|