@uncinq/design-tokens 0.3.0 → 1.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 +122 -53
- package/dist/css/primitive/blur.css +14 -0
- package/{tokens → dist/css}/primitive/color.css +53 -70
- 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/mediaqueries.css +17 -0
- package/dist/css/semantic/motion.css +28 -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 +2 -0
- 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 +86 -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 -19
- package/tokens/semantic/border.css +0 -15
- package/tokens/semantic/color.css +0 -108
- package/tokens/semantic/focus.css +0 -9
- package/tokens/semantic/form.css +0 -105
- package/tokens/semantic/grid.css +0 -53
- package/tokens/semantic/icon.css +0 -15
- package/tokens/semantic/motion.css +0 -46
- package/tokens/semantic/opacity.css +0 -9
- package/tokens/semantic/radius.css +0 -19
- package/tokens/semantic/ratio.css +0 -23
- package/tokens/semantic/size.css +0 -20
- package/tokens/semantic/spacing.css +0 -41
- package/tokens/semantic/typography.css +0 -78
- package/tokens/semantic/z-index.css +0 -14
- /package/{tokens → dist/css}/index.css +0 -0
package/README.md
CHANGED
|
@@ -49,14 +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: var(--spacing-control);
|
|
52
|
+
--btn-padding-inline: var(--spacing-control);
|
|
53
|
+
--btn-padding-block: var(--spacing-control);
|
|
53
54
|
```
|
|
54
55
|
|
|
55
56
|
---
|
|
56
57
|
|
|
57
58
|
## Naming convention
|
|
58
59
|
|
|
59
|
-
|
|
60
|
+
### Semantic tokens
|
|
61
|
+
|
|
62
|
+
Global semantic tokens follow: `--{category}-{subcategory?}-{variant}-{state?}`
|
|
60
63
|
|
|
61
64
|
```
|
|
62
65
|
--{category} --color
|
|
@@ -65,14 +68,36 @@ All tokens follow the pattern: `--{category}-{subcategory?}-{variant}-{state?}`
|
|
|
65
68
|
-{state} --color-text-disabled
|
|
66
69
|
```
|
|
67
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
|
+
|
|
68
84
|
### Rules
|
|
69
85
|
|
|
70
86
|
- **Lowercase kebab-case** — always
|
|
71
87
|
- **No component names** in primitive or semantic tokens (`--button-*` belongs in component tokens, not here)
|
|
72
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`.
|
|
73
90
|
- **States at the end** — `-hover`, `-focus`, `-active`, `-disabled`, `-checked`
|
|
74
|
-
-
|
|
75
|
-
|
|
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` |
|
|
76
101
|
|
|
77
102
|
```css
|
|
78
103
|
/* Brand */
|
|
@@ -98,28 +123,27 @@ All tokens follow the pattern: `--{category}-{subcategory?}-{variant}-{state?}`
|
|
|
98
123
|
|
|
99
124
|
| Category | Covers | Example tokens |
|
|
100
125
|
| --- | --- | --- |
|
|
101
|
-
| `color` | All color values | `--color-brand`, `--color-
|
|
126
|
+
| `color` | All color values | `--color-brand`, `--color-background-muted`, `--color-text-on-dark` |
|
|
102
127
|
| `font-family` | Typefaces | `--font-family-sans`, `--font-family-heading` |
|
|
103
128
|
| `font-size` | Text sizes | `--font-size-sm`, `--font-size-heading-01` |
|
|
104
129
|
| `font-weight` | Weight values | `--font-weight-bold`, `--font-weight-heading` |
|
|
105
130
|
| `line-height` | Line heights | `--line-height-tight`, `--line-height-heading` |
|
|
106
|
-
| `letter-spacing` | Tracking | `--letter-spacing-
|
|
107
|
-
| `text-decoration` | Decoration props | `--text-decoration-
|
|
131
|
+
| `letter-spacing` | Tracking | `--letter-spacing-none`, `--letter-spacing-md` |
|
|
132
|
+
| `text-decoration` | Decoration props | `--text-decoration-offset` |
|
|
108
133
|
| `spacing` | Margin / padding | `--spacing-md`, `--spacing-section` |
|
|
109
134
|
| `size` | Width / height | `--size-16`, `--size-tablet` |
|
|
110
135
|
| `radius` | Border radius | `--radius-md`, `--radius-pill` |
|
|
111
|
-
| `border` | Border style/width | `--border-width-normal`, `--border-style-
|
|
136
|
+
| `border` | Border style/width | `--border-width-normal`, `--border-style-normal` |
|
|
112
137
|
| `shadow` | Box shadows | `--shadow-md`, `--shadow-center-sm` |
|
|
113
138
|
| `duration` | Animation timing | `--duration-fast` |
|
|
114
139
|
| `easing` | Timing functions | `--easing-bounce` |
|
|
115
140
|
| `transition` | Shorthand transitions | `--transition-normal`, `--transition-color` |
|
|
116
141
|
| `ratio` | Aspect ratios | `--ratio-16-9` |
|
|
117
|
-
| `flex` | Flex-basis fractions | `--flex-half`, `--flex-third` |
|
|
118
142
|
| `fluid-text` | Responsive fluid type scale (Utopia) | `--fluid-text-sm`, `--fluid-text-xl` |
|
|
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,9 +40,29 @@
|
|
|
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
|
-
|
|
56
|
-
--color-
|
|
43
|
+
--color-emerald-50: oklch(0.979 0.021 166.113);
|
|
44
|
+
--color-emerald-100: oklch(0.950 0.052 163.051);
|
|
45
|
+
--color-emerald-200: oklch(0.905 0.093 164.150);
|
|
46
|
+
--color-emerald-300: oklch(0.845 0.143 164.978);
|
|
47
|
+
--color-emerald-400: oklch(0.765 0.177 163.223);
|
|
48
|
+
--color-emerald-500: oklch(0.696 0.170 162.480);
|
|
49
|
+
--color-emerald-600: oklch(0.596 0.145 163.225);
|
|
50
|
+
--color-emerald-700: oklch(0.508 0.118 165.612);
|
|
51
|
+
--color-emerald-800: oklch(0.432 0.095 166.913);
|
|
52
|
+
--color-emerald-900: oklch(0.378 0.077 168.940);
|
|
53
|
+
--color-emerald-950: oklch(0.262 0.051 172.552);
|
|
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);
|
|
57
66
|
--color-gray-100: oklch(0.967 0.003 264.542);
|
|
58
67
|
--color-gray-200: oklch(0.928 0.006 264.531);
|
|
59
68
|
--color-gray-300: oklch(0.872 0.010 258.338);
|
|
@@ -64,9 +73,7 @@
|
|
|
64
73
|
--color-gray-800: oklch(0.279 0.010 264.542);
|
|
65
74
|
--color-gray-900: oklch(0.208 0.006 264.542);
|
|
66
75
|
--color-gray-950: oklch(0.145 0.005 264.542);
|
|
67
|
-
|
|
68
|
-
/* ── Green — H ≈ 150° ─────────────────────────────────────────────── */
|
|
69
|
-
--color-green-50: oklch(0.982 0.018 155.826);
|
|
76
|
+
--color-green-50: oklch(0.982 0.018 155.826);
|
|
70
77
|
--color-green-100: oklch(0.962 0.044 156.743);
|
|
71
78
|
--color-green-200: oklch(0.925 0.084 155.995);
|
|
72
79
|
--color-green-300: oklch(0.871 0.150 154.449);
|
|
@@ -77,9 +84,7 @@
|
|
|
77
84
|
--color-green-800: oklch(0.448 0.119 151.328);
|
|
78
85
|
--color-green-900: oklch(0.393 0.095 152.535);
|
|
79
86
|
--color-green-950: oklch(0.266 0.065 152.934);
|
|
80
|
-
|
|
81
|
-
/* ── Indigo — H ≈ 277° ────────────────────────────────────────────── */
|
|
82
|
-
--color-indigo-50: oklch(0.962 0.018 272.314);
|
|
87
|
+
--color-indigo-50: oklch(0.962 0.018 272.314);
|
|
83
88
|
--color-indigo-100: oklch(0.930 0.034 272.788);
|
|
84
89
|
--color-indigo-200: oklch(0.870 0.065 274.039);
|
|
85
90
|
--color-indigo-300: oklch(0.785 0.115 274.713);
|
|
@@ -90,9 +95,7 @@
|
|
|
90
95
|
--color-indigo-800: oklch(0.398 0.195 277.366);
|
|
91
96
|
--color-indigo-900: oklch(0.359 0.144 278.697);
|
|
92
97
|
--color-indigo-950: oklch(0.257 0.090 281.288);
|
|
93
|
-
|
|
94
|
-
/* ── Lime — H ≈ 131° ──────────────────────────────────────────────── */
|
|
95
|
-
--color-lime-50: oklch(0.986 0.031 120.757);
|
|
98
|
+
--color-lime-50: oklch(0.986 0.031 120.757);
|
|
96
99
|
--color-lime-100: oklch(0.967 0.067 122.328);
|
|
97
100
|
--color-lime-200: oklch(0.938 0.127 124.321);
|
|
98
101
|
--color-lime-300: oklch(0.897 0.196 126.665);
|
|
@@ -103,9 +106,7 @@
|
|
|
103
106
|
--color-lime-800: oklch(0.453 0.124 130.933);
|
|
104
107
|
--color-lime-900: oklch(0.405 0.101 131.063);
|
|
105
108
|
--color-lime-950: oklch(0.274 0.072 132.109);
|
|
106
|
-
|
|
107
|
-
/* ── Orange — H ≈ 48° ─────────────────────────────────────────────── */
|
|
108
|
-
--color-orange-50: oklch(0.980 0.016 73.684);
|
|
109
|
+
--color-orange-50: oklch(0.980 0.016 73.684);
|
|
109
110
|
--color-orange-100: oklch(0.954 0.038 75.164);
|
|
110
111
|
--color-orange-200: oklch(0.901 0.076 70.697);
|
|
111
112
|
--color-orange-300: oklch(0.837 0.128 66.290);
|
|
@@ -116,9 +117,7 @@
|
|
|
116
117
|
--color-orange-800: oklch(0.470 0.157 37.304);
|
|
117
118
|
--color-orange-900: oklch(0.408 0.123 38.172);
|
|
118
119
|
--color-orange-950: oklch(0.266 0.079 36.259);
|
|
119
|
-
|
|
120
|
-
/* ── Pink — H ≈ 354° ──────────────────────────────────────────────── */
|
|
121
|
-
--color-pink-50: oklch(0.971 0.014 343.198);
|
|
120
|
+
--color-pink-50: oklch(0.971 0.014 343.198);
|
|
122
121
|
--color-pink-100: oklch(0.948 0.028 342.258);
|
|
123
122
|
--color-pink-200: oklch(0.899 0.061 343.231);
|
|
124
123
|
--color-pink-300: oklch(0.823 0.120 346.018);
|
|
@@ -129,9 +128,7 @@
|
|
|
129
128
|
--color-pink-800: oklch(0.459 0.187 3.815);
|
|
130
129
|
--color-pink-900: oklch(0.408 0.153 2.432);
|
|
131
130
|
--color-pink-950: oklch(0.284 0.109 3.907);
|
|
132
|
-
|
|
133
|
-
/* ── Purple — H ≈ 304° ────────────────────────────────────────────── */
|
|
134
|
-
--color-purple-50: oklch(0.977 0.014 308.299);
|
|
131
|
+
--color-purple-50: oklch(0.977 0.014 308.299);
|
|
135
132
|
--color-purple-100: oklch(0.946 0.033 307.174);
|
|
136
133
|
--color-purple-200: oklch(0.902 0.063 306.703);
|
|
137
134
|
--color-purple-300: oklch(0.827 0.119 306.383);
|
|
@@ -142,9 +139,7 @@
|
|
|
142
139
|
--color-purple-800: oklch(0.438 0.218 303.724);
|
|
143
140
|
--color-purple-900: oklch(0.381 0.176 304.987);
|
|
144
141
|
--color-purple-950: oklch(0.291 0.149 302.717);
|
|
145
|
-
|
|
146
|
-
/* ── Red — H ≈ 25° ────────────────────────────────────────────────── */
|
|
147
|
-
--color-red-50: oklch(0.971 0.013 17.380);
|
|
142
|
+
--color-red-50: oklch(0.971 0.013 17.380);
|
|
148
143
|
--color-red-100: oklch(0.936 0.032 17.717);
|
|
149
144
|
--color-red-200: oklch(0.885 0.062 18.334);
|
|
150
145
|
--color-red-300: oklch(0.808 0.114 19.571);
|
|
@@ -155,9 +150,7 @@
|
|
|
155
150
|
--color-red-800: oklch(0.444 0.177 26.899);
|
|
156
151
|
--color-red-900: oklch(0.396 0.141 25.723);
|
|
157
152
|
--color-red-950: oklch(0.258 0.092 26.042);
|
|
158
|
-
|
|
159
|
-
/* ── Rose — H ≈ 16° ───────────────────────────────────────────────── */
|
|
160
|
-
--color-rose-50: oklch(0.969 0.015 12.422);
|
|
153
|
+
--color-rose-50: oklch(0.969 0.015 12.422);
|
|
161
154
|
--color-rose-100: oklch(0.941 0.030 12.580);
|
|
162
155
|
--color-rose-200: oklch(0.892 0.058 10.001);
|
|
163
156
|
--color-rose-300: oklch(0.810 0.101 2.432);
|
|
@@ -168,22 +161,7 @@
|
|
|
168
161
|
--color-rose-800: oklch(0.455 0.188 13.697);
|
|
169
162
|
--color-rose-900: oklch(0.410 0.159 10.272);
|
|
170
163
|
--color-rose-950: oklch(0.271 0.105 12.094);
|
|
171
|
-
|
|
172
|
-
/* ── Sky — H ≈ 237° ───────────────────────────────────────────────── */
|
|
173
|
-
--color-sky-50: oklch(0.977 0.013 236.620);
|
|
174
|
-
--color-sky-100: oklch(0.951 0.026 236.824);
|
|
175
|
-
--color-sky-200: oklch(0.901 0.058 230.902);
|
|
176
|
-
--color-sky-300: oklch(0.828 0.111 230.318);
|
|
177
|
-
--color-sky-400: oklch(0.746 0.160 232.661);
|
|
178
|
-
--color-sky-500: oklch(0.685 0.169 237.323);
|
|
179
|
-
--color-sky-600: oklch(0.588 0.158 241.966);
|
|
180
|
-
--color-sky-700: oklch(0.500 0.134 242.749);
|
|
181
|
-
--color-sky-800: oklch(0.443 0.110 240.790);
|
|
182
|
-
--color-sky-900: oklch(0.391 0.090 240.876);
|
|
183
|
-
--color-sky-950: oklch(0.293 0.066 243.157);
|
|
184
|
-
|
|
185
|
-
/* ── Sienna — H ≈ 23° (crimson #a90940 × terracotta) ─────────────── */
|
|
186
|
-
--color-sienna-50: oklch(0.973 0.012 22.0);
|
|
164
|
+
--color-sienna-50: oklch(0.973 0.012 22.0);
|
|
187
165
|
--color-sienna-100: oklch(0.945 0.028 22.5);
|
|
188
166
|
--color-sienna-200: oklch(0.900 0.060 23.5);
|
|
189
167
|
--color-sienna-300: oklch(0.832 0.108 25.0);
|
|
@@ -194,9 +172,18 @@
|
|
|
194
172
|
--color-sienna-800: oklch(0.380 0.136 18.0);
|
|
195
173
|
--color-sienna-900: oklch(0.322 0.106 16.0);
|
|
196
174
|
--color-sienna-950: oklch(0.218 0.072 15.0);
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
--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);
|
|
200
187
|
--color-teal-100: oklch(0.953 0.051 180.801);
|
|
201
188
|
--color-teal-200: oklch(0.910 0.096 180.426);
|
|
202
189
|
--color-teal-300: oklch(0.855 0.138 181.071);
|
|
@@ -207,9 +194,7 @@
|
|
|
207
194
|
--color-teal-800: oklch(0.437 0.078 188.216);
|
|
208
195
|
--color-teal-900: oklch(0.386 0.063 188.416);
|
|
209
196
|
--color-teal-950: oklch(0.277 0.046 192.524);
|
|
210
|
-
|
|
211
|
-
/* ── Violet — H ≈ 293° ────────────────────────────────────────────── */
|
|
212
|
-
--color-violet-50: oklch(0.969 0.016 293.756);
|
|
197
|
+
--color-violet-50: oklch(0.969 0.016 293.756);
|
|
213
198
|
--color-violet-100: oklch(0.943 0.029 294.588);
|
|
214
199
|
--color-violet-200: oklch(0.894 0.057 293.283);
|
|
215
200
|
--color-violet-300: oklch(0.811 0.111 293.571);
|
|
@@ -220,9 +205,7 @@
|
|
|
220
205
|
--color-violet-800: oklch(0.432 0.232 292.222);
|
|
221
206
|
--color-violet-900: oklch(0.380 0.189 293.745);
|
|
222
207
|
--color-violet-950: oklch(0.283 0.141 291.089);
|
|
223
|
-
|
|
224
|
-
/* ── Yellow — H ≈ 86° ─────────────────────────────────────────────── */
|
|
225
|
-
--color-yellow-50: oklch(0.987 0.026 102.212);
|
|
208
|
+
--color-yellow-50: oklch(0.987 0.026 102.212);
|
|
226
209
|
--color-yellow-100: oklch(0.973 0.071 103.193);
|
|
227
210
|
--color-yellow-200: oklch(0.945 0.129 101.540);
|
|
228
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;
|