@navecss/tokens 0.1.1 → 0.3.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/dist/tokens.css CHANGED
@@ -167,6 +167,12 @@
167
167
  initial-value: 2px;
168
168
  }
169
169
 
170
+ @property --nave-border-width-mark {
171
+ syntax: '<length>';
172
+ inherits: true;
173
+ initial-value: 2px;
174
+ }
175
+
170
176
  @property --nave-border-width-lg {
171
177
  syntax: '<length>';
172
178
  inherits: true;
@@ -216,43 +222,43 @@
216
222
  }
217
223
 
218
224
  @property --nave-layer-base {
219
- syntax: '<number>';
225
+ syntax: '<integer>';
220
226
  inherits: true;
221
227
  initial-value: 0;
222
228
  }
223
229
 
224
230
  @property --nave-layer-dropdown {
225
- syntax: '<number>';
231
+ syntax: '<integer>';
226
232
  inherits: true;
227
233
  initial-value: 100;
228
234
  }
229
235
 
230
236
  @property --nave-layer-sticky {
231
- syntax: '<number>';
237
+ syntax: '<integer>';
232
238
  inherits: true;
233
239
  initial-value: 200;
234
240
  }
235
241
 
236
242
  @property --nave-layer-overlay {
237
- syntax: '<number>';
243
+ syntax: '<integer>';
238
244
  inherits: true;
239
245
  initial-value: 300;
240
246
  }
241
247
 
242
248
  @property --nave-layer-modal {
243
- syntax: '<number>';
249
+ syntax: '<integer>';
244
250
  inherits: true;
245
251
  initial-value: 400;
246
252
  }
247
253
 
248
254
  @property --nave-layer-toast {
249
- syntax: '<number>';
255
+ syntax: '<integer>';
250
256
  inherits: true;
251
257
  initial-value: 500;
252
258
  }
253
259
 
254
260
  @property --nave-layer-tooltip {
255
- syntax: '<number>';
261
+ syntax: '<integer>';
256
262
  inherits: true;
257
263
  initial-value: 600;
258
264
  }
@@ -339,6 +345,7 @@
339
345
  --nave-border-width-none: 0px;
340
346
  --nave-border-width-sm: 1px;
341
347
  --nave-border-width-focus: 2px;
348
+ --nave-border-width-mark: 2px;
342
349
  --nave-border-width-lg: 4px;
343
350
  --nave-radius-none: 0px;
344
351
  --nave-radius-sm: 4px;
@@ -380,7 +387,7 @@
380
387
  }
381
388
  }
382
389
 
383
- /* Nave theming — generated, do not edit. See this package's README ("Theming"). */
390
+ /* Nave theming — generated, do not edit. See the @navecss/tokens README ("Theming"). */
384
391
 
