@nebutra/design-tokens 0.1.2 → 2.0.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/README.md +1 -1
- package/build/css/dark.css +65 -49
- package/build/css/light.css +62 -46
- package/build/css/styles.generated.css +477 -115
- package/build/css/theme-inline.css +86 -15
- package/build/tailwind/dark.preset.cjs +64 -36
- package/build/tailwind/light.preset.cjs +62 -34
- package/build/ts/dark.d.ts +79 -9
- package/build/ts/dark.js +75 -49
- package/build/ts/light.d.ts +76 -12
- package/build/ts/light.js +72 -46
- package/package.json +18 -1
- package/scripts/css-var-name.d.mts +2 -0
- package/scripts/css-var-name.mjs +98 -0
- package/scripts/derive-border-tier.d.mts +36 -0
- package/scripts/derive-border-tier.mjs +346 -0
- package/style-dictionary.config.mjs +175 -89
- package/tokens/core.json +33 -18
- package/tokens/semantic.json +0 -12
- package/tokens/themes/dark.json +594 -109
- package/tokens/themes/light.json +535 -103
package/tokens/themes/dark.json
CHANGED
|
@@ -6,12 +6,12 @@
|
|
|
6
6
|
"primary": {
|
|
7
7
|
"$value": "{color.nebutra-blue.400}",
|
|
8
8
|
"$type": "color",
|
|
9
|
-
"$description": "Dark-mode brand primary — visible
|
|
9
|
+
"$description": "Dark-mode brand primary — the identity blue lifted to nebutra-blue-400 so it stays visible on dark surfaces. This is the identity alias, not the functional fill: the dark solid fill is --blue-9 (#396ae2, white label 4.85:1). The two are deliberately separate now that the VI hex is no longer pinned into ramp slot 9."
|
|
10
10
|
},
|
|
11
11
|
"accent": {
|
|
12
12
|
"$value": "{color.nebutra-cyan.400}",
|
|
13
13
|
"$type": "color",
|
|
14
|
-
"$description": "Dark-mode brand accent —
|
|
14
|
+
"$description": "Dark-mode brand accent — nebutra-cyan-400 (L* 87.1). The functional bright fill is --cyan-9 (#0bf1c3, L* 85.41), the same hex in both modes; dark ink for it is --cyan-contrast at 10.35:1."
|
|
15
15
|
}
|
|
16
16
|
},
|
|
17
17
|
"status": {
|
|
@@ -37,156 +37,578 @@
|
|
|
37
37
|
},
|
|
38
38
|
"scale": {
|
|
39
39
|
"neutral": {
|
|
40
|
-
"1": {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
"
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
"
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
40
|
+
"1": {
|
|
41
|
+
"$value": "{color.nebutra-neutral.950}",
|
|
42
|
+
"$type": "color"
|
|
43
|
+
},
|
|
44
|
+
"2": {
|
|
45
|
+
"$value": "{color.nebutra-neutral.900}",
|
|
46
|
+
"$type": "color"
|
|
47
|
+
},
|
|
48
|
+
"3": {
|
|
49
|
+
"$value": "{color.nebutra-neutral.800}",
|
|
50
|
+
"$type": "color"
|
|
51
|
+
},
|
|
52
|
+
"4": {
|
|
53
|
+
"$value": "{color.nebutra-neutral.700}",
|
|
54
|
+
"$type": "color"
|
|
55
|
+
},
|
|
56
|
+
"5": {
|
|
57
|
+
"$value": "{color.nebutra-neutral.600}",
|
|
58
|
+
"$type": "color"
|
|
59
|
+
},
|
|
60
|
+
"6": {
|
|
61
|
+
"$value": "{scale.neutral.5}",
|
|
62
|
+
"$type": "color",
|
|
63
|
+
"$description": "subtle border — DERIVED: OKLab lerp step5 → step9 at t=0.25, chroma forced to 0. The achromatic result is deliberate and preserves the documented intent of color.nebutra-gray ('used where blue undertone clashes — primarily dark-mode borders, dividers, elevation hairlines'). What was broken was the LIGHTNESS: gray-900/800/700 are darker than the slate background tier they sit above, so the border read as a hole rather than a hairline.",
|
|
64
|
+
"$extensions": {
|
|
65
|
+
"com.nebutra.derive": {
|
|
66
|
+
"space": "oklab",
|
|
67
|
+
"tier": "border",
|
|
68
|
+
"chroma": 0
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
"7": {
|
|
73
|
+
"$value": "{scale.neutral.5}",
|
|
74
|
+
"$type": "color",
|
|
75
|
+
"$description": "default border — DERIVED: OKLab lerp step5 → step9 at t=0.50, chroma 0.",
|
|
76
|
+
"$extensions": {
|
|
77
|
+
"com.nebutra.derive": {
|
|
78
|
+
"space": "oklab",
|
|
79
|
+
"tier": "border",
|
|
80
|
+
"chroma": 0
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
},
|
|
84
|
+
"8": {
|
|
85
|
+
"$value": "{scale.neutral.5}",
|
|
86
|
+
"$type": "color",
|
|
87
|
+
"$description": "hovered border — DERIVED: OKLab lerp step5 → step9 at t=0.75, chroma 0.",
|
|
88
|
+
"$extensions": {
|
|
89
|
+
"com.nebutra.derive": {
|
|
90
|
+
"space": "oklab",
|
|
91
|
+
"tier": "border",
|
|
92
|
+
"chroma": 0
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
},
|
|
96
|
+
"9": {
|
|
97
|
+
"$value": "{color.nebutra-neutral.400}",
|
|
98
|
+
"$type": "color"
|
|
99
|
+
},
|
|
100
|
+
"10": {
|
|
101
|
+
"$value": "{color.nebutra-neutral.300}",
|
|
102
|
+
"$type": "color"
|
|
103
|
+
},
|
|
104
|
+
"11": {
|
|
105
|
+
"$value": "{color.nebutra-neutral.200}",
|
|
106
|
+
"$type": "color"
|
|
107
|
+
},
|
|
108
|
+
"12": {
|
|
109
|
+
"$value": "{color.nebutra-neutral.50}",
|
|
110
|
+
"$type": "color"
|
|
111
|
+
}
|
|
52
112
|
},
|
|
53
113
|
"blue": {
|
|
54
|
-
"1": {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
"
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
"
|
|
65
|
-
|
|
114
|
+
"1": {
|
|
115
|
+
"$value": "#030815",
|
|
116
|
+
"$type": "color",
|
|
117
|
+
"$description": "app tint — L* 13.59, C 0.031, hue 264."
|
|
118
|
+
},
|
|
119
|
+
"2": {
|
|
120
|
+
"$value": "#060f25",
|
|
121
|
+
"$type": "color",
|
|
122
|
+
"$description": "subtle background — L* 17.43, C 0.048."
|
|
123
|
+
},
|
|
124
|
+
"3": {
|
|
125
|
+
"$value": "#09183b",
|
|
126
|
+
"$type": "color",
|
|
127
|
+
"$description": "component background default — L* 22.04, C 0.071."
|
|
128
|
+
},
|
|
129
|
+
"4": {
|
|
130
|
+
"$value": "#0d2254",
|
|
131
|
+
"$type": "color",
|
|
132
|
+
"$description": "component background hover — L* 26.99, C 0.095."
|
|
133
|
+
},
|
|
134
|
+
"5": {
|
|
135
|
+
"$value": "#132e6f",
|
|
136
|
+
"$type": "color",
|
|
137
|
+
"$description": "component background active — L* 32.46, C 0.118. Anchor for the derived border tier."
|
|
138
|
+
},
|
|
139
|
+
"6": {
|
|
140
|
+
"$value": "{scale.blue.5}",
|
|
141
|
+
"$type": "color",
|
|
142
|
+
"$description": "subtle border — DERIVED at build time (scripts/derive-border-tier.mjs): OKLab lerp of step 5 toward step9 (deep scale, span 23.5 L*) at t=0.25. The value here is a placeholder anchor only; the preprocessor overwrites it. Lands at L* 38.25, C 0.136.",
|
|
143
|
+
"$extensions": {
|
|
144
|
+
"com.nebutra.derive": {
|
|
145
|
+
"space": "oklab",
|
|
146
|
+
"tier": "border"
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
},
|
|
150
|
+
"7": {
|
|
151
|
+
"$value": "{scale.blue.5}",
|
|
152
|
+
"$type": "color",
|
|
153
|
+
"$description": "default border — DERIVED at build time (scripts/derive-border-tier.mjs): OKLab lerp of step 5 toward step9 (deep scale, span 23.5 L*) at t=0.50. The value here is a placeholder anchor only; the preprocessor overwrites it. Lands at L* 44.21, C 0.155.",
|
|
154
|
+
"$extensions": {
|
|
155
|
+
"com.nebutra.derive": {
|
|
156
|
+
"space": "oklab",
|
|
157
|
+
"tier": "border"
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
},
|
|
161
|
+
"8": {
|
|
162
|
+
"$value": "{scale.blue.5}",
|
|
163
|
+
"$type": "color",
|
|
164
|
+
"$description": "hovered border — DERIVED at build time (scripts/derive-border-tier.mjs): OKLab lerp of step 5 toward step9 (deep scale, span 23.5 L*) at t=0.75. The value here is a placeholder anchor only; the preprocessor overwrites it. Lands at L* 50.01, C 0.173.",
|
|
165
|
+
"$extensions": {
|
|
166
|
+
"com.nebutra.derive": {
|
|
167
|
+
"space": "oklab",
|
|
168
|
+
"tier": "border"
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
},
|
|
172
|
+
"9": {
|
|
173
|
+
"$value": "#396ae2",
|
|
174
|
+
"$type": "color",
|
|
175
|
+
"$description": "solid fill — L* 55.92, C 0.191, hue 264.3. White label 4.85:1. Same value as the dark shadcn --primary, so light and dark both take their deep fill from one source. Chroma ceiling for dark is 0.190; this is 0.191."
|
|
176
|
+
},
|
|
177
|
+
"10": {
|
|
178
|
+
"$value": "#3f70e3",
|
|
179
|
+
"$type": "color",
|
|
180
|
+
"$description": "solid fill hover — L* 57.44, C 0.183. White label 4.53:1. The hover has to move UP in a dark ramp, which costs contrast, so the step is deliberately small (1.52 L*) to keep white above 4.5:1."
|
|
181
|
+
},
|
|
182
|
+
"11": {
|
|
183
|
+
"$value": "#89aaee",
|
|
184
|
+
"$type": "color",
|
|
185
|
+
"$description": "secondary text — L* 74.01, C 0.106. 8.62:1 on step 1."
|
|
186
|
+
},
|
|
187
|
+
"12": {
|
|
188
|
+
"$value": "#d2e0fd",
|
|
189
|
+
"$type": "color",
|
|
190
|
+
"$description": "primary text — L* 90.52, C 0.043. 15.08:1 on step 1."
|
|
191
|
+
},
|
|
192
|
+
"contrast": {
|
|
193
|
+
"$value": "#ffffff",
|
|
194
|
+
"$type": "color",
|
|
195
|
+
"$description": "Label ink for the solid fill tier. Absolute value, identical in both modes. 4.85:1 on step 9, 4.53:1 on step 10."
|
|
196
|
+
}
|
|
66
197
|
},
|
|
67
198
|
"cyan": {
|
|
68
|
-
"1": {
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
"
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
"
|
|
79
|
-
|
|
199
|
+
"1": {
|
|
200
|
+
"$value": "#04100c",
|
|
201
|
+
"$type": "color",
|
|
202
|
+
"$description": "app tint — L* 15.90, C 0.021, hue 172."
|
|
203
|
+
},
|
|
204
|
+
"2": {
|
|
205
|
+
"$value": "#091e18",
|
|
206
|
+
"$type": "color",
|
|
207
|
+
"$description": "subtle background — L* 21.54, C 0.030."
|
|
208
|
+
},
|
|
209
|
+
"3": {
|
|
210
|
+
"$value": "#0f2e25",
|
|
211
|
+
"$type": "color",
|
|
212
|
+
"$description": "component background default — L* 27.46, C 0.041."
|
|
213
|
+
},
|
|
214
|
+
"4": {
|
|
215
|
+
"$value": "#1c4035",
|
|
216
|
+
"$type": "color",
|
|
217
|
+
"$description": "component background hover — L* 34.10, C 0.046."
|
|
218
|
+
},
|
|
219
|
+
"5": {
|
|
220
|
+
"$value": "#2b5347",
|
|
221
|
+
"$type": "color",
|
|
222
|
+
"$description": "component background active — L* 40.88, C 0.050. Anchor for the derived border tier."
|
|
223
|
+
},
|
|
224
|
+
"6": {
|
|
225
|
+
"$value": "{scale.cyan.5}",
|
|
226
|
+
"$type": "color",
|
|
227
|
+
"$description": "subtle border — DERIVED at build time (scripts/derive-border-tier.mjs): OKLab lerp of step 5 toward step9 (span 44.5 L*) at t=0.25. The value here is a placeholder anchor only; the preprocessor overwrites it. Lands at L* 52.12, C 0.079.",
|
|
228
|
+
"$extensions": {
|
|
229
|
+
"com.nebutra.derive": {
|
|
230
|
+
"space": "oklab",
|
|
231
|
+
"tier": "border"
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
},
|
|
235
|
+
"7": {
|
|
236
|
+
"$value": "{scale.cyan.5}",
|
|
237
|
+
"$type": "color",
|
|
238
|
+
"$description": "default border — DERIVED at build time (scripts/derive-border-tier.mjs): OKLab lerp of step 5 toward step9 (span 44.5 L*) at t=0.50. The value here is a placeholder anchor only; the preprocessor overwrites it. Lands at L* 63.04, C 0.107.",
|
|
239
|
+
"$extensions": {
|
|
240
|
+
"com.nebutra.derive": {
|
|
241
|
+
"space": "oklab",
|
|
242
|
+
"tier": "border"
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
},
|
|
246
|
+
"8": {
|
|
247
|
+
"$value": "{scale.cyan.5}",
|
|
248
|
+
"$type": "color",
|
|
249
|
+
"$description": "hovered border — DERIVED at build time (scripts/derive-border-tier.mjs): OKLab lerp of step 5 toward step9 (span 44.5 L*) at t=0.75. The value here is a placeholder anchor only; the preprocessor overwrites it. Lands at L* 74.30, C 0.136.",
|
|
250
|
+
"$extensions": {
|
|
251
|
+
"com.nebutra.derive": {
|
|
252
|
+
"space": "oklab",
|
|
253
|
+
"tier": "border"
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
},
|
|
257
|
+
"9": {
|
|
258
|
+
"$value": "#0bf1c3",
|
|
259
|
+
"$type": "color",
|
|
260
|
+
"$description": "solid fill — same bright value as light mode, the way Radix ships one hex for mint-9 in both modes: L* 85.41, C 0.164. Ink 10.35:1 against --cyan-contrast."
|
|
261
|
+
},
|
|
262
|
+
"10": {
|
|
263
|
+
"$value": "#5af8ce",
|
|
264
|
+
"$type": "color",
|
|
265
|
+
"$description": "solid fill hover — L* 88.53, C 0.145, 3.12 L* above step 9 (Radix mint dark moves up 4.60 L*). Ink 11.34:1."
|
|
266
|
+
},
|
|
267
|
+
"11": {
|
|
268
|
+
"$value": "#90fbdb",
|
|
269
|
+
"$type": "color",
|
|
270
|
+
"$description": "secondary text — L* 91.46, C 0.110. 15.68:1 on step 1."
|
|
271
|
+
},
|
|
272
|
+
"12": {
|
|
273
|
+
"$value": "#bdfde8",
|
|
274
|
+
"$type": "color",
|
|
275
|
+
"$description": "primary text — L* 94.54, C 0.070. 16.95:1 on step 1."
|
|
276
|
+
},
|
|
277
|
+
"contrast": {
|
|
278
|
+
"$value": "#0d2b25",
|
|
279
|
+
"$type": "color",
|
|
280
|
+
"$description": "Label ink for the bright fill tier. Absolute near-black, identical in both modes. 10.35:1 on step 9, 11.34:1 on step 10."
|
|
281
|
+
}
|
|
80
282
|
}
|
|
81
283
|
},
|
|
82
284
|
"shadcn": {
|
|
83
|
-
"background": {
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
"
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
"
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
"
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
"
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
"
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
285
|
+
"background": {
|
|
286
|
+
"$value": "222 14% 9%",
|
|
287
|
+
"$type": "string"
|
|
288
|
+
},
|
|
289
|
+
"foreground": {
|
|
290
|
+
"$value": "210 18% 96%",
|
|
291
|
+
"$type": "string"
|
|
292
|
+
},
|
|
293
|
+
"card": {
|
|
294
|
+
"$value": "222 12% 13%",
|
|
295
|
+
"$type": "string"
|
|
296
|
+
},
|
|
297
|
+
"card-foreground": {
|
|
298
|
+
"$value": "210 18% 96%",
|
|
299
|
+
"$type": "string"
|
|
300
|
+
},
|
|
301
|
+
"popover": {
|
|
302
|
+
"$value": "222 12% 13%",
|
|
303
|
+
"$type": "string"
|
|
304
|
+
},
|
|
305
|
+
"popover-foreground": {
|
|
306
|
+
"$value": "210 18% 96%",
|
|
307
|
+
"$type": "string"
|
|
308
|
+
},
|
|
309
|
+
"primary": {
|
|
310
|
+
"$value": "222.6 74.4% 55.5%",
|
|
311
|
+
"$type": "string",
|
|
312
|
+
"$description": "Dark-mode action blue, paired with the near-black --primary-foreground, not white. #396ae2 keeps the VI hue and sits at L*55.9 C0.191."
|
|
313
|
+
},
|
|
314
|
+
"primary-foreground": {
|
|
315
|
+
"$value": "0 0% 100%",
|
|
316
|
+
"$type": "string",
|
|
317
|
+
"$description": "White, matching light mode and matching --blue-contrast. It was near-black (222 14% 9%) when --primary was a LIGHT fill at L* 68.3, where dark ink read 6.20:1. Once --primary became a deep fill at L* 55.9 the pairing inverted and measured 3.74:1, below AA — the fill moved and the ink did not. The deep-fill tier takes white in both modes; --blue-contrast says the same thing, and they must agree because --primary and --blue-9 are now the same value."
|
|
318
|
+
},
|
|
319
|
+
"secondary": {
|
|
320
|
+
"$value": "222 10% 18%",
|
|
321
|
+
"$type": "string"
|
|
322
|
+
},
|
|
323
|
+
"secondary-foreground": {
|
|
324
|
+
"$value": "210 18% 96%",
|
|
325
|
+
"$type": "string"
|
|
326
|
+
},
|
|
327
|
+
"muted": {
|
|
328
|
+
"$value": "222 10% 17%",
|
|
329
|
+
"$type": "string"
|
|
330
|
+
},
|
|
331
|
+
"muted-foreground": {
|
|
332
|
+
"$value": "220 8% 65%",
|
|
333
|
+
"$type": "string"
|
|
334
|
+
},
|
|
335
|
+
"accent": {
|
|
336
|
+
"$value": "228 38% 22%",
|
|
337
|
+
"$type": "string"
|
|
338
|
+
},
|
|
339
|
+
"accent-foreground": {
|
|
340
|
+
"$value": "228 95% 80%",
|
|
341
|
+
"$type": "string"
|
|
342
|
+
},
|
|
343
|
+
"destructive": {
|
|
344
|
+
"$value": "0 63% 38%",
|
|
345
|
+
"$type": "string"
|
|
346
|
+
},
|
|
347
|
+
"destructive-foreground": {
|
|
348
|
+
"$value": "210 18% 96%",
|
|
349
|
+
"$type": "string"
|
|
350
|
+
},
|
|
351
|
+
"destructive-strong": {
|
|
352
|
+
"$value": "0 80% 66%",
|
|
353
|
+
"$type": "string",
|
|
354
|
+
"$description": "Red as FOREGROUND on a dark surface. --destructive (0 63% 38%) is 2.15:1 on --card here — a fill only. Lightened to 5.18:1 on --card / 5.61:1 on --neutral-1, which sits alongside the light-mode 5.42:1 so red reads with the same weight in both themes. Use --destructive for fills with --destructive-foreground on top; use this for red text and icons."
|
|
355
|
+
},
|
|
356
|
+
"success": {
|
|
357
|
+
"$value": "142 60% 42%",
|
|
358
|
+
"$type": "string"
|
|
359
|
+
},
|
|
360
|
+
"success-foreground": {
|
|
361
|
+
"$value": "222 14% 9%",
|
|
362
|
+
"$type": "string"
|
|
363
|
+
},
|
|
364
|
+
"success-strong": {
|
|
365
|
+
"$value": "142 60% 42%",
|
|
366
|
+
"$type": "string",
|
|
367
|
+
"$description": "Green as foreground on a dark surface. Needs no adjustment — 142 60% 42% is already 4.83:1 as ink on its own 10% tint — so it deliberately equals --success, matching how --warning-strong behaves in this theme."
|
|
368
|
+
},
|
|
369
|
+
"warning": {
|
|
370
|
+
"$value": "38 80% 52%",
|
|
371
|
+
"$type": "string"
|
|
372
|
+
},
|
|
373
|
+
"warning-foreground": {
|
|
374
|
+
"$value": "222 14% 9%",
|
|
375
|
+
"$type": "string"
|
|
376
|
+
},
|
|
377
|
+
"warning-strong": {
|
|
378
|
+
"$value": "38 80% 52%",
|
|
379
|
+
"$type": "string",
|
|
380
|
+
"$description": "Amber as foreground on a dark surface. Unlike light mode this needs no adjustment — 38 80% 52% is already 7.98:1 against --neutral-1 — so it deliberately equals --warning. The token exists in both themes so consumers can reference one name."
|
|
381
|
+
},
|
|
382
|
+
"info": {
|
|
383
|
+
"$value": "228 95% 72%",
|
|
384
|
+
"$type": "string"
|
|
385
|
+
},
|
|
386
|
+
"info-foreground": {
|
|
387
|
+
"$value": "222 14% 9%",
|
|
388
|
+
"$type": "string"
|
|
389
|
+
},
|
|
390
|
+
"border": {
|
|
391
|
+
"$value": "220 8% 22%",
|
|
392
|
+
"$type": "string"
|
|
393
|
+
},
|
|
394
|
+
"input": {
|
|
395
|
+
"$value": "220 8% 22%",
|
|
396
|
+
"$type": "string"
|
|
397
|
+
},
|
|
107
398
|
"ring": {
|
|
108
399
|
"$value": "0 0% 88%",
|
|
109
400
|
"$type": "string",
|
|
110
401
|
"$description": "Focus ring (dark mode) — neutral light gray. Mirrors light-mode neutral foreground choice."
|
|
111
402
|
},
|
|
112
|
-
"sidebar": {
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
"sidebar-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
"
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
"
|
|
403
|
+
"sidebar": {
|
|
404
|
+
"$value": "222 16% 8%",
|
|
405
|
+
"$type": "string"
|
|
406
|
+
},
|
|
407
|
+
"sidebar-foreground": {
|
|
408
|
+
"$value": "210 18% 94%",
|
|
409
|
+
"$type": "string"
|
|
410
|
+
},
|
|
411
|
+
"sidebar-primary": {
|
|
412
|
+
"$value": "228 95% 72%",
|
|
413
|
+
"$type": "string"
|
|
414
|
+
},
|
|
415
|
+
"sidebar-primary-foreground": {
|
|
416
|
+
"$value": "222 14% 9%",
|
|
417
|
+
"$type": "string"
|
|
418
|
+
},
|
|
419
|
+
"sidebar-accent": {
|
|
420
|
+
"$value": "228 38% 22%",
|
|
421
|
+
"$type": "string"
|
|
422
|
+
},
|
|
423
|
+
"sidebar-accent-foreground": {
|
|
424
|
+
"$value": "228 95% 80%",
|
|
425
|
+
"$type": "string"
|
|
426
|
+
},
|
|
427
|
+
"sidebar-border": {
|
|
428
|
+
"$value": "220 8% 18%",
|
|
429
|
+
"$type": "string"
|
|
430
|
+
},
|
|
431
|
+
"sidebar-ring": {
|
|
432
|
+
"$value": "228 95% 72%",
|
|
433
|
+
"$type": "string"
|
|
434
|
+
},
|
|
435
|
+
"chart-1": {
|
|
436
|
+
"$value": "228 95% 67%",
|
|
437
|
+
"$type": "string"
|
|
438
|
+
},
|
|
439
|
+
"chart-2": {
|
|
440
|
+
"$value": "168 96% 54%",
|
|
441
|
+
"$type": "string"
|
|
442
|
+
},
|
|
443
|
+
"chart-3": {
|
|
444
|
+
"$value": "228 100% 82%",
|
|
445
|
+
"$type": "string"
|
|
446
|
+
},
|
|
447
|
+
"chart-4": {
|
|
448
|
+
"$value": "168 100% 75%",
|
|
449
|
+
"$type": "string"
|
|
450
|
+
},
|
|
451
|
+
"chart-5": {
|
|
452
|
+
"$value": "228 100% 50%",
|
|
453
|
+
"$type": "string"
|
|
454
|
+
}
|
|
125
455
|
},
|
|
126
456
|
"ds": {
|
|
127
|
-
"blue-200": {
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
"
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
"
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
"
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
"
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
"
|
|
457
|
+
"blue-200": {
|
|
458
|
+
"$value": "oklch(25.45% 0.0811 255.8)",
|
|
459
|
+
"$type": "color"
|
|
460
|
+
},
|
|
461
|
+
"blue-700": {
|
|
462
|
+
"$value": "oklch(57.61% 0.2321 258.23)",
|
|
463
|
+
"$type": "color"
|
|
464
|
+
},
|
|
465
|
+
"blue-900": {
|
|
466
|
+
"$value": "oklch(71.7% 0.1648 250.79360374054167)",
|
|
467
|
+
"$type": "color"
|
|
468
|
+
},
|
|
469
|
+
"red-200": {
|
|
470
|
+
"$value": "oklch(25.93% 0.0834 19.02)",
|
|
471
|
+
"$type": "color"
|
|
472
|
+
},
|
|
473
|
+
"red-700": {
|
|
474
|
+
"$value": "oklch(62.56% 0.2234 23.03)",
|
|
475
|
+
"$type": "color"
|
|
476
|
+
},
|
|
477
|
+
"red-900": {
|
|
478
|
+
"$value": "oklch(69.96% 0.2136 22.03)",
|
|
479
|
+
"$type": "color"
|
|
480
|
+
},
|
|
481
|
+
"amber-200": {
|
|
482
|
+
"$value": "oklch(24.95% 0.0642 64.78)",
|
|
483
|
+
"$type": "color"
|
|
484
|
+
},
|
|
485
|
+
"amber-700": {
|
|
486
|
+
"$value": "oklch(81.87% 0.1969 76.46)",
|
|
487
|
+
"$type": "color"
|
|
488
|
+
},
|
|
489
|
+
"amber-900": {
|
|
490
|
+
"$value": "oklch(77.21% 0.1991 64.28)",
|
|
491
|
+
"$type": "color"
|
|
492
|
+
},
|
|
493
|
+
"green-200": {
|
|
494
|
+
"$value": "oklch(27.12% 0.0895 150.09)",
|
|
495
|
+
"$type": "color"
|
|
496
|
+
},
|
|
497
|
+
"green-700": {
|
|
498
|
+
"$value": "oklch(64.58% 0.199 147.27)",
|
|
499
|
+
"$type": "color"
|
|
500
|
+
},
|
|
501
|
+
"green-900": {
|
|
502
|
+
"$value": "oklch(73.1% 0.2158 148.29)",
|
|
503
|
+
"$type": "color"
|
|
504
|
+
},
|
|
505
|
+
"teal-300": {
|
|
506
|
+
"$value": "oklch(31.5% 0.0767 180.99)",
|
|
507
|
+
"$type": "color"
|
|
508
|
+
},
|
|
509
|
+
"teal-700": {
|
|
510
|
+
"$value": "oklch(64.92% 0.1403 181.95)",
|
|
511
|
+
"$type": "color"
|
|
512
|
+
},
|
|
513
|
+
"teal-900": {
|
|
514
|
+
"$value": "oklch(74.56% 0.1765 182.8)",
|
|
515
|
+
"$type": "color"
|
|
516
|
+
},
|
|
517
|
+
"purple-200": {
|
|
518
|
+
"$value": "oklch(25.91% 0.0921 314.41)",
|
|
519
|
+
"$type": "color"
|
|
520
|
+
},
|
|
521
|
+
"purple-700": {
|
|
522
|
+
"$value": "oklch(55.5% 0.2186 306.12)",
|
|
523
|
+
"$type": "color"
|
|
524
|
+
},
|
|
525
|
+
"purple-900": {
|
|
526
|
+
"$value": "oklch(69.87% 0.2037 309.51)",
|
|
527
|
+
"$type": "color"
|
|
528
|
+
},
|
|
529
|
+
"pink-300": {
|
|
530
|
+
"$value": "oklch(31.15% 0.1067 355.93)",
|
|
531
|
+
"$type": "color"
|
|
532
|
+
},
|
|
533
|
+
"pink-700": {
|
|
534
|
+
"$value": "oklch(63.52% 0.2346 1.01)",
|
|
535
|
+
"$type": "color"
|
|
536
|
+
},
|
|
537
|
+
"pink-900": {
|
|
538
|
+
"$value": "oklch(69.36% 0.2223 3.91)",
|
|
539
|
+
"$type": "color"
|
|
540
|
+
},
|
|
148
541
|
"gray-100": {
|
|
149
542
|
"$value": "hsla(0, 0%, 10%, 1)",
|
|
150
543
|
"$type": "color",
|
|
151
|
-
"$extensions": {
|
|
544
|
+
"$extensions": {
|
|
545
|
+
"com.nebutra.oklch": "oklch(0.232 0 0)"
|
|
546
|
+
}
|
|
152
547
|
},
|
|
153
548
|
"gray-200": {
|
|
154
549
|
"$value": "hsla(0, 0%, 12%, 1)",
|
|
155
550
|
"$type": "color",
|
|
156
|
-
"$extensions": {
|
|
551
|
+
"$extensions": {
|
|
552
|
+
"com.nebutra.oklch": "oklch(0.259 0 0)"
|
|
553
|
+
}
|
|
157
554
|
},
|
|
158
555
|
"gray-500": {
|
|
159
556
|
"$value": "hsla(0, 0%, 27%, 1)",
|
|
160
557
|
"$type": "color",
|
|
161
|
-
"$extensions": {
|
|
558
|
+
"$extensions": {
|
|
559
|
+
"com.nebutra.oklch": "oklch(0.409 0 0)"
|
|
560
|
+
}
|
|
162
561
|
},
|
|
163
562
|
"gray-600": {
|
|
164
563
|
"$value": "hsla(0, 0%, 53%, 1)",
|
|
165
564
|
"$type": "color",
|
|
166
|
-
"$extensions": {
|
|
565
|
+
"$extensions": {
|
|
566
|
+
"com.nebutra.oklch": "oklch(0.59 0 0)"
|
|
567
|
+
}
|
|
167
568
|
},
|
|
168
569
|
"gray-700": {
|
|
169
570
|
"$value": "hsla(0, 0%, 56%, 1)",
|
|
170
571
|
"$type": "color",
|
|
171
|
-
"$extensions": {
|
|
572
|
+
"$extensions": {
|
|
573
|
+
"com.nebutra.oklch": "oklch(0.598 0 0)"
|
|
574
|
+
}
|
|
172
575
|
},
|
|
173
576
|
"gray-1000": {
|
|
174
577
|
"$value": "hsla(0, 0%, 93%, 1)",
|
|
175
578
|
"$type": "color",
|
|
176
|
-
"$extensions": {
|
|
579
|
+
"$extensions": {
|
|
580
|
+
"com.nebutra.oklch": "oklch(0.94 0 0)"
|
|
581
|
+
}
|
|
177
582
|
},
|
|
178
583
|
"background-100": {
|
|
179
584
|
"$value": "hsla(0, 0%, 4%, 1)",
|
|
180
585
|
"$type": "color",
|
|
181
|
-
"$extensions": {
|
|
586
|
+
"$extensions": {
|
|
587
|
+
"com.nebutra.oklch": "oklch(0.143 0 0)"
|
|
588
|
+
}
|
|
589
|
+
},
|
|
590
|
+
"trial-start": {
|
|
591
|
+
"$value": "rgb(0, 112, 243)",
|
|
592
|
+
"$type": "color"
|
|
182
593
|
},
|
|
183
|
-
"trial-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
594
|
+
"trial-end": {
|
|
595
|
+
"$value": "rgb(248, 28, 229)",
|
|
596
|
+
"$type": "color"
|
|
597
|
+
},
|
|
598
|
+
"turbo-start": {
|
|
599
|
+
"$value": "#ff1e56",
|
|
600
|
+
"$type": "color"
|
|
601
|
+
},
|
|
602
|
+
"turbo-end": {
|
|
603
|
+
"$value": "#0096ff",
|
|
604
|
+
"$type": "color"
|
|
605
|
+
}
|
|
187
606
|
},
|
|
188
607
|
"elevation": {
|
|
189
|
-
"xs": {
|
|
608
|
+
"xs": {
|
|
609
|
+
"$value": "0 1px 2px 0 rgb(0 0 0 / 0.3)",
|
|
610
|
+
"$type": "shadow"
|
|
611
|
+
},
|
|
190
612
|
"sm": {
|
|
191
613
|
"$value": "0 1px 3px 0 rgb(0 0 0 / 0.4), 0 1px 2px -1px rgb(0 0 0 / 0.4)",
|
|
192
614
|
"$type": "shadow"
|
|
@@ -203,7 +625,10 @@
|
|
|
203
625
|
"$value": "0 20px 25px -5px rgb(0 0 0 / 0.6), 0 8px 10px -6px rgb(0 0 0 / 0.6)",
|
|
204
626
|
"$type": "shadow"
|
|
205
627
|
},
|
|
206
|
-
"2xl": {
|
|
628
|
+
"2xl": {
|
|
629
|
+
"$value": "0 25px 50px -12px rgb(0 0 0 / 0.8)",
|
|
630
|
+
"$type": "shadow"
|
|
631
|
+
},
|
|
207
632
|
"brand": {
|
|
208
633
|
"$value": "0 0 0 1px rgb(92 124 250 / 0.25), 0 4px 20px -2px rgb(92 124 250 / 0.3)",
|
|
209
634
|
"$type": "shadow"
|
|
@@ -211,6 +636,66 @@
|
|
|
211
636
|
"brand-lg": {
|
|
212
637
|
"$value": "0 0 0 1px rgb(92 124 250 / 0.3), 0 8px 40px -4px rgb(92 124 250 / 0.4)",
|
|
213
638
|
"$type": "shadow"
|
|
639
|
+
},
|
|
640
|
+
"ambient-sm": {
|
|
641
|
+
"$value": "0 1px 2px -1px rgb(0 0 0 / 0.4), 0 6px 16px -6px rgb(0 0 0 / 0.5)",
|
|
642
|
+
"$type": "shadow",
|
|
643
|
+
"$description": "Ambient elevation, small. Contact layer plus a wide soft pool — the marketing-surface counterpart to the tight xs..2xl product ramp."
|
|
644
|
+
},
|
|
645
|
+
"ambient-md": {
|
|
646
|
+
"$value": "0 2px 4px -2px rgb(0 0 0 / 0.4), 0 12px 32px -10px rgb(0 0 0 / 0.55)",
|
|
647
|
+
"$type": "shadow",
|
|
648
|
+
"$description": "Ambient elevation, medium. Default resting depth for a floating marketing card."
|
|
649
|
+
},
|
|
650
|
+
"ambient-lg": {
|
|
651
|
+
"$value": "0 4px 8px -4px rgb(0 0 0 / 0.4), 0 24px 56px -18px rgb(0 0 0 / 0.6)",
|
|
652
|
+
"$type": "shadow",
|
|
653
|
+
"$description": "Ambient elevation, large. One step up from md; use for hover of a md surface, not as a resting default."
|
|
654
|
+
},
|
|
655
|
+
"glass-sm": {
|
|
656
|
+
"$value": "inset 0 1px 0 rgb(255 255 255 / 0.08), 0 1px 2px -1px rgb(0 0 0 / 0.4), 0 6px 16px -6px rgb(0 0 0 / 0.5)",
|
|
657
|
+
"$type": "shadow",
|
|
658
|
+
"$description": "Ambient-sm plus a lit top edge, for translucent panels over a blurred backdrop."
|
|
659
|
+
},
|
|
660
|
+
"glass-md": {
|
|
661
|
+
"$value": "inset 0 1px 0 rgb(255 255 255 / 0.08), 0 2px 4px -2px rgb(0 0 0 / 0.4), 0 12px 32px -10px rgb(0 0 0 / 0.55)",
|
|
662
|
+
"$type": "shadow",
|
|
663
|
+
"$description": "Ambient-md plus a lit top edge."
|
|
664
|
+
},
|
|
665
|
+
"glass-lg": {
|
|
666
|
+
"$value": "inset 0 1px 0 rgb(255 255 255 / 0.08), 0 4px 8px -4px rgb(0 0 0 / 0.4), 0 24px 56px -18px rgb(0 0 0 / 0.6)",
|
|
667
|
+
"$type": "shadow",
|
|
668
|
+
"$description": "Ambient-lg plus a lit top edge."
|
|
669
|
+
},
|
|
670
|
+
"sheen": {
|
|
671
|
+
"$value": "inset 0 1px 0 rgb(0 0 0 / 0.12)",
|
|
672
|
+
"$type": "shadow",
|
|
673
|
+
"$description": "Top-edge sheen for solid inverted fills (bg-foreground). Lifts with light on a dark fill, with shade on a light one."
|
|
674
|
+
},
|
|
675
|
+
"ambient-glow": {
|
|
676
|
+
"$value": "0 0 80px rgb(255 255 255 / 0.06)",
|
|
677
|
+
"$type": "shadow",
|
|
678
|
+
"$description": "Centred offsetless halo — the only non-directional step on the ramp. Inverted from the light value: a black halo has nothing to darken against a dark surround, so the halo becomes light. Keep the alpha low; this is separation, not a bloom."
|
|
679
|
+
},
|
|
680
|
+
"glow-accent": {
|
|
681
|
+
"$value": "0 8px 32px rgb(0 0 0 / 0.4), 0 0 60px color-mix(in srgb, var(--brand-accent) 8%, transparent)",
|
|
682
|
+
"$type": "shadow",
|
|
683
|
+
"$description": "Identical to the light value by design. The pool is theme-invariant black because glow-accent surfaces are fixed dark glass in both themes; only the accent halo shifts, via --brand-accent."
|
|
684
|
+
},
|
|
685
|
+
"glow-accent-lg": {
|
|
686
|
+
"$value": "0 12px 48px rgb(0 0 0 / 0.5), 0 0 80px color-mix(in srgb, var(--brand-accent) 12%, transparent)",
|
|
687
|
+
"$type": "shadow",
|
|
688
|
+
"$description": "Hover escalation of glow-accent. Identical to the light value by design."
|
|
689
|
+
},
|
|
690
|
+
"glow-accent-sm": {
|
|
691
|
+
"$value": "0 0 20px color-mix(in srgb, var(--brand-accent) 10%, transparent)",
|
|
692
|
+
"$type": "shadow",
|
|
693
|
+
"$description": "Accent halo alone, no pool. Identical to the light value by design."
|
|
694
|
+
},
|
|
695
|
+
"glow-primary": {
|
|
696
|
+
"$value": "0 20px 25px -5px hsl(var(--primary) / 0.05), 0 8px 10px -6px hsl(var(--primary) / 0.05)",
|
|
697
|
+
"$type": "shadow",
|
|
698
|
+
"$description": "xl geometry tinted with the action fill at 5 percent. Same reference as light; --primary carries the dark channels."
|
|
214
699
|
}
|
|
215
700
|
}
|
|
216
701
|
}
|