@verdify/tokens 0.8.0 → 0.9.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.
@@ -34,6 +34,7 @@
34
34
  --color-status-signal-on-surface: #4d9dff;
35
35
  --color-status-caution-on-surface: #f5a623;
36
36
  --color-status-critical-on-surface: #ff4d4d;
37
+ --focus-ring-casing: #c8d0de;
37
38
  }
38
39
  [data-adaptive="night"] {
39
40
  --color-surface-canvas: #060912;
@@ -62,4 +63,5 @@
62
63
  --color-status-signal-on-surface: #4d9dff;
63
64
  --color-status-caution-on-surface: #f5a623;
64
65
  --color-status-critical-on-surface: #ff4d4d;
66
+ --focus-ring-casing: #c8d0de;
65
67
  }
package/dist/preset.css CHANGED
@@ -100,6 +100,7 @@
100
100
  --focus-ring-width: 2px;
101
101
  --focus-ring-color: #4d9dff;
102
102
  --focus-ring-offset: 2px;
103
+ --focus-ring-casing: #0b0f19;
103
104
  --font-family-sans: Inter, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
104
105
  --font-family-mono: 'JetBrains Mono', 'SF Mono', Menlo, Consolas, monospace;
105
106
  --font-weight-regular: 400;
package/dist/tokens.css CHANGED
@@ -121,8 +121,9 @@
121
121
  --container-xl: 80rem; /** Container max-width at xl breakpoint */
122
122
  --container-2xl: 96rem; /** Container max-width at 2xl breakpoint */
123
123
  --focus-ring-width: 2px; /** Focus ring width. Per WCAG 2.4.7. */
124
- --focus-ring-color: #4d9dff; /** Focus ring color — semantic.signal (#4D9DFF). Contrast ≥3:1 verified in Task 7 (contrast-validation). */
125
- --focus-ring-offset: 2px; /** Focus ring offset (gap between target and ring). */
124
+ --focus-ring-color: #4d9dff; /** Focus ring identity layer — semantic.signal (#4D9DFF). NOT ≥3:1 on light surfaces alone (2.56:1 on canvas); the casing layer carries WCAG 1.4.11 contrast (see ring.casing). */
125
+ --focus-ring-offset: 2px; /** Focus ring offset (gap between target and ring); renders the ring on the page surface, not on a filled control. */
126
+ --focus-ring-casing: #0b0f19; /** Two-tone focus ring contrast layer — the band's AAA text color, so the indicator has a ≥3:1 edge on every surface (light: dark ink ≈17:1; dark: light text ≈11:1+). Per WCAG 1.4.11. */
126
127
  --font-family-sans: Inter, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; /** Primary UI and reading family — Inter Variable per BR-1 §5.1. System fallbacks listed in priority order. */
127
128
  --font-family-mono: 'JetBrains Mono', 'SF Mono', Menlo, Consolas, monospace; /** Technical family for IDs, hashes, code, timestamps — JetBrains Mono Variable per BR-1 §5.1. */
128
129
  --font-weight-regular: 400; /** Body / paragraph weight */
package/dist/tokens.d.ts CHANGED
@@ -205,6 +205,7 @@ declare const tokens: {
205
205
  width: DesignToken;
206
206
  color: DesignToken;
207
207
  offset: DesignToken;
208
+ casing: DesignToken;
208
209
  };
209
210
  };