385
392
  @property --nave-color-tint {
386
393
  syntax: '<color>';
@@ -395,39 +402,39 @@
395
402
  color-scheme: light dark;
396
403
  /* Tint seed: Changing this changes everything Nave derives from it. The contrast of the resulting palette follows from what you set, and checking it is yours. */
397
404
  --nave-color-tint: oklch(0.7859 0.1316 186.17);
398
- --nave-color-surface-base: light-dark(oklch(from var(--nave-color-tint) 1 0 h), oklch(from var(--nave-color-tint) 0.18 0.0067 h));
399
- --nave-color-surface-raised: light-dark(oklch(from var(--nave-color-tint) 1 0 h), oklch(from var(--nave-color-tint) 0.225 0.0067 h));
400
- --nave-color-surface-overlay: light-dark(oklch(from var(--nave-color-tint) 1 0 h), oklch(from var(--nave-color-tint) 0.27 0.0067 h));
401
- --nave-color-surface-sunken: light-dark(oklch(from var(--nave-color-tint) 0.985 0.0067 h), oklch(from var(--nave-color-tint) 0.12 0.0067 h));
402
- --nave-color-surface-inverse: light-dark(oklch(from var(--nave-color-tint) 0.18 0.0067 h), oklch(from var(--nave-color-tint) 0.965 0.0067 h));
403
- --nave-color-content-primary: light-dark(oklch(from var(--nave-color-tint) 0.18 0.0067 h), oklch(from var(--nave-color-tint) 0.965 0.0067 h));
404
- --nave-color-content-secondary: light-dark(oklch(from var(--nave-color-tint) 0.37 0.0067 h), oklch(from var(--nave-color-tint) 0.835 0.0067 h));
405
- --nave-color-content-tertiary: light-dark(oklch(from var(--nave-color-tint) 0.47 0.0067 h), oklch(from var(--nave-color-tint) 0.72 0.0067 h));
406
- --nave-color-content-disabled: light-dark(oklch(from var(--nave-color-tint) 0.835 0.0067 h), oklch(from var(--nave-color-tint) 0.37 0.0067 h));
407
- --nave-color-content-inverse: light-dark(oklch(from var(--nave-color-tint) 0.965 0.0067 h), oklch(from var(--nave-color-tint) 0.18 0.0067 h));
405
+ --nave-color-surface-base: light-dark(oklch(from var(--nave-color-tint) 1 0 h / 1), oklch(from var(--nave-color-tint) 0.18 0.0067 h / 1));
406
+ --nave-color-surface-raised: light-dark(oklch(from var(--nave-color-tint) 1 0 h / 1), oklch(from var(--nave-color-tint) 0.225 0.0067 h / 1));
407
+ --nave-color-surface-overlay: light-dark(oklch(from var(--nave-color-tint) 1 0 h / 1), oklch(from var(--nave-color-tint) 0.27 0.0067 h / 1));
408
+ --nave-color-surface-sunken: light-dark(oklch(from var(--nave-color-tint) 0.985 0.0067 h / 1), oklch(from var(--nave-color-tint) 0.12 0.0067 h / 1));
409
+ --nave-color-surface-inverse: light-dark(oklch(from var(--nave-color-tint) 0.18 0.0067 h / 1), oklch(from var(--nave-color-tint) 0.965 0.0067 h / 1));
410
+ --nave-color-content-primary: light-dark(oklch(from var(--nave-color-tint) 0.18 0.0067 h / 1), oklch(from var(--nave-color-tint) 0.965 0.0067 h / 1));
411
+ --nave-color-content-secondary: light-dark(oklch(from var(--nave-color-tint) 0.37 0.0067 h / 1), oklch(from var(--nave-color-tint) 0.835 0.0067 h / 1));
412
+ --nave-color-content-tertiary: light-dark(oklch(from var(--nave-color-tint) 0.47 0.0067 h / 1), oklch(from var(--nave-color-tint) 0.72 0.0067 h / 1));
413
+ --nave-color-content-disabled: light-dark(oklch(from var(--nave-color-tint) 0.835 0.0067 h / 1), oklch(from var(--nave-color-tint) 0.37 0.0067 h / 1));
414
+ --nave-color-content-inverse: light-dark(oklch(from var(--nave-color-tint) 0.965 0.0067 h / 1), oklch(from var(--nave-color-tint) 0.18 0.0067 h / 1));
408
415
  --nave-color-content-link: light-dark(oklch(0.47 0.0748 186.17), oklch(0.835 0.123 186.17));
409
- --nave-color-border-default: light-dark(oklch(from var(--nave-color-tint) 0.905 0.0067 h), oklch(from var(--nave-color-tint) 0.37 0.0067 h));
410
- --nave-color-border-strong: light-dark(oklch(from var(--nave-color-tint) 0.72 0.0067 h), oklch(from var(--nave-color-tint) 0.47 0.0067 h));
411
- --nave-color-border-control: light-dark(oklch(from var(--nave-color-tint) 0.59 0.0067 h), oklch(from var(--nave-color-tint) 0.59 0.0067 h));
412
- --nave-color-border-disabled: light-dark(oklch(from var(--nave-color-tint) 0.94 0.0067 h), oklch(from var(--nave-color-tint) 0.27 0.0067 h));
416
+ --nave-color-border-default: light-dark(oklch(from var(--nave-color-tint) 0.905 0.0067 h / 1), oklch(from var(--nave-color-tint) 0.37 0.0067 h / 1));
417
+ --nave-color-border-strong: light-dark(oklch(from var(--nave-color-tint) 0.72 0.0067 h / 1), oklch(from var(--nave-color-tint) 0.47 0.0067 h / 1));
418
+ --nave-color-border-control: light-dark(oklch(from var(--nave-color-tint) 0.59 0.0067 h / 1), oklch(from var(--nave-color-tint) 0.59 0.0067 h / 1));
419
+ --nave-color-border-disabled: light-dark(oklch(from var(--nave-color-tint) 0.94 0.0067 h / 1), oklch(from var(--nave-color-tint) 0.27 0.0067 h / 1));
413
420
  --nave-color-border-focus: light-dark(oklch(0.59 0.0939 186.17), oklch(0.59 0.0939 186.17));
414
421
  --nave-color-action-primary: light-dark(oklch(0.47 0.0748 186.17), oklch(0.835 0.123 186.17));
415
422
  --nave-color-action-primary-hover: light-dark(oklch(0.37 0.0589 186.17), oklch(0.905 0.1106 186.17));
416
423
  --nave-color-action-primary-active: light-dark(oklch(0.27 0.0398 186.17), oklch(0.94 0.0574 186.17));
417
- --nave-color-on-action-primary: light-dark(oklch(from var(--nave-color-tint) 1 0 h), oklch(from var(--nave-color-tint) 0.18 0.0067 h));
418
- --nave-color-action-secondary: light-dark(oklch(from var(--nave-color-tint) 0.965 0.0067 h), oklch(from var(--nave-color-tint) 0.27 0.0067 h));
424
+ --nave-color-on-action-primary: light-dark(oklch(from var(--nave-color-tint) 1 0 h / 1), oklch(from var(--nave-color-tint) 0.18 0.0067 h / 1));
425
+ --nave-color-action-secondary: light-dark(oklch(from var(--nave-color-tint) 0.965 0.0067 h / 1), oklch(from var(--nave-color-tint) 0.27 0.0067 h / 1));
419
426
  --nave-color-feedback-danger: light-dark(oklch(0.47 0.1455 15.02), oklch(0.835 0.0661 15.02));
420
427
  --nave-color-feedback-danger-foreground: light-dark(oklch(0.47 0.1455 15.02), oklch(0.835 0.0661 15.02));
421
- --nave-color-on-feedback-danger: light-dark(oklch(from var(--nave-color-tint) 1 0 h), oklch(from var(--nave-color-tint) 0.18 0.0067 h));
428
+ --nave-color-on-feedback-danger: light-dark(oklch(from var(--nave-color-tint) 1 0 h / 1), oklch(from var(--nave-color-tint) 0.18 0.0067 h / 1));
422
429
  /* Feedback tokens: warning, success and info, and their -foreground variants, resolve to one shared value here; only danger differs. Colour alone therefore cannot tell those three states apart, so wherever a feedback token carries meaning, give it a text label naming the state and a distinct icon or shape that differs per state. */
423
- --nave-color-feedback-warning: light-dark(oklch(from var(--nave-color-tint) 0.47 0.0067 h), oklch(from var(--nave-color-tint) 0.835 0.0067 h));
424
- --nave-color-feedback-warning-foreground: light-dark(oklch(from var(--nave-color-tint) 0.47 0.0067 h), oklch(from var(--nave-color-tint) 0.835 0.0067 h));
425
- --nave-color-on-feedback-warning: light-dark(oklch(from var(--nave-color-tint) 1 0 h), oklch(from var(--nave-color-tint) 0.18 0.0067 h));
426
- --nave-color-feedback-success: light-dark(oklch(from var(--nave-color-tint) 0.47 0.0067 h), oklch(from var(--nave-color-tint) 0.835 0.0067 h));
427
- --nave-color-feedback-success-foreground: light-dark(oklch(from var(--nave-color-tint) 0.47 0.0067 h), oklch(from var(--nave-color-tint) 0.835 0.0067 h));
428
- --nave-color-on-feedback-success: light-dark(oklch(from var(--nave-color-tint) 1 0 h), oklch(from var(--nave-color-tint) 0.18 0.0067 h));
429
- --nave-color-feedback-info: light-dark(oklch(from var(--nave-color-tint) 0.47 0.0067 h), oklch(from var(--nave-color-tint) 0.835 0.0067 h));
430
- --nave-color-feedback-info-foreground: light-dark(oklch(from var(--nave-color-tint) 0.47 0.0067 h), oklch(from var(--nave-color-tint) 0.835 0.0067 h));
431
- --nave-color-on-feedback-info: light-dark(oklch(from var(--nave-color-tint) 1 0 h), oklch(from var(--nave-color-tint) 0.18 0.0067 h));
430
+ --nave-color-feedback-warning: light-dark(oklch(from var(--nave-color-tint) 0.47 0.0067 h / 1), oklch(from var(--nave-color-tint) 0.835 0.0067 h / 1));
431
+ --nave-color-feedback-warning-foreground: light-dark(oklch(from var(--nave-color-tint) 0.47 0.0067 h / 1), oklch(from var(--nave-color-tint) 0.835 0.0067 h / 1));
432
+ --nave-color-on-feedback-warning: light-dark(oklch(from var(--nave-color-tint) 1 0 h / 1), oklch(from var(--nave-color-tint) 0.18 0.0067 h / 1));
433
+ --nave-color-feedback-success: light-dark(oklch(from var(--nave-color-tint) 0.47 0.0067 h / 1), oklch(from var(--nave-color-tint) 0.835 0.0067 h / 1));
434
+ --nave-color-feedback-success-foreground: light-dark(oklch(from var(--nave-color-tint) 0.47 0.0067 h / 1), oklch(from var(--nave-color-tint) 0.835 0.0067 h / 1));
435
+ --nave-color-on-feedback-success: light-dark(oklch(from var(--nave-color-tint) 1 0 h / 1), oklch(from var(--nave-color-tint) 0.18 0.0067 h / 1));
436
+ --nave-color-feedback-info: light-dark(oklch(from var(--nave-color-tint) 0.47 0.0067 h / 1), oklch(from var(--nave-color-tint) 0.835 0.0067 h / 1));
437
+ --nave-color-feedback-info-foreground: light-dark(oklch(from var(--nave-color-tint) 0.47 0.0067 h / 1), oklch(from var(--nave-color-tint) 0.835 0.0067 h / 1));
438
+ --nave-color-on-feedback-info: light-dark(oklch(from var(--nave-color-tint) 1 0 h / 1), oklch(from var(--nave-color-tint) 0.18 0.0067 h / 1));
432
439
  }
