@rowkit/tokens 0.2.0 → 0.4.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 CHANGED
@@ -46,7 +46,7 @@ Or in TypeScript, fully typed, when a value has to reach JavaScript:
46
46
  ```ts
47
47
  import { tokens } from '@rowkit/tokens'
48
48
 
49
- tokens.color.primary[600] // 'oklch(0.546 0.209 259)'
49
+ tokens.color.primary[800] // 'oklch(0.32 0.09 255)' — ink blue
50
50
 
51
51
  const series = [tokens.color.primary[500], tokens.color.success[500]]
52
52
  ```
package/dist/color.d.ts CHANGED
@@ -41,19 +41,26 @@ export declare const neutral: {
41
41
  readonly 900: "oklch(0.21 0.033 264)";
42
42
  readonly 950: "oklch(0.13 0.036 264)";
43
43
  };
44
- /** Brand blue (hue 259). Drives links, focus rings and primary actions. */
44
+ /**
45
+ * Ink blue (hue 255).
46
+ *
47
+ * Cool and current — the step after warm espresso. Chroma stays low so a
48
+ * solid button is ink, not a brand shout, and the selected-row wash
49
+ * (`primary-50`) reads as a cool mist instead of a pink one.
50
+ */
45
51
  export declare const primary: {
46
- readonly 50: "oklch(0.97 0.014 259)";
47
- readonly 100: "oklch(0.936 0.03 259)";
48
- readonly 200: "oklch(0.885 0.055 259)";
49
- readonly 300: "oklch(0.809 0.095 259)";
50
- readonly 400: "oklch(0.715 0.147 259)";
51
- readonly 500: "oklch(0.623 0.201 259)";
52
- readonly 600: "oklch(0.546 0.209 259)";
53
- readonly 700: "oklch(0.488 0.187 259)";
54
- readonly 800: "oklch(0.442 0.165 259)";
55
- readonly 900: "oklch(0.396 0.135 259)";
56
- readonly 950: "oklch(0.282 0.086 259)";
52
+ readonly 50: "oklch(0.975 0.011 255)";
53
+ readonly 100: "oklch(0.948 0.022 255)";
54
+ readonly 200: "oklch(0.90 0.034 255)";
55
+ readonly 300: "oklch(0.80 0.05 255)";
56
+ readonly 400: "oklch(0.68 0.07 255)";
57
+ readonly 500: "oklch(0.52 0.09 255)";
58
+ readonly 600: "oklch(0.44 0.095 255)";
59
+ readonly 700: "oklch(0.38 0.095 255)";
60
+ /** Solid actions — ink blue, deep enough for white labels. */
61
+ readonly 800: "oklch(0.32 0.09 255)";
62
+ readonly 900: "oklch(0.27 0.075 255)";
63
+ readonly 950: "oklch(0.19 0.05 255)";
57
64
  };
58
65
  /** Green (hue 152). Reserved for successful outcomes, never for brand accent. */