210
211
  font: {
package/dist/tokens.js CHANGED
@@ -2488,14 +2488,14 @@ module.exports = {
2488
2488
  $value: "#4d9dff",
2489
2489
  $type: "color",
2490
2490
  $description:
2491
- "Focus ring color — semantic.signal (#4D9DFF). Contrast ≥3:1 verified in Task 7 (contrast-validation).",
2491
+ "Focus ring identity layer — semantic.signal (#4D9DFF). NOT ≥3:1 on light surfaces alone (2.56:1 on canvas); the casing layer carries WCAG 1.4.11 contrast (see ring.casing).",
2492
2492
  filePath: "src/tokens/focus.tokens.json",
2493
2493
  isSource: true,
2494
2494
  original: {
2495
2495
  $value: "{color.semantic.signal}",
2496
2496
  $type: "color",
2497
2497
  $description:
2498
- "Focus ring color — semantic.signal (#4D9DFF). Contrast ≥3:1 verified in Task 7 (contrast-validation).",
2498
+ "Focus ring identity layer — semantic.signal (#4D9DFF). NOT ≥3:1 on light surfaces alone (2.56:1 on canvas); the casing layer carries WCAG 1.4.11 contrast (see ring.casing).",
2499
2499
  },
2500
2500
  name: "FocusRingColor",
2501
2501
  attributes: {
@@ -2508,13 +2508,15 @@ module.exports = {
2508
2508
  offset: {
2509
2509
  $value: "2px",
2510
2510
  $type: "dimension",
2511
- $description: "Focus ring offset (gap between target and ring).",
2511
+ $description:
2512
+ "Focus ring offset (gap between target and ring); renders the ring on the page surface, not on a filled control.",
2512
2513
  filePath: "src/tokens/focus.tokens.json",
2513
2514
  isSource: true,
2514
2515
  original: {
2515
2516
  $value: "2px",
2516
2517
  $type: "dimension",
2517
- $description: "Focus ring offset (gap between target and ring).",
2518
+ $description:
2519
+ "Focus ring offset (gap between target and ring); renders the ring on the page surface, not on a filled control.",
2518
2520
  },
2519
2521
  name: "FocusRingOffset",
2520
2522
  attributes: {
@@ -2524,6 +2526,27 @@ module.exports = {
2524
2526
  },
2525
2527
  path: ["focus", "ring", "offset"],
2526
2528
  },
2529
+ casing: {
2530
+ $value: "#0b0f19",
2531
+ $type: "color",
2532
+ $description:
2533
+ "Two-tone focus ring contrast layer — the band's AAA text color, so the indicator has a ≥3:1 edge on every surface (light: dark ink ≈17:1; dark: light text ≈11:1+). Per WCAG 1.4.11.",
2534
+ filePath: "src/tokens/focus.tokens.json",
2535
+ isSource: true,
2536
+ original: {
2537
+ $value: "{color.text.primary}",
2538
+ $type: "color",
2539
+ $description:
2540
+ "Two-tone focus ring contrast layer — the band's AAA text color, so the indicator has a ≥3:1 edge on every surface (light: dark ink ≈17:1; dark: light text ≈11:1+). Per WCAG 1.4.11.",
2541
+ },
2542
+ name: "FocusRingCasing",
2543
+ attributes: {
2544
+ category: "focus",
2545
+ type: "ring",
2546
+ item: "casing",
2547
+ },
2548
+ path: ["focus", "ring", "casing"],
2549
+ },
2527
2550
  },
2528
2551
  },
2529
2552
  font: {
package/dist/tokens.json CHANGED
@@ -119,6 +119,7 @@
119
119
  "FocusRingWidth": "2px",
120
120
  "FocusRingColor": "#4d9dff",
121
121
  "FocusRingOffset": "2px",
122
+ "FocusRingCasing": "#0b0f19",
122
123
  "FontFamilySans": "Inter, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif",
123
124
  "FontFamilyMono": "'JetBrains Mono', 'SF Mono', Menlo, Consolas, monospace",
124
125
  "FontWeightRegular": "400",
package/dist/tokens.mjs CHANGED
@@ -120,8 +120,9 @@ export const ContainerLg = "64rem"; // Container max-width at lg breakpoint
120
120
  export const ContainerXl = "80rem"; // Container max-width at xl breakpoint
121
121
  export const Container2xl = "96rem"; // Container max-width at 2xl breakpoint
122
122
  export const FocusRingWidth = "2px"; // Focus ring width. Per WCAG 2.4.7.
123
- export const FocusRingColor = "#4d9dff"; // Focus ring color — semantic.signal (#4D9DFF). Contrast ≥3:1 verified in Task 7 (contrast-validation).
124
- export const FocusRingOffset = "2px"; // Focus ring offset (gap between target and ring).
123
+ export const FocusRingColor = "#4d9dff"; // Focus ring identity layer — semantic.signal (#4D9DFF). NOT ≥3:1 on light surfaces alone (2.56:1 on canvas); the casing layer carries WCAG 1.4.11 contrast (see ring.casing).
124
+ export const FocusRingOffset = "2px"; // Focus ring offset (gap between target and ring); renders the ring on the page surface, not on a filled control.
125
+ export const FocusRingCasing = "#0b0f19"; // Two-tone focus ring contrast layer — the band's AAA text color, so the indicator has a ≥3:1 edge on every surface (light: dark ink ≈17:1; dark: light text ≈11:1+). Per WCAG 1.4.11.
125
126
  export const FontFamilySans =
126
127
  "Inter, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif"; // Primary UI and reading family — Inter Variable per BR-1 §5.1. System fallbacks listed in priority order.
127
128
  export const FontFamilyMono =
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@verdify/tokens",
3
- "version": "0.8.0",
3
+ "version": "0.9.0",
4
4
  "description": "Verdify design tokens — W3C DTCG sources with Tailwind v4 preset, CSS vars, JS/TS, and raw JSON outputs",
5
5
  "license": "UNLICENSED",
6
6
  "publishConfig": {
@@ -2,8 +2,9 @@
2
2
  "focus": {
3
3
  "ring": {
4
4
  "width": { "$value": "2px", "$type": "dimension", "$description": "Focus ring width. Per WCAG 2.4.7." },
5
- "color": { "$value": "{color.semantic.signal}", "$type": "color", "$description": "Focus ring color — semantic.signal (#4D9DFF). Contrast ≥3:1 verified in Task 7 (contrast-validation)." },
6
- "offset": { "$value": "2px", "$type": "dimension", "$description": "Focus ring offset (gap between target and ring)." }
5
+ "color": { "$value": "{color.semantic.signal}", "$type": "color", "$description": "Focus ring identity layer — semantic.signal (#4D9DFF). NOT ≥3:1 on light surfaces alone (2.56:1 on canvas); the casing layer carries WCAG 1.4.11 contrast (see ring.casing)." },
6
+ "offset": { "$value": "2px", "$type": "dimension", "$description": "Focus ring offset (gap between target and ring); renders the ring on the page surface, not on a filled control." },
7
+ "casing": { "$value": "{color.text.primary}", "$type": "color", "$description": "Two-tone focus ring contrast layer — the band's AAA text color, so the indicator has a ≥3:1 edge on every surface (light: dark ink ≈17:1; dark: light text ≈11:1+). Per WCAG 1.4.11." }
7
8
  }
8
9
  }
9
10
  }