433
440
  }
package/dist/tokens.d.ts CHANGED
@@ -2,8 +2,11 @@
2
2
 
3
3
  /** The DTCG 2025.10 token set as a typed const object (e.g. `--nave-font-size-md`).
4
4
  * Keys are CSS custom property names. The semantic colour layer
5
- * (`--nave-color-*`) ships as CSS custom properties in `dist/tokens.css`
6
- * and is not part of this export.
5
+ * (`--nave-color-*`) ships as CSS custom properties in `dist/tokens.css` and is
6
+ * not part of this object; its property NAMES are typed separately as
7
+ * `ColorPropertyName`, and its VALUES are reachable only through CSS (e.g.
8
+ * `var(--nave-color-action-primary)`): the browser resolves each one for the
9
+ * active colour scheme, and the neutral-derived ones also follow the tint.
7
10
  */
8
11
  export declare const tokens: {
9
12
  '--nave-font-family-base': string
@@ -58,6 +61,7 @@ export declare const tokens: {
58
61
  '--nave-border-width-none': string
59
62
  '--nave-border-width-sm': string
60
63
  '--nave-border-width-focus': string
64
+ '--nave-border-width-mark': string
61
65
  '--nave-border-width-lg': string
62
66
  '--nave-radius-none': string
63
67
  '--nave-radius-sm': string
@@ -88,3 +92,44 @@ export declare const tokens: {
88
92
 
89
93
  export declare type TokenName = keyof typeof tokens
90
94
  export declare type TokenValue = typeof tokens[TokenName]
95
+
96
+ /** Every `--nave-color-*` custom property the semantic colour layer emits: names
97
+ * only, no value (see the doc comment above `tokens` for where the values live).
98
+ * Disjoint from `TokenName` — a consumer who wants both writes
99
+ * `TokenName | ColorPropertyName`.
100
+ */
101
+ export declare type ColorPropertyName =
102
+ | '--nave-color-action-primary'
103
+ | '--nave-color-action-primary-active'
104
+ | '--nave-color-action-primary-hover'
105
+ | '--nave-color-action-secondary'
106
+ | '--nave-color-border-control'
107
+ | '--nave-color-border-default'
108
+ | '--nave-color-border-disabled'
109
+ | '--nave-color-border-focus'
110
+ | '--nave-color-border-strong'
111
+ | '--nave-color-content-disabled'
112
+ | '--nave-color-content-inverse'
113
+ | '--nave-color-content-link'
114
+ | '--nave-color-content-primary'
115
+ | '--nave-color-content-secondary'
116
+ | '--nave-color-content-tertiary'
117
+ | '--nave-color-feedback-danger'
118
+ | '--nave-color-feedback-danger-foreground'
119
+ | '--nave-color-feedback-info'
120
+ | '--nave-color-feedback-info-foreground'
121
+ | '--nave-color-feedback-success'
122
+ | '--nave-color-feedback-success-foreground'
123
+ | '--nave-color-feedback-warning'
124
+ | '--nave-color-feedback-warning-foreground'
125
+ | '--nave-color-on-action-primary'
126
+ | '--nave-color-on-feedback-danger'
127
+ | '--nave-color-on-feedback-info'
128
+ | '--nave-color-on-feedback-success'
129
+ | '--nave-color-on-feedback-warning'
130
+ | '--nave-color-surface-base'
131
+ | '--nave-color-surface-inverse'
132
+ | '--nave-color-surface-overlay'
133
+ | '--nave-color-surface-raised'
134
+ | '--nave-color-surface-sunken'
135
+ | '--nave-color-tint'
package/dist/tokens.js CHANGED
@@ -3,8 +3,11 @@
3
3
 
4
4
  /** The DTCG 2025.10 token set as a typed const object (e.g. `--nave-font-size-md`).
5
5
  * Keys are CSS custom property names. The semantic colour layer
6
- * (`--nave-color-*`) ships as CSS custom properties in `dist/tokens.css`
7
- * and is not part of this export.
6
+ * (`--nave-color-*`) ships as CSS custom properties in `dist/tokens.css` and is
7
+ * not part of this object; its property NAMES are typed separately as
8
+ * `ColorPropertyName`, and its VALUES are reachable only through CSS (e.g.
9
+ * `var(--nave-color-action-primary)`): the browser resolves each one for the
10
+ * active colour scheme, and the neutral-derived ones also follow the tint.
8
11
  */
9
12
  export const tokens = {
10
13
  '--nave-font-family-base': "system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif",
@@ -59,6 +62,7 @@ export const tokens = {
59
62
  '--nave-border-width-none': "0px",
60
63
  '--nave-border-width-sm': "1px",
61
64
  '--nave-border-width-focus': "2px",
65
+ '--nave-border-width-mark': "2px",
62
66
  '--nave-border-width-lg': "4px",
63
67
  '--nave-radius-none': "0px",
64
68
  '--nave-radius-sm': "4px",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@navecss/tokens",
3
- "version": "0.1.1",
3
+ "version": "0.3.0",
4
4
  "description": "DTCG 2025.10 design tokens for Nave: seed-derived semantic colours, typography, spacing, and the rest of the token layer, built by a first-party DTCG 2025.10 reader.",
5
5
  "keywords": [
6
6
  "css",
@@ -51,11 +51,11 @@
51
51
  "TOKENS.md"
52
52
  ],
53
53
  "devDependencies": {
54
- "@types/node": "^26.6.2",
55
- "@vitest/coverage-v8": "5.0.1",
56
- "prettier": "3.9.8",
54
+ "@types/node": "^26.6.4",
55
+ "@vitest/coverage-v8": "5.0.3",
56
+ "prettier": "3.9.9",
57
57
  "typescript": "6.0.3",
58
- "vitest": "5.0.1"
58
+ "vitest": "5.0.3"
59
59
  },
60
60
  "engines": {
61
61
  "node": ">=22.18"
@@ -79,7 +79,6 @@
79
79
  "lint": "eslint build.ts generate-tokens-doc.ts src test --max-warnings 0",
80
80
  "lint:fix": "eslint build.ts generate-tokens-doc.ts src test --fix",
81
81
  "test": "vitest run",
82
- "test:coverage": "vitest run --coverage",
83
82
  "check:pack": "node ../../scripts/without-dry-run.mjs publint && node ../../scripts/without-dry-run.mjs attw --pack . --profile esm-only --exclude-entrypoints css"
84
83
  }
85
84
  }
package/tokens.json CHANGED
@@ -33,12 +33,24 @@
33
33
  {
34
34
  "against": "surface.sunken",
35
35
  "class": "text"
36
+ },
37
+ {
38
+ "against": "surface.overlay",
39
+ "class": "text"
36
40
  }
37
41
  ],
38
42
  "content.secondary": [
39
43
  {
40
44
  "against": "surface.base",
41
45
  "class": "text"
46
+ },
47
+ {
48
+ "against": "surface.raised",
49
+ "class": "text"
50
+ },
51
+ {
52
+ "against": "surface.overlay",
53
+ "class": "text"
42
54
  }
43
55
  ],
44
56
  "content.tertiary": [
@@ -49,6 +61,14 @@
49
61
  {
50
62
  "against": "surface.sunken",
51
63
  "class": "text"
64
+ },
65
+ {
66
+ "against": "surface.raised",
67
+ "class": "text"
68
+ },
69
+ {
70
+ "against": "surface.overlay",
71
+ "class": "text"
52
72
  }
53
73
  ],
54
74
  "content.inverse": [
@@ -67,6 +87,14 @@
67
87
  {
68
88
  "against": "surface.base",
69
89
  "class": "text"
90
+ },
91
+ {
92
+ "against": "surface.raised",
93
+ "class": "text"
94
+ },
95
+ {
96
+ "against": "surface.overlay",
97
+ "class": "text"
70
98
  }
71
99
  ],
72
100
  "on-action.primary": [
@@ -155,12 +183,28 @@
155
183
  {
156
184
  "against": "surface.base",
157
185
  "class": "non-text"
186
+ },
187
+ {
188
+ "against": "surface.raised",
189
+ "class": "non-text"
190
+ },
191
+ {
192
+ "against": "surface.overlay",
193
+ "class": "non-text"
158
194
  }
159
195
  ],
160
196
  "feedback.danger": [
161
197
  {
162
198
  "against": "surface.base",
163
199
  "class": "non-text"
200
+ },
201
+ {
202
+ "against": "surface.raised",
203
+ "class": "non-text"
204
+ },
205
+ {
206
+ "against": "surface.overlay",
207
+ "class": "non-text"
164
208
  }
165
209
  ],
166
210
  "feedback.warning": [
@@ -173,6 +217,18 @@
173
217
  {
174
218
  "against": "surface.base",
175
219
  "class": "non-text"
220
+ },
221
+ {
222
+ "against": "surface.base",
223
+ "class": "text"
224
+ },
225
+ {
226
+ "against": "surface.raised",
227
+ "class": "text"
228
+ },
229
+ {
230
+ "against": "surface.overlay",
231
+ "class": "text"
176
232
  }
177
233
  ]
178
234
  }
@@ -597,6 +653,14 @@
597
653
  "$type": "dimension",
598
654
  "$description": "Focus ring indicator outline width"
599
655
  },
656
+ "mark": {
657
+ "$value": {
658
+ "value": 2,
659
+ "unit": "px"
660
+ },
661
+ "$type": "dimension",
662
+ "$description": "Strokes of glyphs drawn in CSS: check marks, indeterminate bars"
663
+ },
600
664
  "lg": {
601
665
  "$value": {
602
666
  "value": 4,
@@ -626,7 +690,7 @@
626
690
  "unit": "px"
627
691
  },
628
692
  "$type": "dimension",
629
- "$description": "Inputs, buttons, tags"
693
+ "$description": "Inputs, buttons, tags, and the popovers, menus and select lists anchored to a control"
630
694
  },
631
695
  "card": {
632
696
  "$value": {