59
66
  export declare const success: {
@@ -121,9 +128,9 @@ export declare const gray: {
121
128
  /** the reference `--secondary`, `--muted`, `--accent` — kept for dark primary fill. */
122
129
  readonly 970: "oklch(0.97 0 0)";
123
130
  /**
124
- * Cool decorative hairline. Lighter than the reference `--border` (0.922) and
125
- * barely tinted — table row rules and card outlines that stay visible without
126
- * dividing the page into boxes.
131
+ * Cool decorative hairline / recessed fill step. Lighter than the reference
132
+ * `--border` (0.922) — table rules, card outlines, and secondary button fill
133
+ * (`surface-active`) that must read as a surface next to white outline chrome.
127
134
  */
128
135
  readonly 940: "oklch(0.940 0.004 264)";
129
136
  /** the reference `--border`. Kept for pressed fills that still need a step of weight. */
@@ -198,10 +205,16 @@ export declare const gray: {
198
205
  * on the label in both themes and still clears 4.04:1 against the dark page.
199
206
  */
200
207
  export declare const red: {
208
+ /** Soft text on a dark subtle wash. Chroma clamped for sRGB. */
209
+ readonly 850: "oklch(0.85 0.08 25)";
201
210
  /** Destructive fill. The reference design's lightness, chroma clamped. */
202
211
  readonly 577: "oklch(0.577 0.235 27.325)";
203
212
  /** Destructive hover — darkens in both themes, so the white label improves. */
204
213
  readonly 520: "oklch(0.52 0.212 27.325)";
214
+ /** Soft border on a dark subtle wash. */
215
+ readonly 350: "oklch(0.38 0.055 25)";
216
+ /** Soft fill in dark mode — quiet red wash, not a solid brick. */
217
+ readonly 260: "oklch(0.32 0.045 25)";
205
218
  };
206
219
  /**
207
220
  * Success and warning, at the reference design's weight. Keyed by lightness, like `gray`.
@@ -329,22 +342,25 @@ export declare const colorPrimitives: {
329
342
  readonly "white-alpha-15": string;
330
343
  readonly "amber-400": string;
331
344
  readonly "amber-950": string;
332
- readonly "amber-520": string;
333
- readonly "amber-880": string;
334
345
  readonly "amber-850": string;
335
- readonly "amber-550": string;
346
+ readonly "amber-520": string;
336
347
  readonly "amber-350": string;
337
348
  readonly "amber-260": string;
349
+ readonly "amber-880": string;
350
+ readonly "amber-550": string;
338
351
  readonly "green-400": string;
339
352
  readonly "green-950": string;
340
- readonly "green-520": string;
341
- readonly "green-880": string;
342
353
  readonly "green-850": string;
343
- readonly "green-550": string;
354
+ readonly "green-520": string;
344
355
  readonly "green-350": string;
345
356
  readonly "green-260": string;
357
+ readonly "green-880": string;
358
+ readonly "green-550": string;
359
+ readonly "red-850": string;
346
360
  readonly "red-577": string;
347
361
  readonly "red-520": string;
362
+ readonly "red-350": string;
363
+ readonly "red-260": string;
348
364
  readonly "gray-988": string;
349
365
  readonly "gray-985": string;
350
366
  readonly "gray-972": string;
@@ -441,19 +457,23 @@ export declare const semanticColorLight: {
441
457
  /** Barely-there separation inside a dense group. */
442
458
  readonly 'border-subtle': `var(--color-${string})`;
443
459
  /**
444
- * Boundary of an interactive control — text inputs, checkboxes, outlined
460
+ * Boundary of an interactive control — text inputs, selects, outlined
445
461
  * buttons.
446
462
  *
447
- * Cooler and a touch lighter than the old pure `gray-635`, still ≥3:1 on the
448
- * page, a card and a toolbar. Matches the cool hairline language without
449
- * dropping below WCAG 1.4.11.
463
+ * Quiet on purpose (structure without severity). Resting edges sit near the
464
+ * decorative hairline; the focus treatment (`border-ring` + ring) is what
465
+ * carries WCAG 1.4.11. Matching the reference design's soft resting edge
466
+ * rather than a 3:1 ink outline that shouted next to every field.
450
467
  */
451
468
  readonly input: `var(--color-${string})`;
452
469
  /**
453
470
  * Focus ring. Never remove the ring — recolour it.
454
471
  *
455
- * Matches the brand primary so focused controls and the primary button speak
456
- * one language. Clears 1.4.11 against the page and recessed surfaces.
472
+ * Soft silver — the payment-form / shadcn weight (`gray-708`), not ink.
473
+ * Intentionally under 3:1 as a solid; the visible treatment is
474
+ * `border-ring` plus a translucent outer ring, not a black halo.
475
+ * Every control that focuses (Button, Input, Select, Dialog close,
476
+ * Pagination, FilterBar chips, DataTable, Toast) reads this same token.
457
477
  */
458
478
  readonly ring: `var(--color-${string})`;
459
479
  /** Base colour shadows are mixed from. */
@@ -464,6 +484,10 @@ export declare const semanticColorLight: {
464
484
  readonly 'neutral-subtle': `var(--color-${string})`;
465
485
  readonly 'neutral-on-subtle': `var(--color-${string})`;
466
486
  readonly 'neutral-border': `var(--color-${string})`;
487
+ /**
488
+ * Ink-blue solid — cool, not a black brick and not a saturated brand blue.
489
+ * `primary-800` ≈ `oklch(0.32 0.09 255)`.
490
+ */
467
491
  readonly 'primary-solid': `var(--color-${string})`;
468
492
  readonly 'primary-solid-hover': `var(--color-${string})`;
469
493
  readonly 'primary-on-solid': `var(--color-${string})`;
@@ -492,11 +516,8 @@ export declare const semanticColorLight: {
492
516
  /**
493
517
  * Dark-mode semantic colours, applied under `.dark`.
494
518
  *
495
- * Solid fills use the bright `400` step with dark text rather than mirroring
496
- * light mode's `600` with white text. On a near-black page a `600` fill only
497
- * reaches 3.6–4.4:1 against the background — the button itself becomes hard to
498
- * locate even though its label is legible. The `400` fill scores 7.4–8.5:1 on
499
- * both label and background.
519
+ * Soft ink fills invert on dark pages: a near-white solid with dark type,
520
+ * rather than a mid-grey that disappears into the chrome.
500
521
  */
501
522
  export declare const semanticColorDark: {
502
523
  readonly background: `var(--color-${string})`;
@@ -515,6 +536,10 @@ export declare const semanticColorDark: {
515
536
  readonly 'border-strong': `var(--color-${string})`;
516
537
  readonly 'border-subtle': `var(--color-${string})`;
517
538
  readonly input: `var(--color-${string})`;
539
+ /**
540
+ * Soft focus — white at the same quiet weight as the control border, not a
541
+ * bright primary wash. Reads as a silver edge on dark surfaces.
542
+ */
518
543
  readonly ring: `var(--color-${string})`;
519
544
  readonly shadow: `var(--color-${string})`;
520
545
  readonly 'neutral-solid': `var(--color-${string})`;
package/dist/index.d.ts CHANGED
@@ -9,7 +9,7 @@
9
9
  * @example Typed access to a primitive
10
10
  * ```ts
11
11
  * import { tokens } from '@rowkit/tokens'
12
- * tokens.color.primary[600] // 'oklch(0.546 0.209 259)'
12
+ * tokens.color.primary[800] // 'oklch(0.32 0.09 255)' — ink blue
13
13
  * ```
14
14
  *
15
15
  * @example The stylesheet
@@ -101,21 +101,24 @@ export declare const tokens: {
101
101
  readonly 950: "oklch(0.13 0.036 264)";
102
102
  };
103
103
  readonly primary: {
104
- readonly 50: "oklch(0.97 0.014 259)";
105
- readonly 100: "oklch(0.936 0.03 259)";
106
- readonly 200: "oklch(0.885 0.055 259)";
107
- readonly 300: "oklch(0.809 0.095 259)";
108
- readonly 400: "oklch(0.715 0.147 259)";
109
- readonly 500: "oklch(0.623 0.201 259)";
110
- readonly 600: "oklch(0.546 0.209 259)";
111
- readonly 700: "oklch(0.488 0.187 259)";
112
- readonly 800: "oklch(0.442 0.165 259)";
113
- readonly 900: "oklch(0.396 0.135 259)";
114
- readonly 950: "oklch(0.282 0.086 259)";
104
+ readonly 50: "oklch(0.975 0.011 255)";
105
+ readonly 100: "oklch(0.948 0.022 255)";
106
+ readonly 200: "oklch(0.90 0.034 255)";
107
+ readonly 300: "oklch(0.80 0.05 255)";
108
+ readonly 400: "oklch(0.68 0.07 255)";
109
+ readonly 500: "oklch(0.52 0.09 255)";
110
+ readonly 600: "oklch(0.44 0.095 255)";
111
+ readonly 700: "oklch(0.38 0.095 255)";
112
+ readonly 800: "oklch(0.32 0.09 255)";
113
+ readonly 900: "oklch(0.27 0.075 255)";
114
+ readonly 950: "oklch(0.19 0.05 255)";
115
115
  };
116
116
  readonly red: {
117
+ readonly 850: "oklch(0.85 0.08 25)";
117
118
  readonly 577: "oklch(0.577 0.235 27.325)";
118
119
  readonly 520: "oklch(0.52 0.212 27.325)";
120
+ readonly 350: "oklch(0.38 0.055 25)";
121
+ readonly 260: "oklch(0.32 0.045 25)";
119
122
  };
120
123
  readonly success: {
121
124
  readonly 50: "oklch(0.97 0.014 152)";
@@ -218,22 +221,25 @@ export declare const tokens: {
218
221
  readonly "white-alpha-15": string;
219
222
  readonly "amber-400": string;
220
223
  readonly "amber-950": string;
221
- readonly "amber-520": string;
222
- readonly "amber-880": string;
223
224
  readonly "amber-850": string;
224
- readonly "amber-550": string;
225
+ readonly "amber-520": string;
225
226
  readonly "amber-350": string;
226
227
  readonly "amber-260": string;
228
+ readonly "amber-880": string;
229
+ readonly "amber-550": string;
227
230
  readonly "green-400": string;
228
231
  readonly "green-950": string;
229
- readonly "green-520": string;
230
- readonly "green-880": string;
231
232
  readonly "green-850": string;
232
- readonly "green-550": string;
233
+ readonly "green-520": string;
233
234
  readonly "green-350": string;
234
235
  readonly "green-260": string;
236
+ readonly "green-880": string;
237
+ readonly "green-550": string;
238
+ readonly "red-850": string;
235
239
  readonly "red-577": string;
236
240
  readonly "red-520": string;
241
+ readonly "red-350": string;
242
+ readonly "red-260": string;
237
243
  readonly "gray-988": string;
238
244
  readonly "gray-985": string;
239
245
  readonly "gray-972": string;
@@ -438,7 +444,7 @@ export declare const tokens: {
438
444
  readonly lg: string;
439
445
  readonly xl: string;
440
446
  };
441
- readonly radiusBase: "0.625rem";
447
+ readonly radiusBase: "0.5rem";
442
448
  readonly blur: {
443
449
  readonly overlay: "4px";
444
450
  };
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  //#region package.json
2
- var e = "0.2.0", t = { overlay: "4px" }, n = [
2
+ var e = "0.4.0", t = { overlay: "4px" }, n = [
3
3
  50,
4
4
  100,
5
5
  200,
@@ -24,17 +24,17 @@ var e = "0.2.0", t = { overlay: "4px" }, n = [
24
24
  900: "oklch(0.21 0.033 264)",
25
25
  950: "oklch(0.13 0.036 264)"
26
26
  }, i = {
27
- 50: "oklch(0.97 0.014 259)",
28
- 100: "oklch(0.936 0.03 259)",
29
- 200: "oklch(0.885 0.055 259)",
30
- 300: "oklch(0.809 0.095 259)",
31
- 400: "oklch(0.715 0.147 259)",
32
- 500: "oklch(0.623 0.201 259)",
33
- 600: "oklch(0.546 0.209 259)",
34
- 700: "oklch(0.488 0.187 259)",
35
- 800: "oklch(0.442 0.165 259)",
36
- 900: "oklch(0.396 0.135 259)",
37
- 950: "oklch(0.282 0.086 259)"
27
+ 50: "oklch(0.975 0.011 255)",
28
+ 100: "oklch(0.948 0.022 255)",
29
+ 200: "oklch(0.90 0.034 255)",
30
+ 300: "oklch(0.80 0.05 255)",
31
+ 400: "oklch(0.68 0.07 255)",
32
+ 500: "oklch(0.52 0.09 255)",
33
+ 600: "oklch(0.44 0.095 255)",
34
+ 700: "oklch(0.38 0.095 255)",
35
+ 800: "oklch(0.32 0.09 255)",
36
+ 900: "oklch(0.27 0.075 255)",
37
+ 950: "oklch(0.19 0.05 255)"
38
38
  }, a = {
39
39
  50: "oklch(0.97 0.014 152)",
40
40
  100: "oklch(0.936 0.036 152)",
@@ -90,8 +90,11 @@ var e = "0.2.0", t = { overlay: "4px" }, n = [
90
90
  205: "oklch(0.205 0 0)",
91
91
  145: "oklch(0.145 0 0)"
92
92
  }, l = {
93
+ 850: "oklch(0.85 0.08 25)",
93
94
  577: "oklch(0.577 0.235 27.325)",
94
- 520: "oklch(0.52 0.212 27.325)"
95
+ 520: "oklch(0.52 0.212 27.325)",
96
+ 350: "oklch(0.38 0.055 25)",
97
+ 260: "oklch(0.32 0.045 25)"
95
98
  }, u = {
96
99
  950: "oklch(0.95 0.05 152)",
97
100
  880: "oklch(0.88 0.05 152)",
@@ -154,8 +157,8 @@ var g = (e) => `var(--color-${e})`, _ = {
154
157
  border: g("gray-940"),
155
158
  "border-strong": g("gray-905"),
156
159
  "border-subtle": g("gray-972"),
157
- input: g("gray-642"),
158
- ring: g("primary-600"),
160
+ input: g("gray-870"),
161
+ ring: g("gray-708"),
159
162
  shadow: g("black"),
160
163
  "neutral-solid": g("gray-972"),
161
164
  "neutral-solid-hover": g("gray-940"),
@@ -163,11 +166,11 @@ var g = (e) => `var(--color-${e})`, _ = {
163
166
  "neutral-subtle": g("gray-972"),
164
167
  "neutral-on-subtle": g("gray-205"),
165
168
  "neutral-border": g("gray-940"),
166
- "primary-solid": g("primary-600"),
167
- "primary-solid-hover": g("primary-700"),
168
- "primary-on-solid": g("white"),
169
+ "primary-solid": g("primary-800"),
170
+ "primary-solid-hover": g("primary-900"),
171
+ "primary-on-solid": g("gray-985"),
169
172
  "primary-subtle": g("primary-50"),
170
- "primary-on-subtle": g("primary-700"),
173
+ "primary-on-subtle": g("primary-900"),
171
174
  "primary-border": g("primary-200"),
172
175
  "success-solid": g("green-550"),
173
176
  "success-solid-hover": g("green-520"),
@@ -184,7 +187,7 @@ var g = (e) => `var(--color-${e})`, _ = {
184
187
  "danger-solid": g("red-577"),
185
188
  "danger-solid-hover": g("red-520"),
186
189
  "danger-on-solid": g("white"),
187
- "danger-subtle": g("danger-50"),
190
+ "danger-subtle": g("danger-100"),
188
191
  "danger-on-subtle": g("danger-700"),
189
192
  "danger-border": g("danger-200")
190
193
  }, v = {
@@ -193,7 +196,7 @@ var g = (e) => `var(--color-${e})`, _ = {
193
196
  muted: g("gray-269"),
194
197
  accent: g("gray-269"),
195
198
  "surface-active": g("gray-371"),
196
- "surface-selected": g("primary-950"),
199
+ "surface-selected": g("gray-269"),
197
200
  "surface-disabled": g("gray-269"),
198
201
  skeleton: g("gray-269"),
199
202
  foreground: g("gray-985"),
@@ -204,7 +207,7 @@ var g = (e) => `var(--color-${e})`, _ = {
204
207
  "border-strong": g("white-alpha-15"),
205
208
  "border-subtle": g("white-alpha-8"),
206
209
  input: g("white-alpha-15"),
207
- ring: g("primary-400"),
210
+ ring: g("white-alpha-15"),
208
211
  shadow: g("black"),
209
212
  "neutral-solid": g("gray-269"),
210
213
  "neutral-solid-hover": g("gray-371"),
@@ -212,12 +215,12 @@ var g = (e) => `var(--color-${e})`, _ = {
212
215
  "neutral-subtle": g("gray-269"),
213
216
  "neutral-on-subtle": g("gray-985"),
214
217
  "neutral-border": g("gray-371"),
215
- "primary-solid": g("primary-400"),
216
- "primary-solid-hover": g("primary-300"),
217
- "primary-on-solid": g("gray-145"),
218
- "primary-subtle": g("primary-950"),
219
- "primary-on-subtle": g("primary-300"),
220
- "primary-border": g("primary-800"),
218
+ "primary-solid": g("primary-100"),
219
+ "primary-solid-hover": g("primary-50"),
220
+ "primary-on-solid": g("primary-900"),
221
+ "primary-subtle": g("primary-900"),
222
+ "primary-on-subtle": g("primary-200"),
223
+ "primary-border": g("primary-700"),
221
224
  "success-solid": g("green-550"),
222
225
  "success-solid-hover": g("green-520"),
223
226
  "success-on-solid": g("white"),
@@ -233,9 +236,9 @@ var g = (e) => `var(--color-${e})`, _ = {
233
236
  "danger-solid": g("red-577"),
234
237
  "danger-solid-hover": g("red-520"),
235
238
  "danger-on-solid": g("white"),
236
- "danger-subtle": g("danger-950"),
237
- "danger-on-subtle": g("danger-300"),
238
- "danger-border": g("danger-800")
239
+ "danger-subtle": g("red-260"),
240
+ "danger-on-subtle": g("red-850"),
241
+ "danger-border": g("red-350")
239
242
  }, y = {
240
243
  instant: "0ms",
241
244
  fast: "120ms",
@@ -246,7 +249,7 @@ var g = (e) => `var(--color-${e})`, _ = {
246
249
  standard: "cubic-bezier(0.2, 0, 0, 1)",
247
250
  enter: "cubic-bezier(0, 0, 0.2, 1)",
248
251
  exit: "cubic-bezier(0.4, 0, 1, 1)"
249
- }, x = "0.625rem", S = {
252
+ }, x = "0.5rem", S = {
250
253
  none: 0,
251
254
  xs: .4,
252
255
  sm: .6,
@@ -294,6 +297,8 @@ var O = {
294
297
  24: "6rem"
295
298
  }, A = "0.25rem", j = {
296
299
  sans: [
300
+ "\"Geist Variable\"",
301
+ "Geist",
297
302
  "ui-sans-serif",
298
303
  "system-ui",
299
304
  "-apple-system",
@@ -304,6 +309,8 @@ var O = {
304
309
  "sans-serif"
305
310
  ].join(", "),
306
311
  mono: [
312
+ "\"Geist Mono Variable\"",
313
+ "Geist Mono",
307
314
  "ui-monospace",
308
315
  "SFMono-Regular",
309
316
  "Menlo",