@rowkit/tokens 1.0.0-beta.0 → 1.0.0-beta.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 CHANGED
@@ -1,9 +1,9 @@
1
1
  # @rowkit/tokens
2
2
 
3
- [![npm](https://img.shields.io/npm/v/@rowkit/tokens/beta?color=000080)](https://www.npmjs.com/package/@rowkit/tokens)
3
+ [![npm](https://img.shields.io/npm/v/@rowkit/tokens/beta?color=D63A1F)](https://www.npmjs.com/package/@rowkit/tokens)
4
4
  [![license](https://img.shields.io/npm/l/@rowkit/tokens)](https://github.com/NikolaiKushner/rowkit/blob/main/LICENSE)
5
5
 
6
- The design tokens behind [rowkit](https://www.npmjs.com/package/rowkit) — the Windows 98 palette, bevels, type, spacing, radii, layers and motion.
6
+ The design tokens behind [rowkit](https://www.npmjs.com/package/rowkit) — colour, shadows, sizes, corners, type, layers and motion for its two themes: **Windows 98**, the default, and **modern**, in light and dark. Plus `defineTheme()`, to make a theme of your own (with rowkit installed, import it from `rowkit/theme` — the same function, matched to the components).
7
7
 
8
8
  Usable on its own. Nothing here depends on Vue, so a chart library, a design tool or an email template can read the same values the components use.
9
9
 
@@ -19,7 +19,7 @@ npm i @rowkit/tokens@beta
19
19
 
20
20
  **Primitives** are the raw palette — the VGA colours and Windows 98's system colours: `--color-vga-navy` is one specific blue and means nothing on its own. **Semantic** tokens name a role — `--color-card`, `--color-muted-foreground`, `--color-border` — and point at a primitive through `var()`.
21
21
 
22
- Rebranding is a matter of repointing semantic references rather than hunting hex codes. There is one theme; rowkit has no dark mode.
22
+ Rebranding is a matter of repointing semantic references rather than hunting hex codes. The modern theme has a palette of its own (`--color-modern-*`) and points the same semantic names at it, once for light and once for dark.
23
23
 
24
24
  ## Use
25
25
 
@@ -30,7 +30,13 @@ As a Tailwind v4 theme:
30
30
  @import '@rowkit/tokens/css';
31
31
  ```
32
32
 
33
- Every token becomes a theme value, so `bg-card`, `text-ui`, `p-4` and `shadow-raised` resolve to the scales above.
33
+ Every token becomes a theme value, so `bg-card`, `text-ui`, `p-4` and `shadow-raised` resolve to the scales above. The stylesheet also carries both themes. Pick one with an attribute on any element; themes nest:
34
+
35
+ ```html
36
+ <html data-theme="modern" data-color-scheme="dark"></html>
37
+ ```
38
+
39
+ Without `data-theme` a page is Windows 98. Without `data-color-scheme` the modern theme follows the system's light or dark setting.
34
40
 
35
41
  As CSS custom properties, for anything Tailwind does not cover:
36
42
 
@@ -51,17 +57,69 @@ tokens.color.vga.silver // '#c0c0c0' — the face of every window
51
57
  const series = [tokens.color.vga.navy, tokens.color.vga.green, tokens.color.vga.maroon]
52
58
  ```
53
59
 
54
- `tokens` is grouped by scale rather than flattened, so `tokens.color.vga.navy` narrows to its literal type and autocompletes at every level.
60
+ `tokens` is grouped by scale rather than flattened, so `tokens.color.vga.navy` narrows to its literal type and autocompletes at every level. The scales are Windows 98's values.
61
+
62
+ ## Themes as data
63
+
64
+ `tokens.themes` has each theme as the CSS variables it declares — every value a theme may set, by name:
65
+
66
+ ```ts
67
+ import { tokens } from '@rowkit/tokens'
68
+
69
+ tokens.themes.win98['--spacing-control-md'] // '28px'
70
+ tokens.themes.modern.light['--spacing-control-md'] // '32px'
71
+ tokens.themes.modern.dark // only what the dark scheme changes
72
+ ```
73
+
74
+ ## A theme of your own
75
+
76
+ `defineTheme()` starts from `modern` (the default) or `win98`, lays your values over it and returns the stylesheet — every variable declared, and for a theme with a dark scheme, the dark rules too, following the system unless `data-color-scheme` fixes it. A token name rowkit does not have throws, so a typo fails the build.
77
+
78
+ ```ts
79
+ import { defineTheme } from '@rowkit/tokens'
80
+
81
+ export const acme = defineTheme({
82
+ name: 'acme', // <html data-theme="acme">
83
+ extends: 'modern',
84
+ light: { '--color-control-primary': '#5b3df5', '--radius-md': '10px' },
85
+ dark: { '--color-control-primary': '#7c66ff' },
86
+ })
87
+ ```
88
+
89
+ Write the string to a file imported after `rowkit/styles`, or into a `<style>` element at start-up. `themeRule(selector, scheme, values)` writes one rule, if you would rather assemble the stylesheet yourself:
90
+
91
+ ```ts
92
+ import { themeRule, tokens } from '@rowkit/tokens'
93
+
94
+ themeRule('.print', 'light', { ...tokens.themes.win98, '--color-background': '#ffffff' })
95
+ ```
96
+
97
+ The whole guide, with a live builder: [Themes](https://rowkit.dev/foundations/themes).
98
+
99
+ ## Reference
100
+
101
+ `@rowkit/tokens/reference` describes every token a theme sets: what it is for, which components read it, and its value in Windows 98 and in modern light and dark. A separate entry point, so the main one stays small.
102
+
103
+ ```ts
104
+ import { tokenReference } from '@rowkit/tokens/reference'
105
+
106
+ tokenReference.find((t) => t.name === '--color-control-primary')
107
+ // { name, group: 'color', description: '…', components: ['Button'], values: { win98, modernLight, modernDark } }
108
+ ```
55
109
 
56
110
  ## Notes on the values
57
111
 
58
- **Colour is the exact Windows 98 palette.** Primitives are `#rrggbb` values from the VGA palette and the default Windows 98 scheme, named as in the design's Figma variables.
112
+ **Windows 98's colour is the exact Windows 98 palette.** Primitives are `#rrggbb` values from the VGA palette and the default Windows 98 scheme, named as in the design's Figma variables. The modern palette follows the designer's Figma file.
113
+
114
+ **Depth: bevels in Windows 98, soft shadows in modern.** In Windows 98, `shadow-raised`, `shadow-sunken`, `shadow-window` and the rest are hard inset lines in the four `bevel-*` colours. The modern theme sets the same names to soft shadows outside the box and hairline edges.
115
+
116
+ **Corners: square in Windows 98, rounded in modern.** In Windows 98 the radius scale multiplies `--radius`, which is `0rem` until you set it. The modern theme sets each step as a length: 7px for a button or a field, 12px for a window.
59
117
 
60
- **Depth is bevels, not elevation.** `shadow-raised`, `shadow-sunken`, `shadow-window` and the rest are hard inset lines in the four `bevel-*` colours. Corners are square: the radius scale multiplies `--radius`, which is `0rem` until you set it.
118
+ **Type: PT Sans and VT323 in Windows 98, the system's faces in modern.** Both set the interface at 13px (`text-ui`) — in Windows 98, its 8pt at Large Fonts. Windows 98 has two weights, regular and bold; modern's emphasis (`--font-weight-strong`) is semibold. The font files are not shipped: for Windows 98, load `@fontsource/pt-sans` and `@fontsource/vt323` in the app. The modern theme loads nothing.
61
119
 
62
- **Type is PT Sans and VT323.** The interface is set at 11px (`text-ui`). The font files are not shipped; load `@fontsource/pt-sans` and `@fontsource/vt323` in the app.
120
+ **Motion: next to none in Windows 98, short in modern.** Windows 98 changes state at once; the modern theme uses transitions of 120–160ms.
63
121
 
64
- **Contrast is asserted, not claimed.** Every semantic text pairing is checked against WCAG AA, and every control boundary and focus ring against 3:1, in the package's own tests.
122
+ **Contrast is asserted, not claimed.** Every semantic text pairing is checked against WCAG AA, and every control boundary and focus ring against 3:1, in every theme and scheme, in the package's own tests.
65
123
 
66
124
  **Spacing keys are multiples of 4px.** `4` is 1rem, `2` is 8px — the convention most Vue and Tailwind developers already carry.
67
125
 
@@ -71,4 +129,4 @@ const series = [tokens.color.vga.navy, tokens.color.vga.green, tokens.color.vga.
71
129
 
72
130
  MIT © Nikolai Kushner
73
131
 
74
- The visual language is a tribute to Windows 98. rowkit is not affiliated with or endorsed by Microsoft.
132
+ The Windows 98 theme is a tribute to Windows 98. rowkit is not affiliated with or endorsed by Microsoft.
package/dist/color.d.ts CHANGED
@@ -177,40 +177,157 @@ export declare const semanticColor: {
177
177
  * 11:1 on `#b5b5b5`.
178
178
  */
179
179
  readonly 'titlebar-inactive-foreground': `var(--color-${string})`;
180
+ /** Neutral fill: a solid neutral badge, and anything filled in the neutral colour. */
180
181
  readonly 'neutral-solid': `var(--color-${string})`;
182
+ /** Neutral fill under the pointer. */
181
183
  readonly 'neutral-solid-hover': `var(--color-${string})`;
184
+ /** Text and icons on the neutral fill. */
182
185
  readonly 'neutral-on-solid': `var(--color-${string})`;
186
+ /** Neutral tint: the face of a subtle neutral badge or callout. */
183
187
  readonly 'neutral-subtle': `var(--color-${string})`;
188
+ /** Neutral text and icons, on its tint and on the page. */
184
189
  readonly 'neutral-on-subtle': `var(--color-${string})`;
190
+ /** The edge of a subtle or outlined neutral badge. */
185
191
  readonly 'neutral-border': `var(--color-${string})`;
192
+ /** Primary fill — the accent: a solid primary badge, a selected item, the default action in a theme that colours it. */
186
193
  readonly 'primary-solid': `var(--color-${string})`;
194
+ /** Primary fill under the pointer. */
187
195
  readonly 'primary-solid-hover': `var(--color-${string})`;
196
+ /** Text and icons on the primary fill. */
188
197
  readonly 'primary-on-solid': `var(--color-${string})`;
198
+ /** Primary tint: the face of a subtle primary badge or callout. */
189
199
  readonly 'primary-subtle': `var(--color-${string})`;
200
+ /** Primary text and icons, on its tint and on the page. */
190
201
  readonly 'primary-on-subtle': `var(--color-${string})`;
202
+ /** The edge of a subtle or outlined primary badge. */
191
203
  readonly 'primary-border': `var(--color-${string})`;
204
+ /** Success fill: a solid success badge, and anything filled in the success colour. */
192
205
  readonly 'success-solid': `var(--color-${string})`;
206
+ /** Success fill under the pointer. */
193
207
  readonly 'success-solid-hover': `var(--color-${string})`;
208
+ /** Text and icons on the success fill. */
194
209
  readonly 'success-on-solid': `var(--color-${string})`;
210
+ /** Success tint: the face of a subtle success badge or callout. */
195
211
  readonly 'success-subtle': `var(--color-${string})`;
212
+ /** Success text and icons, on its tint and on the page. */
196
213
  readonly 'success-on-subtle': `var(--color-${string})`;
214
+ /** The edge of a subtle or outlined success badge. */
197
215
  readonly 'success-border': `var(--color-${string})`;
198
216
  /**
199
- * Yellow carries black, never white: white on `#ffff00` is 1.07:1. Its edge
200
- * is olive, because yellow on silver has almost no edge of its own.
217
+ * Warning fill: a solid warning badge, and anything filled in the warning colour. Yellow carries black, never white: white on `#ffff00` is 1.07:1;
218
+ * its edge is olive, because yellow on silver has almost no edge of its own.
201
219
  */
202
220
  readonly 'warning-solid': `var(--color-${string})`;
221
+ /** Warning fill under the pointer. */
203
222
  readonly 'warning-solid-hover': `var(--color-${string})`;
223
+ /** Text and icons on the warning fill. */
204
224
  readonly 'warning-on-solid': `var(--color-${string})`;
225
+ /** Warning tint: the face of a subtle warning badge or callout. */
205
226
  readonly 'warning-subtle': `var(--color-${string})`;
227
+ /** Warning text and icons, on its tint and on the page. */
206
228
  readonly 'warning-on-subtle': `var(--color-${string})`;
229
+ /** The edge of a subtle or outlined warning badge. */
207
230
  readonly 'warning-border': `var(--color-${string})`;
231
+ /** Danger fill: a solid danger badge, and anything filled in the danger colour. */
208
232
  readonly 'danger-solid': `var(--color-${string})`;
233
+ /** Danger fill under the pointer. */
209
234
  readonly 'danger-solid-hover': `var(--color-${string})`;
235
+ /** Text and icons on the danger fill. */
210
236
  readonly 'danger-on-solid': `var(--color-${string})`;
237
+ /** Danger tint: the face of a subtle danger badge or callout. */
211
238
  readonly 'danger-subtle': `var(--color-${string})`;
239
+ /** Danger text and icons, on its tint and on the page. */
212
240
  readonly 'danger-on-subtle': `var(--color-${string})`;
241
+ /** The edge of a subtle or outlined danger badge. */
213
242
  readonly 'danger-border': `var(--color-${string})`;
243
+ /** A plain button, a spin or drop button, a table's sort header. */
244
+ readonly control: `var(--color-${string})`;
245
+ /** Text and icons on a plain button. */
246
+ readonly 'control-foreground': `var(--color-${string})`;
247
+ /** A plain button under the pointer. */
248
+ readonly 'control-hover': `var(--color-${string})`;
249
+ /** A plain button while it is held. */
250
+ readonly 'control-active': `var(--color-${string})`;
251
+ /** The default button of a form or dialog — Enter's target. */
252
+ readonly 'control-primary': `var(--color-${string})`;
253
+ /** Text and icons on the default button. */
254
+ readonly 'control-primary-foreground': `var(--color-${string})`;
255
+ /** The default button under the pointer. */
256
+ readonly 'control-primary-hover': `var(--color-${string})`;
257
+ /** The default button while it is held. */
258
+ readonly 'control-primary-active': `var(--color-${string})`;
259
+ /** A flat toolbar button while hovered and while held. */
260
+ readonly 'control-ghost-hover': `var(--color-${string})`;
261
+ readonly 'control-ghost-active': `var(--color-${string})`;
262
+ /** The face of a latched toggle, under its pattern. */
263
+ readonly 'control-latched': `var(--color-${string})`;
264
+ /** A latched default button. A toggle is never the default, but if one latches it keeps its colour. */
265
+ readonly 'control-primary-latched': `var(--color-${string})`;
266
+ /** The box of a checked checkbox or radio, and the mark inside it. */
267
+ readonly checked: `var(--color-${string})`;
268
+ readonly 'on-checked': `var(--color-${string})`;
269
+ /** A list that drops from a trigger: a select's options. */
270
+ readonly popover: `var(--color-${string})`;
271
+ readonly 'popover-border': `var(--color-${string})`;
272
+ /** The ring a theme draws around a focused control, outside its edge. */
273
+ readonly 'focus-ring': `var(--color-${string})`;
274
+ /** A window's caption buttons; one fill per button, for themes that colour them. */
275
+ readonly caption: `var(--color-${string})`;
276
+ readonly 'caption-foreground': `var(--color-${string})`;
277
+ readonly 'caption-close': `var(--color-${string})`;
278
+ readonly 'caption-minimize': `var(--color-${string})`;
279
+ readonly 'caption-maximize': `var(--color-${string})`;
280
+ readonly 'caption-inactive': `var(--color-${string})`;
281
+ /** A data table's column headers. */
282
+ readonly 'table-header': `var(--color-${string})`;
283
+ readonly 'table-header-foreground': `var(--color-${string})`;
284
+ /** Every other row of a data table. Windows 98 does not stripe. */
285
+ readonly 'table-stripe': `var(--color-${string})`;
286
+ /** A data table row under the pointer. Windows 98 does not highlight it. */
287
+ readonly 'table-row-hover': `var(--color-${string})`;
288
+ /** The channel a progress bar or a scroll thumb runs in, and what fills it. */
289
+ readonly track: `var(--color-${string})`;
290
+ readonly progress: `var(--color-${string})`;
291
+ readonly 'scroll-thumb': `var(--color-${string})`;
292
+ /** The channel a scroll bar's thumb runs in, under its pattern. */
293
+ readonly 'scroll-track': `var(--color-${string})`;
294
+ /** The frame of a tooltip. */
295
+ readonly 'tooltip-border': `var(--color-${string})`;
296
+ /**
297
+ * The inside of a group box's frame, and the face around it — behind the
298
+ * legend and the frame's edge. Both the window's silver in Windows 98.
299
+ */
300
+ readonly groupbox: `var(--color-${string})`;
301
+ readonly 'groupbox-face': `var(--color-${string})`;
302
+ /** A toast's ✕: the caption button's silver in Windows 98, a soft grey disc elsewhere. */
303
+ readonly 'toast-close': `var(--color-${string})`;
304
+ readonly 'toast-close-foreground': `var(--color-${string})`;
305
+ /** «Loading…» in a dropped list: plain text in Windows 98, the subtle grey elsewhere. */
306
+ readonly 'loading-foreground': `var(--color-${string})`;
307
+ /** The strip that holds a searchable list's search box: the window face in Windows 98, nothing elsewhere. */
308
+ readonly 'select-search': `var(--color-${string})`;
309
+ /** A pager's buttons: raised command buttons in Windows 98, flat elsewhere. */
310
+ readonly pager: `var(--color-${string})`;
311
+ readonly 'pager-hover': `var(--color-${string})`;
312
+ readonly 'pager-active': `var(--color-${string})`;
313
+ /** The strip a filter bar sits on. */
314
+ readonly 'filter-bar': `var(--color-${string})`;
315
+ /** A filter chip: its face, its edge and its text. */
316
+ readonly chip: `var(--color-${string})`;
317
+ readonly 'chip-border': `var(--color-${string})`;
318
+ readonly 'chip-foreground': `var(--color-${string})`;
319
+ /** The face of a chip's ✕ at rest: the chip's own white in Windows 98. */
320
+ readonly 'chip-remove': `var(--color-${string})`;
321
+ /**
322
+ * The value of a read-only field that holds focus — a drop-down list's —
323
+ * highlighted the way Windows 98 marks it, and the text on it.
324
+ */
325
+ readonly 'field-highlight': `var(--color-${string})`;
326
+ readonly 'on-field-highlight': `var(--color-${string})`;
327
+ /** The text caret in a field. */
328
+ readonly 'field-caret': `var(--color-${string})`;
329
+ /** The buttons inside a field: a select's drop button, a number's spin buttons. */
330
+ readonly 'field-button': `var(--color-${string})`;
214
331
  };
215
332
  /** Names of every semantic colour token. */
216
333
  export type SemanticColorName = keyof typeof semanticColor;
package/dist/css.d.ts CHANGED
@@ -5,8 +5,22 @@
5
5
  * the stylesheet from them, so the two cannot drift. `css.test.ts` asserts that
6
6
  * every token in every scale reaches the output.
7
7
  *
8
- * There is one theme. Semantic tokens point at primitives, so a consumer
9
- * rebrands by repointing a semantic token rather than editing a literal colour.
8
+ * Two themes. Windows 98 is the default, carried by `:root`; the modern theme
9
+ * is switched on by `data-theme="modern"` on any element, and its dark scheme
10
+ * by the system or by `data-color-scheme="dark"` on that same element. A theme
11
+ * is a set of custom property values and nothing else, so themes nest: a
12
+ * region marked `data-theme="win98"` inside a modern page is Windows 98.
13
+ *
14
+ * One thing makes that work, and it is easy to break. A custom property whose
15
+ * value contains `var()` is resolved on the element that declares it, and
16
+ * descendants inherit the result. A theme therefore re-declares every token it
17
+ * changes on its own element; repointing a primitive at `:root` would not reach
18
+ * a semantic token that has already been resolved there.
19
+ *
20
+ * Shadows take one more step. Tailwind copies a `--shadow-*` value into each
21
+ * `shadow-*` utility rather than referencing it, so a theme could never change
22
+ * one. The `@theme` entry is therefore `var(--rk-shadow-*)`, and the value
23
+ * lives in that variable.
10
24
  *
11
25
  * @returns The complete stylesheet, ready to write to disk.
12
26
  */
package/dist/index.d.ts CHANGED
@@ -28,6 +28,12 @@ export { shadow, textShadow } from './shadow.js';
28
28
  export type { ShadowName, TextShadowName } from './shadow.js';
29
29
  export { spacing, spacingBase } from './spacing.js';
30
30
  export type { SpacingName } from './spacing.js';
31
+ export { size } from './size.js';
32
+ export type { SizeName } from './size.js';
33
+ export { style } from './style.js';
34
+ export type { StyleName } from './style.js';
35
+ export { modernDarkColor, modernDarkShadow, modernDarkVars, modernFont, modernFontSize, modernFontWeight, modernLightColor, modernLightShadow, modernLightVars, modernPalette, modernRadius, modernSize, modernStyle, defineTheme, themeNames, themeRule, win98Vars, } from './themes/index.js';
36
+ export type { ModernPaletteName, ThemeDefinition, ThemeName, ThemeTokenName, ThemeValues, ThemeVars, } from './themes/index.js';
31
37
  export { fontFamily, fontSize, fontWeight, letterSpacing, lineHeight } from './typography.js';
32
38
  export type { FontSizeName } from './typography.js';
33
39
  export { zIndex } from './z-index.js';
@@ -149,6 +155,56 @@ export declare const tokens: {
149
155
  readonly 'danger-subtle': `var(--color-${string})`;
150
156
  readonly 'danger-on-subtle': `var(--color-${string})`;
151
157
  readonly 'danger-border': `var(--color-${string})`;
158
+ readonly control: `var(--color-${string})`;
159
+ readonly 'control-foreground': `var(--color-${string})`;
160
+ readonly 'control-hover': `var(--color-${string})`;
161
+ readonly 'control-active': `var(--color-${string})`;
162
+ readonly 'control-primary': `var(--color-${string})`;
163
+ readonly 'control-primary-foreground': `var(--color-${string})`;
164
+ readonly 'control-primary-hover': `var(--color-${string})`;
165
+ readonly 'control-primary-active': `var(--color-${string})`;
166
+ readonly 'control-ghost-hover': `var(--color-${string})`;
167
+ readonly 'control-ghost-active': `var(--color-${string})`;
168
+ readonly 'control-latched': `var(--color-${string})`;
169
+ readonly 'control-primary-latched': `var(--color-${string})`;
170
+ readonly checked: `var(--color-${string})`;
171
+ readonly 'on-checked': `var(--color-${string})`;
172
+ readonly popover: `var(--color-${string})`;
173
+ readonly 'popover-border': `var(--color-${string})`;
174
+ readonly 'focus-ring': `var(--color-${string})`;
175
+ readonly caption: `var(--color-${string})`;
176
+ readonly 'caption-foreground': `var(--color-${string})`;
177
+ readonly 'caption-close': `var(--color-${string})`;
178
+ readonly 'caption-minimize': `var(--color-${string})`;
179
+ readonly 'caption-maximize': `var(--color-${string})`;
180
+ readonly 'caption-inactive': `var(--color-${string})`;
181
+ readonly 'table-header': `var(--color-${string})`;
182
+ readonly 'table-header-foreground': `var(--color-${string})`;
183
+ readonly 'table-stripe': `var(--color-${string})`;
184
+ readonly 'table-row-hover': `var(--color-${string})`;
185
+ readonly track: `var(--color-${string})`;
186
+ readonly progress: `var(--color-${string})`;
187
+ readonly 'scroll-thumb': `var(--color-${string})`;
188
+ readonly 'scroll-track': `var(--color-${string})`;
189
+ readonly 'tooltip-border': `var(--color-${string})`;
190
+ readonly groupbox: `var(--color-${string})`;
191
+ readonly 'groupbox-face': `var(--color-${string})`;
192
+ readonly 'toast-close': `var(--color-${string})`;
193
+ readonly 'toast-close-foreground': `var(--color-${string})`;
194
+ readonly 'loading-foreground': `var(--color-${string})`;
195
+ readonly 'select-search': `var(--color-${string})`;
196
+ readonly pager: `var(--color-${string})`;
197
+ readonly 'pager-hover': `var(--color-${string})`;
198
+ readonly 'pager-active': `var(--color-${string})`;
199
+ readonly 'filter-bar': `var(--color-${string})`;
200
+ readonly chip: `var(--color-${string})`;
201
+ readonly 'chip-border': `var(--color-${string})`;
202
+ readonly 'chip-foreground': `var(--color-${string})`;
203
+ readonly 'chip-remove': `var(--color-${string})`;
204
+ readonly 'field-highlight': `var(--color-${string})`;
205
+ readonly 'on-field-highlight': `var(--color-${string})`;
206
+ readonly 'field-caret': `var(--color-${string})`;
207
+ readonly 'field-button': `var(--color-${string})`;
152
208
  };
153
209
  };
154
210
  readonly spacing: {
@@ -168,6 +224,165 @@ export declare const tokens: {
168
224
  readonly 24: "6rem";
169
225
  };
170
226
  readonly spacingBase: "0.25rem";
227
+ readonly size: {
228
+ readonly 'control-xs': "21px";
229
+ readonly 'control-sm': "26px";
230
+ readonly 'control-md': "28px";
231
+ readonly 'control-lg': "33px";
232
+ readonly 'icon-xs': "25px";
233
+ readonly 'icon-sm': "27px";
234
+ readonly 'icon-md': "30px";
235
+ readonly 'icon-lg': "34px";
236
+ readonly 'button-min-xs': "3rem";
237
+ readonly 'button-min-sm': "4rem";
238
+ readonly 'button-min-md': "92px";
239
+ readonly 'button-min-lg': "108px";
240
+ readonly 'button-px-xs': "0.375rem";
241
+ readonly 'button-px-sm': "0.5rem";
242
+ readonly 'button-px-md': "0.75rem";
243
+ readonly 'button-px-lg': "1rem";
244
+ readonly 'field-px': "0.25rem";
245
+ readonly 'field-px-lg': "0.375rem";
246
+ readonly 'field-gap-sm': "0.25rem";
247
+ readonly 'field-gap-md': "0.375rem";
248
+ readonly 'field-gap-lg': "0.5rem";
249
+ readonly 'field-left-gap': "0.5rem";
250
+ readonly 'field-error-gap': "0.25rem";
251
+ readonly check: "13px";
252
+ readonly radio: "12px";
253
+ readonly 'check-gap': "4px";
254
+ readonly 'check-label-px': "1px";
255
+ readonly titlebar: "22px";
256
+ readonly 'caption-w': "20px";
257
+ readonly 'caption-h': "18px";
258
+ readonly 'caption-gap': "0px";
259
+ readonly 'caption-close-gap': "2px";
260
+ readonly 'titlebar-px': "2px";
261
+ readonly 'title-inset-start': "4px";
262
+ readonly 'title-inset-end': "28px";
263
+ readonly frame: "2px";
264
+ readonly 'dialog-px': "0.75rem";
265
+ readonly 'dialog-pt': "0.75rem";
266
+ readonly 'dialog-footer-pt': "0.5rem";
267
+ readonly 'dialog-footer-pb': "0.75rem";
268
+ readonly item: "22px";
269
+ readonly 'item-pl': "2px";
270
+ readonly 'item-pr': "0.25rem";
271
+ readonly 'item-check': "12px";
272
+ readonly 'item-gap': "2px";
273
+ readonly 'item-check-glyph': "7px";
274
+ readonly 'popover-inset': "1px";
275
+ readonly 'table-header-px': "0.25rem";
276
+ readonly 'table-cell-px': "0.375rem";
277
+ readonly 'row-sm': "22px";
278
+ readonly 'row-md': "27px";
279
+ readonly 'select-arrow': "8px";
280
+ readonly 'select-arrow-overlap': "0px";
281
+ readonly 'select-message-px': "6px";
282
+ readonly 'select-message-py': "6px";
283
+ readonly 'select-message-gap': "6px";
284
+ readonly 'select-search-p': "2px";
285
+ readonly 'select-search-gap': "0px";
286
+ readonly 'field-button-h-sm': "17px";
287
+ readonly 'field-button-h': "19px";
288
+ readonly 'field-button-h-lg': "23px";
289
+ readonly 'field-button-pr': "2px";
290
+ readonly 'field-drop-icon': "8px";
291
+ readonly 'select-pr': "2px";
292
+ readonly 'filter-bar-p': "0.25rem";
293
+ readonly 'filter-bar-gap': "0.25rem";
294
+ readonly 'chip-px': "0.375rem";
295
+ readonly 'chip-pr-remove': "0.125rem";
296
+ readonly 'toast-py': "0.5rem";
297
+ readonly 'toast-pl': "0.5rem";
298
+ readonly 'toast-pr': "0.25rem";
299
+ readonly 'toast-gap': "0.5rem";
300
+ readonly 'toast-body-gap': "0.25rem";
301
+ readonly 'toast-icon': "16px";
302
+ readonly 'toast-close-w': "20px";
303
+ readonly 'toast-close-h': "18px";
304
+ readonly 'pager-px': "0.25rem";
305
+ readonly 'pager-arrow': "8px";
306
+ readonly 'pager-focus-px': "1px";
307
+ readonly 'pager-min-sm': "0px";
308
+ readonly 'chip-sm': "23px";
309
+ readonly 'chip-md': "26px";
310
+ readonly 'badge-px-sm': "0.25rem";
311
+ readonly 'badge-px-md': "0.375rem";
312
+ readonly 'badge-dot': "5px";
313
+ readonly 'empty-p-sm': "0.75rem";
314
+ readonly 'empty-p-md': "1.5rem";
315
+ readonly 'empty-p-lg': "1.5rem";
316
+ readonly 'empty-gap': "1rem";
317
+ readonly 'tooltip-px': "0.25rem";
318
+ readonly 'tooltip-py': "1px";
319
+ readonly statusbar: "27px";
320
+ readonly 'statusbar-px': "2px";
321
+ readonly 'statusbar-py': "2px";
322
+ readonly 'statusbar-gap': "2px";
323
+ readonly 'statusbar-section-px': "0.25rem";
324
+ readonly 'statusbar-section-gap': "0.25rem";
325
+ readonly progress: "18px";
326
+ readonly 'progress-inset': "2px";
327
+ readonly 'progress-fill': "12px";
328
+ readonly 'progress-block': "8px";
329
+ readonly 'progress-period': "10px";
330
+ readonly 'progress-segment': "38px";
331
+ readonly scrollbar: "16px";
332
+ readonly 'scroll-button': "16px";
333
+ readonly 'scroll-inset': "0px";
334
+ readonly 'groupbox-top': "6px";
335
+ readonly 'groupbox-pt': "1rem";
336
+ readonly 'groupbox-legend-x': "0.5rem";
337
+ readonly 'groupbox-legend-px': "2px";
338
+ };
339
+ readonly style: {
340
+ readonly 'focus-label-width': "1px";
341
+ readonly 'focus-ring-width': "1px";
342
+ readonly 'focus-ring-style': "dotted";
343
+ readonly 'focus-outer-width': "0px";
344
+ readonly 'focus-outer-offset': "0px";
345
+ readonly 'press-shift': "1px";
346
+ readonly 'press-brightness': "1";
347
+ readonly 'dither-image': string;
348
+ readonly 'loading-image': string;
349
+ readonly 'animate-loading': "rk-dither 800ms steps(1) infinite";
350
+ readonly 'animate-busy': "none";
351
+ readonly 'animate-progress': "rk-progress-march calc(var(--rk-progress-steps, 18) * 100ms) steps(var(--rk-progress-steps, 18)) infinite";
352
+ readonly 'duration-control': "0ms";
353
+ readonly 'animate-overlay-in': "none";
354
+ readonly 'etch-width': "1px";
355
+ readonly 'caption-order': "0";
356
+ readonly 'close-order': "0";
357
+ readonly 'titlebar-icon': "flex";
358
+ readonly 'titlebar-align': "start";
359
+ readonly 'titlebar-balance': "0px";
360
+ readonly 'caption-glyph-opacity': "1";
361
+ readonly 'legend-weight': "400";
362
+ readonly 'link-decoration': "underline";
363
+ readonly 'invalid-width': "0px";
364
+ readonly 'field-error-align': "center";
365
+ readonly 'select-up': "none";
366
+ readonly 'footer-direction': "row";
367
+ readonly 'empty-direction': "row";
368
+ readonly 'empty-align': "start";
369
+ readonly 'overlay-bg': "transparent";
370
+ readonly 'popover-backdrop': "none";
371
+ readonly 'popover-border-width': "1px";
372
+ readonly 'scrollbar-buttons': "block";
373
+ readonly 'glyph-scale': "1";
374
+ readonly 'radio-fill': "0%";
375
+ readonly 'radio-dot-r': "0px";
376
+ readonly 'radio-edge': "0px";
377
+ readonly 'icon-pixels': "inline";
378
+ readonly 'icon-glyphs': "initial";
379
+ readonly 'icon-fill': "transparent";
380
+ readonly 'icon-tone-danger': "transparent";
381
+ readonly 'icon-tone-warning': "transparent";
382
+ readonly 'icon-tone-info': "transparent";
383
+ readonly 'icon-tone-success': "transparent";
384
+ readonly 'icon-tone-folder': "transparent";
385
+ };
171
386
  readonly font: {
172
387
  readonly family: {
173
388
  readonly sans: string;
@@ -210,6 +425,7 @@ export declare const tokens: {
210
425
  readonly weight: {
211
426
  readonly normal: "400";
212
427
  readonly bold: "700";
428
+ readonly strong: "700";
213
429
  };
214
430
  readonly letterSpacing: {
215
431
  readonly normal: "0em";
@@ -224,6 +440,7 @@ export declare const tokens: {
224
440
  };
225
441
  readonly radius: {
226
442
  readonly full: "9999px";
443
+ readonly pill: "0rem";
227
444
  readonly none: string;
228
445
  readonly xs: string;
229
446
  readonly sm: string;
@@ -242,6 +459,22 @@ export declare const tokens: {
242
459
  readonly status: string;
243
460
  readonly etched: string;
244
461
  readonly 'raised-thin': string;
462
+ readonly popover: "none";
463
+ readonly table: string;
464
+ readonly header: string;
465
+ readonly caption: string;
466
+ readonly statusbar: "none";
467
+ readonly titlebar: "none";
468
+ readonly checked: string;
469
+ readonly 'field-button-pressed': string;
470
+ readonly 'latched-ghost': string;
471
+ readonly 'checked-selected': string;
472
+ readonly 'toast-close': string;
473
+ readonly pager: string;
474
+ readonly 'pager-focus': string;
475
+ readonly 'pager-pressed': string;
476
+ readonly 'field-button': string;
477
+ readonly 'scroll-thumb': string;
245
478
  readonly 'scroll-x': "inset -1px 0 var(--color-bevel-shadow)";
246
479
  readonly 'sticky-header': "inset 0 -1px 0 var(--color-border)";
247
480
  };
@@ -272,6 +505,14 @@ export declare const tokens: {
272
505
  readonly exit: "cubic-bezier(0.4, 0, 1, 1)";
273
506
  };
274
507
  };
508
+ /** Each theme as the variables it declares. */
509
+ readonly themes: {
510
+ readonly win98: import('./themes').ThemeVars;
511
+ readonly modern: {
512
+ readonly light: import('./themes').ThemeVars;
513
+ readonly dark: import('./themes').ThemeVars;
514
+ };
515
+ };
275
516
  };
276
517
  /** The shape of {@link tokens}. */
277
518
  export type Tokens = typeof tokens;