@uncinq/design-tokens 0.4.0 → 1.0.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/README.md +122 -53
- package/dist/css/primitive/blur.css +14 -0
- package/{tokens → dist/css}/primitive/color.css +53 -96
- package/dist/css/primitive/font.css +29 -0
- package/dist/css/primitive/shadow.css +16 -0
- package/{tokens → dist/css}/primitive/size.css +14 -17
- package/{tokens → dist/css}/primitive.css +0 -1
- package/{tokens → dist/css}/semantic/blur.css +4 -0
- package/dist/css/semantic/border.css +14 -0
- package/dist/css/semantic/color.css +99 -0
- package/dist/css/semantic/focus.css +13 -0
- package/dist/css/semantic/form.css +109 -0
- package/dist/css/semantic/grid.css +15 -0
- package/dist/css/semantic/icon.css +21 -0
- package/dist/css/semantic/motion.css +29 -0
- package/dist/css/semantic/opacity.css +15 -0
- package/dist/css/semantic/radius.css +20 -0
- package/dist/css/semantic/ratio.css +18 -0
- package/dist/css/semantic/shadow.css +12 -0
- package/dist/css/semantic/size.css +14 -0
- package/dist/css/semantic/spacing.css +30 -0
- package/dist/css/semantic/typography.css +48 -0
- package/dist/css/semantic/z-index.css +18 -0
- package/{tokens → dist/css}/semantic.css +0 -2
- package/package.json +22 -11
- package/tokens/primitive/blur.json +24 -0
- package/tokens/primitive/color.json +259 -0
- package/tokens/primitive/font.json +93 -0
- package/tokens/primitive/shadow.json +113 -0
- package/tokens/primitive/size.json +196 -0
- package/tokens/semantic/blur.json +8 -0
- package/tokens/semantic/border.json +28 -0
- package/tokens/semantic/color.json +343 -0
- package/tokens/semantic/focus.json +22 -0
- package/tokens/semantic/form.json +550 -0
- package/tokens/semantic/grid.json +28 -0
- package/tokens/semantic/icon.json +52 -0
- package/tokens/semantic/motion.json +90 -0
- package/tokens/semantic/opacity.json +28 -0
- package/tokens/semantic/radius.json +48 -0
- package/tokens/semantic/ratio.json +40 -0
- package/tokens/semantic/shadow.json +18 -0
- package/tokens/semantic/size.json +24 -0
- package/tokens/semantic/spacing.json +90 -0
- package/tokens/semantic/typography.json +174 -0
- package/tokens/semantic/z-index.json +40 -0
- package/tokens/primitive/blur.css +0 -10
- package/tokens/primitive/font.css +0 -32
- package/tokens/primitive/opacity.css +0 -12
- package/tokens/primitive/shadow.css +0 -16
- package/tokens/semantic/border.css +0 -15
- package/tokens/semantic/color.css +0 -119
- package/tokens/semantic/dark.css +0 -48
- package/tokens/semantic/focus.css +0 -10
- package/tokens/semantic/form.css +0 -107
- package/tokens/semantic/grid.css +0 -39
- package/tokens/semantic/icon.css +0 -19
- package/tokens/semantic/motion.css +0 -46
- package/tokens/semantic/opacity.css +0 -10
- package/tokens/semantic/radius.css +0 -19
- package/tokens/semantic/ratio.css +0 -23
- package/tokens/semantic/shadow.css +0 -14
- package/tokens/semantic/size.css +0 -20
- package/tokens/semantic/spacing.css +0 -42
- package/tokens/semantic/typography.css +0 -78
- package/tokens/semantic/z-index.css +0 -14
- /package/{tokens → dist/css}/index.css +0 -0
- /package/{tokens → dist/css}/semantic/mediaqueries.css +0 -0
package/README.md
CHANGED
|
@@ -49,15 +49,17 @@ Scoped to a specific component. Generic component tokens are provided by [@uncin
|
|
|
49
49
|
|
|
50
50
|
```css
|
|
51
51
|
--alert-border-radius: var(--radius-none);
|
|
52
|
-
--btn-padding-
|
|
53
|
-
--btn-padding-
|
|
52
|
+
--btn-padding-inline: var(--spacing-control);
|
|
53
|
+
--btn-padding-block: var(--spacing-control);
|
|
54
54
|
```
|
|
55
55
|
|
|
56
56
|
---
|
|
57
57
|
|
|
58
58
|
## Naming convention
|
|
59
59
|
|
|
60
|
-
|
|
60
|
+
### Semantic tokens
|
|
61
|
+
|
|
62
|
+
Global semantic tokens follow: `--{category}-{subcategory?}-{variant}-{state?}`
|
|
61
63
|
|
|
62
64
|
```
|
|
63
65
|
--{category} --color
|
|
@@ -66,14 +68,36 @@ All tokens follow the pattern: `--{category}-{subcategory?}-{variant}-{state?}`
|
|
|
66
68
|
-{state} --color-text-disabled
|
|
67
69
|
```
|
|
68
70
|
|
|
71
|
+
### Component tokens
|
|
72
|
+
|
|
73
|
+
Component tokens follow: `--{component}-{property}-{sub-property?}-{state?}`
|
|
74
|
+
|
|
75
|
+
The property mirrors the CSS property name — `background-color`, `border-color`, `text-decoration-color` — so the token reads the same way as the CSS declaration it controls.
|
|
76
|
+
|
|
77
|
+
```
|
|
78
|
+
--{component} --btn
|
|
79
|
+
-{property} --btn-background-color
|
|
80
|
+
-{sub-property} --btn-text-decoration-color (text-decoration + color)
|
|
81
|
+
-{state} --btn-background-color-hover
|
|
82
|
+
```
|
|
83
|
+
|
|
69
84
|
### Rules
|
|
70
85
|
|
|
71
86
|
- **Lowercase kebab-case** — always
|
|
72
87
|
- **No component names** in primitive or semantic tokens (`--button-*` belongs in component tokens, not here)
|
|
73
88
|
- **Semantic tokens are named by intent** — they may reference a primitive via `var()` or carry a raw value when the value itself has design intent (e.g. `--z-index-modal: 400`, `--radius-pill: 9999px`)
|
|
89
|
+
- **`color-[role]` for all color tokens** — `color` is the category prefix, the UI role follows: `color-background`, `color-border`, `color-text`, `color-accent`, `color-placeholder`. This groups all color tokens alphabetically under `color-*` and mirrors the structure of global semantic tokens (`--color-background` → `--btn-color-background`). `background` is never abbreviated: `color-background` not `color-bg`.
|
|
74
90
|
- **States at the end** — `-hover`, `-focus`, `-active`, `-disabled`, `-checked`
|
|
75
|
-
-
|
|
76
|
-
|
|
91
|
+
- **Alphabetical order** — tokens within a file are sorted alphabetically within each group; group related tokens with a comment when the file has many entries:
|
|
92
|
+
|
|
93
|
+
| Token | Role | CSS property |
|
|
94
|
+
| --- | --- | --- |
|
|
95
|
+
| `--btn-color-background` | background | `background-color` |
|
|
96
|
+
| `--btn-color-border` | border | `border-color` |
|
|
97
|
+
| `--btn-color-text` | text | `color` |
|
|
98
|
+
| `--btn-color-text-decoration` | text-decoration | `text-decoration-color` |
|
|
99
|
+
| `--form-color-accent` | accent | `color` |
|
|
100
|
+
| `--input-color-placeholder` | placeholder | `color` |
|
|
77
101
|
|
|
78
102
|
```css
|
|
79
103
|
/* Brand */
|
|
@@ -99,17 +123,17 @@ All tokens follow the pattern: `--{category}-{subcategory?}-{variant}-{state?}`
|
|
|
99
123
|
|
|
100
124
|
| Category | Covers | Example tokens |
|
|
101
125
|
| --- | --- | --- |
|
|
102
|
-
| `color` | All color values | `--color-brand`, `--color-
|
|
126
|
+
| `color` | All color values | `--color-brand`, `--color-background-muted`, `--color-text-on-dark` |
|
|
103
127
|
| `font-family` | Typefaces | `--font-family-sans`, `--font-family-heading` |
|
|
104
128
|
| `font-size` | Text sizes | `--font-size-sm`, `--font-size-heading-01` |
|
|
105
129
|
| `font-weight` | Weight values | `--font-weight-bold`, `--font-weight-heading` |
|
|
106
130
|
| `line-height` | Line heights | `--line-height-tight`, `--line-height-heading` |
|
|
107
|
-
| `letter-spacing` | Tracking | `--letter-spacing-
|
|
108
|
-
| `text-decoration` | Decoration props | `--text-decoration-
|
|
131
|
+
| `letter-spacing` | Tracking | `--letter-spacing-none`, `--letter-spacing-md` |
|
|
132
|
+
| `text-decoration` | Decoration props | `--text-decoration-offset` |
|
|
109
133
|
| `spacing` | Margin / padding | `--spacing-md`, `--spacing-section` |
|
|
110
134
|
| `size` | Width / height | `--size-16`, `--size-tablet` |
|
|
111
135
|
| `radius` | Border radius | `--radius-md`, `--radius-pill` |
|
|
112
|
-
| `border` | Border style/width | `--border-width-normal`, `--border-style-
|
|
136
|
+
| `border` | Border style/width | `--border-width-normal`, `--border-style-normal` |
|
|
113
137
|
| `shadow` | Box shadows | `--shadow-md`, `--shadow-center-sm` |
|
|
114
138
|
| `duration` | Animation timing | `--duration-fast` |
|
|
115
139
|
| `easing` | Timing functions | `--easing-bounce` |
|
|
@@ -119,7 +143,7 @@ All tokens follow the pattern: `--{category}-{subcategory?}-{variant}-{state?}`
|
|
|
119
143
|
| `fluid-spacing` | Responsive fluid spacing scale (Utopia) | `--fluid-spacing-sm`, `--fluid-spacing-lg` |
|
|
120
144
|
| `focus` | Focus ring tokens | `--focus-color`, `--focus-outline-width` |
|
|
121
145
|
| `opacity` | Opacity values | `--opacity-disabled`, `--opacity-overlay` |
|
|
122
|
-
| `span` | Grid column spans | `--span-
|
|
146
|
+
| `span` | Grid column spans | `--span-full`, `--span-half` |
|
|
123
147
|
| `z-index` | Stacking order | `--z-index-modal`, `--z-index-dropdown` |
|
|
124
148
|
| `max-width` | Readability caps | `--max-width-paragraph` |
|
|
125
149
|
|
|
@@ -170,7 +194,7 @@ The primitive palette provides **11 steps per hue** (50 → 950), named numerica
|
|
|
170
194
|
| `violet` | ≈ 293° | Modern violet |
|
|
171
195
|
| `yellow` | ≈ 86° | Pure yellow |
|
|
172
196
|
|
|
173
|
-
Plus `--color-black` and `--color-white
|
|
197
|
+
Plus `--color-black` and `--color-white`.
|
|
174
198
|
|
|
175
199
|
**Step guide:**
|
|
176
200
|
|
|
@@ -188,7 +212,7 @@ Plus `--color-black` and `--color-white` (with `*-rgb` variants for `rgb()` opac
|
|
|
188
212
|
| 900 | ≈ 0.33 | ≈ 0.41 | Near-dark, very high contrast |
|
|
189
213
|
| 950 | ≈ 0.22 | ≈ 0.28 | Darkest tint, almost black |
|
|
190
214
|
|
|
191
|
-
> **Note OKLCH** — L
|
|
215
|
+
> **Note on OKLCH** — L is perceptually uniform, but intrinsically bright hues (amber, yellow, lime) have naturally higher L values at steps 400–700. This is expected behavior, not a calibration error. Gray goes the other way (chroma ≈ 0, no brightness boost, L slightly lower). The "L avg" column is representative of cool chromatic hues (blue, red, green, violet…).
|
|
192
216
|
|
|
193
217
|
### Semantic color tokens
|
|
194
218
|
|
|
@@ -222,11 +246,11 @@ The default brand is **sienna** — a warm brick-red. Override it in your projec
|
|
|
222
246
|
|
|
223
247
|
| Token | Default | Usage |
|
|
224
248
|
|-------|---------|-------|
|
|
225
|
-
| `--color-
|
|
226
|
-
| `--color-
|
|
227
|
-
| `--color-
|
|
228
|
-
| `--color-
|
|
229
|
-
| `--color-
|
|
249
|
+
| `--color-background` | white | Page background |
|
|
250
|
+
| `--color-background-muted` | gray-100 | Subtle section backgrounds |
|
|
251
|
+
| `--color-background-surface` | = `--color-background` | Card / panel backgrounds |
|
|
252
|
+
| `--color-background-media` | gray-200 | Image placeholders, skeleton loaders |
|
|
253
|
+
| `--color-background-accent` | = `--color-accent` | Highlighted sections |
|
|
230
254
|
|
|
231
255
|
#### Text
|
|
232
256
|
|
|
@@ -307,30 +331,61 @@ Then reference it in `tokens/semantic/color.css` or your project's `@layer confi
|
|
|
307
331
|
|
|
308
332
|
---
|
|
309
333
|
|
|
310
|
-
##
|
|
334
|
+
## Customization
|
|
311
335
|
|
|
312
|
-
|
|
336
|
+
Two approaches are available depending on how deep the override needs to go.
|
|
313
337
|
|
|
314
|
-
|
|
315
|
-
@layer config, base, layouts, vendors, components;
|
|
316
|
-
```
|
|
338
|
+
### 1 — CSS override (recommended)
|
|
317
339
|
|
|
318
|
-
|
|
340
|
+
All tokens live in `@layer config`, the lowest-priority layer in the stack. Any `@layer config` block imported **after** this package wins by source order — no specificity tricks needed.
|
|
319
341
|
|
|
320
342
|
```css
|
|
321
|
-
@import '@uncinq/design-tokens
|
|
343
|
+
@import '@uncinq/design-tokens';
|
|
322
344
|
|
|
323
|
-
/* your project overrides — same layer, wins by order */
|
|
324
345
|
@layer config {
|
|
325
346
|
:root {
|
|
326
|
-
--color-brand:
|
|
327
|
-
--
|
|
347
|
+
--color-brand: var(--color-violet-600);
|
|
348
|
+
--color-brand-muted: var(--color-violet-100);
|
|
349
|
+
--color-brand-hover: var(--color-violet-700);
|
|
350
|
+
--color-brand-strong: var(--color-violet-900);
|
|
351
|
+
--font-family-sans: 'Inter', system-ui, sans-serif;
|
|
328
352
|
}
|
|
329
353
|
}
|
|
330
354
|
```
|
|
331
355
|
|
|
356
|
+
This covers most use cases: brand color, typography, spacing tweaks, component-level tokens.
|
|
357
|
+
|
|
332
358
|
→ MDN: [Using CSS cascade layers](https://developer.mozilla.org/en-US/docs/Learn_web_development/Core/Styling_basics/Cascade_layers)
|
|
333
359
|
|
|
360
|
+
### 2 — JSON + build in the consuming project
|
|
361
|
+
|
|
362
|
+
The package exports its raw JSON source files (`./tokens/*`). A project can source them directly in its own [Style Dictionary](https://styledictionary.com/) config alongside project-specific token files:
|
|
363
|
+
|
|
364
|
+
```js
|
|
365
|
+
// style-dictionary.config.js (in the consuming project)
|
|
366
|
+
export default {
|
|
367
|
+
source: [
|
|
368
|
+
'node_modules/@uncinq/design-tokens/tokens/**/*.json',
|
|
369
|
+
'tokens/**/*.json', // project tokens — extend or override the package
|
|
370
|
+
],
|
|
371
|
+
// ...
|
|
372
|
+
};
|
|
373
|
+
```
|
|
374
|
+
|
|
375
|
+
Project token files that define the same path as a package token will override it during the build. New paths are additive.
|
|
376
|
+
|
|
377
|
+
Use this approach to:
|
|
378
|
+
|
|
379
|
+
- Redefine the primitive palette entirely (new brand hue, different scale)
|
|
380
|
+
- Add semantic tokens that don't exist in the package
|
|
381
|
+
- Generate additional output formats (JS, SCSS…)
|
|
382
|
+
|
|
383
|
+
| Need | Approach |
|
|
384
|
+
| --- | --- |
|
|
385
|
+
| Change brand, typography, a few tokens | CSS `@layer config` |
|
|
386
|
+
| Redefine the entire primitive palette | JSON + build |
|
|
387
|
+
| Add project-specific tokens | JSON + build (or CSS if few) |
|
|
388
|
+
|
|
334
389
|
---
|
|
335
390
|
|
|
336
391
|
## Installation
|
|
@@ -348,48 +403,62 @@ yarn add @uncinq/design-tokens
|
|
|
348
403
|
@import '@uncinq/design-tokens';
|
|
349
404
|
|
|
350
405
|
/* or by layer */
|
|
351
|
-
@import '@uncinq/design-tokens/
|
|
352
|
-
@import '@uncinq/design-tokens/
|
|
406
|
+
@import '@uncinq/design-tokens/css/primitive.css';
|
|
407
|
+
@import '@uncinq/design-tokens/css/semantic.css';
|
|
353
408
|
|
|
354
409
|
/* or file by file */
|
|
355
|
-
@import '@uncinq/design-tokens/
|
|
356
|
-
@import '@uncinq/design-tokens/
|
|
410
|
+
@import '@uncinq/design-tokens/css/primitive/color.css';
|
|
411
|
+
@import '@uncinq/design-tokens/css/semantic/color.css';
|
|
357
412
|
```
|
|
358
413
|
|
|
359
414
|
### Usage — CDN (no build step)
|
|
360
415
|
|
|
361
416
|
```html
|
|
362
|
-
<link rel="stylesheet" href="https://unpkg.com/@uncinq/design-tokens
|
|
417
|
+
<link rel="stylesheet" href="https://unpkg.com/@uncinq/design-tokens">
|
|
363
418
|
```
|
|
364
419
|
|
|
365
420
|
---
|
|
366
421
|
|
|
367
422
|
## File structure
|
|
368
423
|
|
|
424
|
+
JSON source files (DTCG format — do not edit `dist/`):
|
|
425
|
+
|
|
369
426
|
```
|
|
370
427
|
tokens/
|
|
371
|
-
index.css ← imports all layers in order
|
|
372
428
|
primitive/
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
shadow.
|
|
377
|
-
size.
|
|
429
|
+
blur.json ← blur scale (xs → xl)
|
|
430
|
+
color.json ← full color palette (OKLCH, 11 steps per hue)
|
|
431
|
+
font.json ← font families, weights, sizes, line-heights
|
|
432
|
+
shadow.json ← box-shadow scale
|
|
433
|
+
size.json ← rem scale (--size-1 → --size-1920)
|
|
378
434
|
semantic/
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
focus.
|
|
383
|
-
form.
|
|
384
|
-
grid.
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
435
|
+
blur.json ← purposeful blur aliases
|
|
436
|
+
border.json ← border styles and widths
|
|
437
|
+
color.json ← purposeful color aliases (--color-brand, --color-background…)
|
|
438
|
+
focus.json ← focus ring tokens (color, style, width, offset)
|
|
439
|
+
form.json ← form control tokens (input, label, checkbox, switch…)
|
|
440
|
+
grid.json ← columns, gap, flex fractions
|
|
441
|
+
icon.json ← SVG icon tokens (data URI)
|
|
442
|
+
motion.json ← duration, easing, transitions
|
|
443
|
+
opacity.json ← purposeful opacity aliases (disabled, overlay)
|
|
444
|
+
radius.json ← border-radius scale + purposeful aliases
|
|
445
|
+
ratio.json ← aspect-ratio values (16/9, 4/3…)
|
|
446
|
+
shadow.json ← purposeful shadow aliases
|
|
447
|
+
size.json ← T-shirt scale + breakpoint aliases
|
|
448
|
+
spacing.json ← spacing scale + fluid clamp() aliases
|
|
449
|
+
typography.json ← font-size scale (fixed + fluid), heading sizes
|
|
450
|
+
z-index.json ← stacking order
|
|
451
|
+
```
|
|
452
|
+
|
|
453
|
+
Generated CSS (`dist/css/` — built by `npm run build`, do not edit):
|
|
454
|
+
|
|
455
|
+
```
|
|
456
|
+
dist/css/
|
|
457
|
+
index.css ← imports everything
|
|
458
|
+
primitive.css ← imports all primitive files
|
|
459
|
+
semantic.css ← imports all semantic files
|
|
460
|
+
primitive/ ← one file per tokens/primitive/*.json
|
|
461
|
+
semantic/ ← one file per tokens/semantic/*.json
|
|
393
462
|
```
|
|
394
463
|
|
|
395
464
|
---
|
|
@@ -398,5 +467,5 @@ tokens/
|
|
|
398
467
|
|
|
399
468
|
- [DTCG — format and concepts](docs/dtcg.md)
|
|
400
469
|
- [DTCG specification](https://tr.designtokens.org/format/) — W3C Community Group draft
|
|
401
|
-
- [Style Dictionary](https://
|
|
470
|
+
- [Style Dictionary v5](https://styledictionary.com/) — token build pipeline, see [docs/STYLE-DICTIONARY.md](docs/STYLE-DICTIONARY.md)
|
|
402
471
|
- [MDN: CSS cascade layers](https://developer.mozilla.org/en-US/docs/Learn_web_development/Core/Styling_basics/Cascade_layers)
|
|
@@ -1,20 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
* Primitive color palette in OKLCH.
|
|
4
|
-
* 11 steps per hue: 50 → 950.
|
|
5
|
-
* Values align with Tailwind v4 hue angles.
|
|
6
|
-
*
|
|
7
|
-
* DO NOT reference these directly in components — use semantic tokens instead.
|
|
1
|
+
/**
|
|
2
|
+
* Do not edit directly, this file was auto-generated.
|
|
8
3
|
*/
|
|
4
|
+
|
|
5
|
+
/* primitive/color.css */
|
|
9
6
|
@layer config {
|
|
10
7
|
:root {
|
|
11
8
|
--color-black: oklch(0 0 0);
|
|
12
|
-
--color-black-rgb: 0 0 0;
|
|
13
9
|
--color-white: oklch(1 0 0);
|
|
14
|
-
--color-
|
|
15
|
-
|
|
16
|
-
/* ── Amber — H ≈ 70° ───────────────────────────────────────────────── */
|
|
17
|
-
--color-amber-50: oklch(0.987 0.022 95.277);
|
|
10
|
+
--color-amber-50: oklch(0.987 0.022 95.277);
|
|
18
11
|
--color-amber-100: oklch(0.962 0.059 95.617);
|
|
19
12
|
--color-amber-200: oklch(0.924 0.120 95.746);
|
|
20
13
|
--color-amber-300: oklch(0.879 0.169 91.605);
|
|
@@ -25,9 +18,7 @@
|
|
|
25
18
|
--color-amber-800: oklch(0.473 0.137 46.201);
|
|
26
19
|
--color-amber-900: oklch(0.414 0.112 45.904);
|
|
27
20
|
--color-amber-950: oklch(0.279 0.077 45.635);
|
|
28
|
-
|
|
29
|
-
/* ── Blue — H ≈ 260° ───────────────────────────────────────────────── */
|
|
30
|
-
--color-blue-50: oklch(0.970 0.014 254.604);
|
|
21
|
+
--color-blue-50: oklch(0.970 0.014 254.604);
|
|
31
22
|
--color-blue-100: oklch(0.932 0.032 255.585);
|
|
32
23
|
--color-blue-200: oklch(0.882 0.059 254.128);
|
|
33
24
|
--color-blue-300: oklch(0.809 0.105 251.813);
|
|
@@ -38,9 +29,7 @@
|
|
|
38
29
|
--color-blue-800: oklch(0.424 0.199 265.638);
|
|
39
30
|
--color-blue-900: oklch(0.379 0.146 265.522);
|
|
40
31
|
--color-blue-950: oklch(0.282 0.091 267.935);
|
|
41
|
-
|
|
42
|
-
/* ── Cyan — H ≈ 215° ───────────────────────────────────────────────── */
|
|
43
|
-
--color-cyan-50: oklch(0.984 0.019 200.873);
|
|
32
|
+
--color-cyan-50: oklch(0.984 0.019 200.873);
|
|
44
33
|
--color-cyan-100: oklch(0.956 0.045 203.388);
|
|
45
34
|
--color-cyan-200: oklch(0.917 0.080 205.041);
|
|
46
35
|
--color-cyan-300: oklch(0.865 0.127 207.078);
|
|
@@ -51,22 +40,7 @@
|
|
|
51
40
|
--color-cyan-800: oklch(0.450 0.085 224.283);
|
|
52
41
|
--color-cyan-900: oklch(0.398 0.070 227.392);
|
|
53
42
|
--color-cyan-950: oklch(0.302 0.056 229.695);
|
|
54
|
-
|
|
55
|
-
/* ── Gray — neutral ─────────────────────────────────────────────────── */
|
|
56
|
-
--color-gray-50: oklch(0.985 0.002 247.839);
|
|
57
|
-
--color-gray-100: oklch(0.967 0.003 264.542);
|
|
58
|
-
--color-gray-200: oklch(0.928 0.006 264.531);
|
|
59
|
-
--color-gray-300: oklch(0.872 0.010 258.338);
|
|
60
|
-
--color-gray-400: oklch(0.707 0.022 261.325);
|
|
61
|
-
--color-gray-500: oklch(0.556 0.022 264.364);
|
|
62
|
-
--color-gray-600: oklch(0.439 0.020 264.531);
|
|
63
|
-
--color-gray-700: oklch(0.373 0.014 264.542);
|
|
64
|
-
--color-gray-800: oklch(0.279 0.010 264.542);
|
|
65
|
-
--color-gray-900: oklch(0.208 0.006 264.542);
|
|
66
|
-
--color-gray-950: oklch(0.145 0.005 264.542);
|
|
67
|
-
|
|
68
|
-
/* ── Emerald — H ≈ 148° ─────────────────────────────────────────────── */
|
|
69
|
-
--color-emerald-50: oklch(0.979 0.021 166.113);
|
|
43
|
+
--color-emerald-50: oklch(0.979 0.021 166.113);
|
|
70
44
|
--color-emerald-100: oklch(0.950 0.052 163.051);
|
|
71
45
|
--color-emerald-200: oklch(0.905 0.093 164.150);
|
|
72
46
|
--color-emerald-300: oklch(0.845 0.143 164.978);
|
|
@@ -77,9 +51,29 @@
|
|
|
77
51
|
--color-emerald-800: oklch(0.432 0.095 166.913);
|
|
78
52
|
--color-emerald-900: oklch(0.378 0.077 168.940);
|
|
79
53
|
--color-emerald-950: oklch(0.262 0.051 172.552);
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
--color-
|
|
54
|
+
--color-fuchsia-50: oklch(0.977 0.017 320.058);
|
|
55
|
+
--color-fuchsia-100: oklch(0.952 0.037 318.852);
|
|
56
|
+
--color-fuchsia-200: oklch(0.903 0.076 319.062);
|
|
57
|
+
--color-fuchsia-300: oklch(0.833 0.145 321.434);
|
|
58
|
+
--color-fuchsia-400: oklch(0.740 0.238 322.160);
|
|
59
|
+
--color-fuchsia-500: oklch(0.667 0.295 322.150);
|
|
60
|
+
--color-fuchsia-600: oklch(0.591 0.293 322.896);
|
|
61
|
+
--color-fuchsia-700: oklch(0.518 0.253 323.949);
|
|
62
|
+
--color-fuchsia-800: oklch(0.452 0.211 324.591);
|
|
63
|
+
--color-fuchsia-900: oklch(0.401 0.170 325.612);
|
|
64
|
+
--color-fuchsia-950: oklch(0.293 0.136 325.661);
|
|
65
|
+
--color-gray-50: oklch(0.985 0.002 247.839);
|
|
66
|
+
--color-gray-100: oklch(0.967 0.003 264.542);
|
|
67
|
+
--color-gray-200: oklch(0.928 0.006 264.531);
|
|
68
|
+
--color-gray-300: oklch(0.872 0.010 258.338);
|
|
69
|
+
--color-gray-400: oklch(0.707 0.022 261.325);
|
|
70
|
+
--color-gray-500: oklch(0.556 0.022 264.364);
|
|
71
|
+
--color-gray-600: oklch(0.439 0.020 264.531);
|
|
72
|
+
--color-gray-700: oklch(0.373 0.014 264.542);
|
|
73
|
+
--color-gray-800: oklch(0.279 0.010 264.542);
|
|
74
|
+
--color-gray-900: oklch(0.208 0.006 264.542);
|
|
75
|
+
--color-gray-950: oklch(0.145 0.005 264.542);
|
|
76
|
+
--color-green-50: oklch(0.982 0.018 155.826);
|
|
83
77
|
--color-green-100: oklch(0.962 0.044 156.743);
|
|
84
78
|
--color-green-200: oklch(0.925 0.084 155.995);
|
|
85
79
|
--color-green-300: oklch(0.871 0.150 154.449);
|
|
@@ -90,9 +84,7 @@
|
|
|
90
84
|
--color-green-800: oklch(0.448 0.119 151.328);
|
|
91
85
|
--color-green-900: oklch(0.393 0.095 152.535);
|
|
92
86
|
--color-green-950: oklch(0.266 0.065 152.934);
|
|
93
|
-
|
|
94
|
-
/* ── Indigo — H ≈ 277° ────────────────────────────────────────────── */
|
|
95
|
-
--color-indigo-50: oklch(0.962 0.018 272.314);
|
|
87
|
+
--color-indigo-50: oklch(0.962 0.018 272.314);
|
|
96
88
|
--color-indigo-100: oklch(0.930 0.034 272.788);
|
|
97
89
|
--color-indigo-200: oklch(0.870 0.065 274.039);
|
|
98
90
|
--color-indigo-300: oklch(0.785 0.115 274.713);
|
|
@@ -103,9 +95,7 @@
|
|
|
103
95
|
--color-indigo-800: oklch(0.398 0.195 277.366);
|
|
104
96
|
--color-indigo-900: oklch(0.359 0.144 278.697);
|
|
105
97
|
--color-indigo-950: oklch(0.257 0.090 281.288);
|
|
106
|
-
|
|
107
|
-
/* ── Lime — H ≈ 131° ──────────────────────────────────────────────── */
|
|
108
|
-
--color-lime-50: oklch(0.986 0.031 120.757);
|
|
98
|
+
--color-lime-50: oklch(0.986 0.031 120.757);
|
|
109
99
|
--color-lime-100: oklch(0.967 0.067 122.328);
|
|
110
100
|
--color-lime-200: oklch(0.938 0.127 124.321);
|
|
111
101
|
--color-lime-300: oklch(0.897 0.196 126.665);
|
|
@@ -116,9 +106,7 @@
|
|
|
116
106
|
--color-lime-800: oklch(0.453 0.124 130.933);
|
|
117
107
|
--color-lime-900: oklch(0.405 0.101 131.063);
|
|
118
108
|
--color-lime-950: oklch(0.274 0.072 132.109);
|
|
119
|
-
|
|
120
|
-
/* ── Orange — H ≈ 48° ─────────────────────────────────────────────── */
|
|
121
|
-
--color-orange-50: oklch(0.980 0.016 73.684);
|
|
109
|
+
--color-orange-50: oklch(0.980 0.016 73.684);
|
|
122
110
|
--color-orange-100: oklch(0.954 0.038 75.164);
|
|
123
111
|
--color-orange-200: oklch(0.901 0.076 70.697);
|
|
124
112
|
--color-orange-300: oklch(0.837 0.128 66.290);
|
|
@@ -129,9 +117,7 @@
|
|
|
129
117
|
--color-orange-800: oklch(0.470 0.157 37.304);
|
|
130
118
|
--color-orange-900: oklch(0.408 0.123 38.172);
|
|
131
119
|
--color-orange-950: oklch(0.266 0.079 36.259);
|
|
132
|
-
|
|
133
|
-
/* ── Pink — H ≈ 354° ──────────────────────────────────────────────── */
|
|
134
|
-
--color-pink-50: oklch(0.971 0.014 343.198);
|
|
120
|
+
--color-pink-50: oklch(0.971 0.014 343.198);
|
|
135
121
|
--color-pink-100: oklch(0.948 0.028 342.258);
|
|
136
122
|
--color-pink-200: oklch(0.899 0.061 343.231);
|
|
137
123
|
--color-pink-300: oklch(0.823 0.120 346.018);
|
|
@@ -142,22 +128,7 @@
|
|
|
142
128
|
--color-pink-800: oklch(0.459 0.187 3.815);
|
|
143
129
|
--color-pink-900: oklch(0.408 0.153 2.432);
|
|
144
130
|
--color-pink-950: oklch(0.284 0.109 3.907);
|
|
145
|
-
|
|
146
|
-
/* ── Fuchsia — H ≈ 316° ─────────────────────────────────────────────── */
|
|
147
|
-
--color-fuchsia-50: oklch(0.977 0.017 320.058);
|
|
148
|
-
--color-fuchsia-100: oklch(0.952 0.037 318.852);
|
|
149
|
-
--color-fuchsia-200: oklch(0.903 0.076 319.062);
|
|
150
|
-
--color-fuchsia-300: oklch(0.833 0.145 321.434);
|
|
151
|
-
--color-fuchsia-400: oklch(0.740 0.238 322.160);
|
|
152
|
-
--color-fuchsia-500: oklch(0.667 0.295 322.150);
|
|
153
|
-
--color-fuchsia-600: oklch(0.591 0.293 322.896);
|
|
154
|
-
--color-fuchsia-700: oklch(0.518 0.253 323.949);
|
|
155
|
-
--color-fuchsia-800: oklch(0.452 0.211 324.591);
|
|
156
|
-
--color-fuchsia-900: oklch(0.401 0.170 325.612);
|
|
157
|
-
--color-fuchsia-950: oklch(0.293 0.136 325.661);
|
|
158
|
-
|
|
159
|
-
/* ── Purple — H ≈ 304° ────────────────────────────────────────────── */
|
|
160
|
-
--color-purple-50: oklch(0.977 0.014 308.299);
|
|
131
|
+
--color-purple-50: oklch(0.977 0.014 308.299);
|
|
161
132
|
--color-purple-100: oklch(0.946 0.033 307.174);
|
|
162
133
|
--color-purple-200: oklch(0.902 0.063 306.703);
|
|
163
134
|
--color-purple-300: oklch(0.827 0.119 306.383);
|
|
@@ -168,9 +139,7 @@
|
|
|
168
139
|
--color-purple-800: oklch(0.438 0.218 303.724);
|
|
169
140
|
--color-purple-900: oklch(0.381 0.176 304.987);
|
|
170
141
|
--color-purple-950: oklch(0.291 0.149 302.717);
|
|
171
|
-
|
|
172
|
-
/* ── Red — H ≈ 25° ────────────────────────────────────────────────── */
|
|
173
|
-
--color-red-50: oklch(0.971 0.013 17.380);
|
|
142
|
+
--color-red-50: oklch(0.971 0.013 17.380);
|
|
174
143
|
--color-red-100: oklch(0.936 0.032 17.717);
|
|
175
144
|
--color-red-200: oklch(0.885 0.062 18.334);
|
|
176
145
|
--color-red-300: oklch(0.808 0.114 19.571);
|
|
@@ -181,9 +150,7 @@
|
|
|
181
150
|
--color-red-800: oklch(0.444 0.177 26.899);
|
|
182
151
|
--color-red-900: oklch(0.396 0.141 25.723);
|
|
183
152
|
--color-red-950: oklch(0.258 0.092 26.042);
|
|
184
|
-
|
|
185
|
-
/* ── Rose — H ≈ 16° ───────────────────────────────────────────────── */
|
|
186
|
-
--color-rose-50: oklch(0.969 0.015 12.422);
|
|
153
|
+
--color-rose-50: oklch(0.969 0.015 12.422);
|
|
187
154
|
--color-rose-100: oklch(0.941 0.030 12.580);
|
|
188
155
|
--color-rose-200: oklch(0.892 0.058 10.001);
|
|
189
156
|
--color-rose-300: oklch(0.810 0.101 2.432);
|
|
@@ -194,22 +161,7 @@
|
|
|
194
161
|
--color-rose-800: oklch(0.455 0.188 13.697);
|
|
195
162
|
--color-rose-900: oklch(0.410 0.159 10.272);
|
|
196
163
|
--color-rose-950: oklch(0.271 0.105 12.094);
|
|
197
|
-
|
|
198
|
-
/* ── Sky — H ≈ 237° ───────────────────────────────────────────────── */
|
|
199
|
-
--color-sky-50: oklch(0.977 0.013 236.620);
|
|
200
|
-
--color-sky-100: oklch(0.951 0.026 236.824);
|
|
201
|
-
--color-sky-200: oklch(0.901 0.058 230.902);
|
|
202
|
-
--color-sky-300: oklch(0.828 0.111 230.318);
|
|
203
|
-
--color-sky-400: oklch(0.746 0.160 232.661);
|
|
204
|
-
--color-sky-500: oklch(0.685 0.169 237.323);
|
|
205
|
-
--color-sky-600: oklch(0.588 0.158 241.966);
|
|
206
|
-
--color-sky-700: oklch(0.500 0.134 242.749);
|
|
207
|
-
--color-sky-800: oklch(0.443 0.110 240.790);
|
|
208
|
-
--color-sky-900: oklch(0.391 0.090 240.876);
|
|
209
|
-
--color-sky-950: oklch(0.293 0.066 243.157);
|
|
210
|
-
|
|
211
|
-
/* ── Sienna — H ≈ 23° (crimson #a90940 × terracotta) ─────────────── */
|
|
212
|
-
--color-sienna-50: oklch(0.973 0.012 22.0);
|
|
164
|
+
--color-sienna-50: oklch(0.973 0.012 22.0);
|
|
213
165
|
--color-sienna-100: oklch(0.945 0.028 22.5);
|
|
214
166
|
--color-sienna-200: oklch(0.900 0.060 23.5);
|
|
215
167
|
--color-sienna-300: oklch(0.832 0.108 25.0);
|
|
@@ -220,9 +172,18 @@
|
|
|
220
172
|
--color-sienna-800: oklch(0.380 0.136 18.0);
|
|
221
173
|
--color-sienna-900: oklch(0.322 0.106 16.0);
|
|
222
174
|
--color-sienna-950: oklch(0.218 0.072 15.0);
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
--color-
|
|
175
|
+
--color-sky-50: oklch(0.977 0.013 236.620);
|
|
176
|
+
--color-sky-100: oklch(0.951 0.026 236.824);
|
|
177
|
+
--color-sky-200: oklch(0.901 0.058 230.902);
|
|
178
|
+
--color-sky-300: oklch(0.828 0.111 230.318);
|
|
179
|
+
--color-sky-400: oklch(0.746 0.160 232.661);
|
|
180
|
+
--color-sky-500: oklch(0.685 0.169 237.323);
|
|
181
|
+
--color-sky-600: oklch(0.588 0.158 241.966);
|
|
182
|
+
--color-sky-700: oklch(0.500 0.134 242.749);
|
|
183
|
+
--color-sky-800: oklch(0.443 0.110 240.790);
|
|
184
|
+
--color-sky-900: oklch(0.391 0.090 240.876);
|
|
185
|
+
--color-sky-950: oklch(0.293 0.066 243.157);
|
|
186
|
+
--color-teal-50: oklch(0.984 0.014 180.720);
|
|
226
187
|
--color-teal-100: oklch(0.953 0.051 180.801);
|
|
227
188
|
--color-teal-200: oklch(0.910 0.096 180.426);
|
|
228
189
|
--color-teal-300: oklch(0.855 0.138 181.071);
|
|
@@ -233,9 +194,7 @@
|
|
|
233
194
|
--color-teal-800: oklch(0.437 0.078 188.216);
|
|
234
195
|
--color-teal-900: oklch(0.386 0.063 188.416);
|
|
235
196
|
--color-teal-950: oklch(0.277 0.046 192.524);
|
|
236
|
-
|
|
237
|
-
/* ── Violet — H ≈ 293° ────────────────────────────────────────────── */
|
|
238
|
-
--color-violet-50: oklch(0.969 0.016 293.756);
|
|
197
|
+
--color-violet-50: oklch(0.969 0.016 293.756);
|
|
239
198
|
--color-violet-100: oklch(0.943 0.029 294.588);
|
|
240
199
|
--color-violet-200: oklch(0.894 0.057 293.283);
|
|
241
200
|
--color-violet-300: oklch(0.811 0.111 293.571);
|
|
@@ -246,9 +205,7 @@
|
|
|
246
205
|
--color-violet-800: oklch(0.432 0.232 292.222);
|
|
247
206
|
--color-violet-900: oklch(0.380 0.189 293.745);
|
|
248
207
|
--color-violet-950: oklch(0.283 0.141 291.089);
|
|
249
|
-
|
|
250
|
-
/* ── Yellow — H ≈ 86° ─────────────────────────────────────────────── */
|
|
251
|
-
--color-yellow-50: oklch(0.987 0.026 102.212);
|
|
208
|
+
--color-yellow-50: oklch(0.987 0.026 102.212);
|
|
252
209
|
--color-yellow-100: oklch(0.973 0.071 103.193);
|
|
253
210
|
--color-yellow-200: oklch(0.945 0.129 101.540);
|
|
254
211
|
--color-yellow-300: oklch(0.905 0.182 98.111);
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Do not edit directly, this file was auto-generated.
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
/* primitive/font.css */
|
|
6
|
+
@layer config {
|
|
7
|
+
:root {
|
|
8
|
+
--font-family-mono: ui-monospace, monospace;
|
|
9
|
+
--font-family-sans: system-ui, sans-serif;
|
|
10
|
+
--font-family-serif: Georgia, serif;
|
|
11
|
+
--font-weight-thin: 100;
|
|
12
|
+
--font-weight-extra-light: 200;
|
|
13
|
+
--font-weight-light: 300;
|
|
14
|
+
--font-weight-normal: 400;
|
|
15
|
+
--font-weight-medium: 500;
|
|
16
|
+
--font-weight-semibold: 600;
|
|
17
|
+
--font-weight-bold: 700;
|
|
18
|
+
--font-weight-extra-bold: 800;
|
|
19
|
+
--font-weight-black: 900;
|
|
20
|
+
--line-height-none: 1;
|
|
21
|
+
--line-height-tight: 1.1;
|
|
22
|
+
--line-height-snug: 1.25;
|
|
23
|
+
--line-height-normal: 1.5;
|
|
24
|
+
--line-height-relaxed: 1.75;
|
|
25
|
+
--line-height-loose: 2;
|
|
26
|
+
--text-decoration-offset: 0.25rem;
|
|
27
|
+
--text-decoration-thickness: 1px;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Do not edit directly, this file was auto-generated.
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
/* primitive/shadow.css */
|
|
6
|
+
@layer config {
|
|
7
|
+
:root {
|
|
8
|
+
--shadow-none: 0 0 0 0 transparent;
|
|
9
|
+
--shadow-sm: 0 1px 2px 0 var(--color-shadow-normal), 0 1px 1px -1px var(--color-shadow-normal);
|
|
10
|
+
--shadow-md: 0 4px 6px -1px var(--color-shadow-normal), 0 2px 4px -2px var(--color-shadow-normal);
|
|
11
|
+
--shadow-lg: 0 10px 15px -3px var(--color-shadow-normal), 0 4px 6px -4px var(--color-shadow-normal);
|
|
12
|
+
--shadow-center-sm: 0 0 2px 2px var(--color-shadow-normal);
|
|
13
|
+
--shadow-center-md: 0 0 4px 4px var(--color-shadow-normal);
|
|
14
|
+
--shadow-center-lg: 0 0 8px 8px var(--color-shadow-normal);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -1,20 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
* Pixel-named rem scale.
|
|
4
|
-
* Name = equivalent px value at 16px base, value = rem equivalent.
|
|
5
|
-
* e.g. --size-16 = 1rem = 16px
|
|
1
|
+
/**
|
|
2
|
+
* Do not edit directly, this file was auto-generated.
|
|
6
3
|
*/
|
|
4
|
+
|
|
5
|
+
/* primitive/size.css */
|
|
7
6
|
@layer config {
|
|
8
7
|
:root {
|
|
9
|
-
--size-1:
|
|
10
|
-
--size-2:
|
|
11
|
-
--size-3:
|
|
12
|
-
--size-4:
|
|
13
|
-
--size-5:
|
|
14
|
-
--size-6:
|
|
15
|
-
--size-7:
|
|
16
|
-
--size-8:
|
|
17
|
-
--size-9:
|
|
8
|
+
--size-1: 0.0625rem;
|
|
9
|
+
--size-2: 0.125rem;
|
|
10
|
+
--size-3: 0.1875rem;
|
|
11
|
+
--size-4: 0.25rem;
|
|
12
|
+
--size-5: 0.3125rem;
|
|
13
|
+
--size-6: 0.375rem;
|
|
14
|
+
--size-7: 0.4375rem;
|
|
15
|
+
--size-8: 0.5rem;
|
|
16
|
+
--size-9: 0.5625rem;
|
|
18
17
|
--size-10: 0.625rem;
|
|
19
18
|
--size-11: 0.6875rem;
|
|
20
19
|
--size-12: 0.75rem;
|
|
@@ -47,9 +46,7 @@
|
|
|
47
46
|
--size-96: 6rem;
|
|
48
47
|
--size-100: 6.25rem;
|
|
49
48
|
--size-150: 9.375rem;
|
|
50
|
-
|
|
51
|
-
/* Screen widths */
|
|
52
|
-
--size-768: 48rem;
|
|
49
|
+
--size-768: 48rem;
|
|
53
50
|
--size-1024: 64rem;
|
|
54
51
|
--size-1200: 75rem;
|
|
55
52
|
--size-1280: 80rem;
|