@orange-halo/tokens 1.0.0 → 2.1.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.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$description": "Component Design Tokens — Orange Halo Visual DNA applied. Each component has personality knobs.",
3
3
  "color": {
4
- "$description": "Warm color palette with nostalgic character. No pure white, no blue-gray.",
4
+ "$description": "Warm palette with nostalgic character. Neutrals are always warm; blue is the deliberate accent.",
5
5
  "orange": {
6
6
  "50": "#fff3e0",
7
7
  "100": "#ffe0b2",
@@ -26,6 +26,7 @@
26
26
  "600": "#b87a24",
27
27
  "700": "#8c5e1c",
28
28
  "800": "#6b4815",
29
+ "900": "#3d3529",
29
30
  "$description": "Warm highlight — golden warmth for accents and feedback"
30
31
  },
31
32
  "terracotta": {
@@ -52,33 +53,47 @@
52
53
  "700": "#3f5c5d",
53
54
  "800": "#344a4b",
54
55
  "900": "#2a3c3d",
55
- "$description": "Nostalgic accent — muted teal, the retro counterbalance"
56
+ "$description": "Reserve palette — not used by semantic tokens"
56
57
  },
57
58
  "warm": {
58
59
  "$description": "Warm neutral scale — cream to walnut, no blue-gray",
59
60
  "cream": "#faf7f2",
60
61
  "linen": "#f5f0e8",
62
+ "dawn": "#fffbf5",
63
+ "shell": "#fdf6ee",
64
+ "biscuit": "#f8efe4",
61
65
  "parchment": "#ede8df",
62
66
  "sand": "#e2dcd2",
63
67
  "dune": "#c9c1b4",
68
+ "stone": "#a09080",
69
+ "taupe": "#8a7a68",
64
70
  "driftwood": "#6b5d4d",
65
71
  "bark": "#52463a",
66
- "walnut": "#3d3229"
72
+ "hickory": "#4a3f33",
73
+ "chestnut": "#44382c",
74
+ "walnut": "#3d3229",
75
+ "mocha": "#352e28",
76
+ "cocoa": "#2a2420",
77
+ "espresso": "#1f1a17"
67
78
  },
68
79
  "green": {
69
80
  "50": "#f0f7f1",
70
81
  "100": "#d9edd9",
82
+ "300": "#7ab87c",
71
83
  "500": "#5a9a5c",
72
84
  "600": "#4a8a4c",
73
85
  "700": "#3d7340",
86
+ "900": "#2a3629",
74
87
  "$description": "Success — warm-tinted green"
75
88
  },
76
89
  "red": {
77
90
  "50": "#fdf4f3",
78
91
  "100": "#f9e0dc",
92
+ "300": "#e08f8d",
79
93
  "500": "#c75450",
80
94
  "600": "#b54540",
81
95
  "700": "#943836",
96
+ "900": "#3d2a29",
82
97
  "$description": "Error — warm-tinted red"
83
98
  },
84
99
  "blue": {
@@ -100,7 +115,6 @@
100
115
  "primaryHover": "#9e3500",
101
116
  "primaryActive": "#9e3500",
102
117
  "primarySubtle": "#fff3e0",
103
- "primaryMuted": "#ffe0b2",
104
118
  "highlight": "#e8a838",
105
119
  "highlightSubtle": "#fdf3d4"
106
120
  },
@@ -110,25 +124,20 @@
110
124
  "hover": "#354f70",
111
125
  "active": "#2e4460",
112
126
  "subtle": "#eef4f9",
113
- "muted": "#d6e4f0",
114
127
  "shadow": "#a0b4c8"
115
128
  },
116
129
  "feedback": {
117
130
  "$description": "Feedback colors — warm-tinted",
118
- "success": "#4a8a4c",
131
+ "success": "#3d7340",
119
132
  "successSubtle": "#f0f7f1",
120
- "successMuted": "#d9edd9",
121
133
  "error": "#b54540",
122
134
  "errorHover": "#943836",
123
135
  "errorSubtle": "#fdf4f3",
124
- "errorMuted": "#f9e0dc",
125
136
  "errorShadow": "#b545404d",
126
137
  "warning": "#8c5e1c",
127
138
  "warningSubtle": "#fefaee",
128
- "warningMuted": "#fdf3d4",
129
139
  "info": "#3d5a80",
130
- "infoSubtle": "#eef4f9",
131
- "infoMuted": "#d6e4f0"
140
+ "infoSubtle": "#eef4f9"
132
141
  },
133
142
  "surface": {
134
143
  "$description": "Surface system — designed surfaces, not flat planes",
@@ -136,22 +145,28 @@
136
145
  "raised": "#f5f0e8",
137
146
  "sunlit": "#faf7f2",
138
147
  "inset": "#ede8df",
139
- "white": "#ffffff",
148
+ "highlight": "#ffffff",
140
149
  "overlay": "#3d322966",
141
150
  "disabled": "#e2dcd2",
142
151
  "hover": "#fff4e6",
143
- "activePressed": "#f0ebe3"
152
+ "activePressed": "#f0ebe3",
153
+ "featuredStart": "#fffbf5",
154
+ "featuredMid": "#fdf6ee",
155
+ "featuredEnd": "#f8efe4",
156
+ "sheen": "#ffffff80",
157
+ "backdrop": "#3d322999"
144
158
  },
145
159
  "border": {
146
160
  "$description": "Border colors — visible and intentional",
147
161
  "default": "#e2dcd2",
148
162
  "subtle": "#ede8df",
149
163
  "emphasis": "#6b5d4d",
164
+ "strong": "#c9c1b4",
150
165
  "hover": "#8b4726",
151
- "focus": "#c54300",
152
- "focusInner": "#c54300",
153
166
  "disabled": "#ede8df",
154
- "brand": "#c5430040"
167
+ "brand": "#c5430040",
168
+ "brandHover": "#c5430059",
169
+ "divider": "#e2d5c899"
155
170
  },
156
171
  "text": {
157
172
  "$description": "Text colors — calm and readable, not stark",
@@ -161,9 +176,14 @@
161
176
  "inverse": "#faf7f2",
162
177
  "link": "#c54300",
163
178
  "linkHover": "#9e3500",
179
+ "linkRaised": "#9e3500",
164
180
  "brand": "#c54300",
165
181
  "onBrand": "#ffffff",
166
- "onAccent": "#ffffff"
182
+ "onAccent": "#ffffff",
183
+ "onSuccess": "#ffffff",
184
+ "onError": "#ffffff",
185
+ "onWarning": "#ffffff",
186
+ "onInfo": "#ffffff"
167
187
  }
168
188
  },
169
189
  "font": {
@@ -207,43 +227,8 @@
207
227
  "tight": "-0.01em",
208
228
  "normal": "0",
209
229
  "wide": "0.01em",
210
- "wider": "0.02em"
211
- }
212
- },
213
- "spacing": {
214
- "0": "0",
215
- "1": "0.25rem",
216
- "2": "0.5rem",
217
- "3": "0.75rem",
218
- "4": "1rem",
219
- "5": "1.25rem",
220
- "6": "1.5rem",
221
- "7": "1.75rem",
222
- "8": "2rem",
223
- "10": "2.5rem",
224
- "12": "3rem",
225
- "16": "4rem",
226
- "20": "5rem",
227
- "$description": "Generous spacing — breathing room, not dense",
228
- "px": "1px",
229
- "0-5": "0.125rem",
230
- "1-5": "0.375rem",
231
- "2-5": "0.625rem",
232
- "3-5": "0.875rem",
233
- "layout": {
234
- "$description": "Generous layout spacing",
235
- "page": "1.5rem",
236
- "section": "3rem",
237
- "stack": "1.25rem",
238
- "inline": "1rem"
239
- },
240
- "component": {
241
- "$description": "Component-level spacing",
242
- "xs": "0.375rem",
243
- "sm": "0.625rem",
244
- "md": "0.875rem",
245
- "lg": "1.25rem",
246
- "xl": "1.75rem"
230
+ "wider": "0.02em",
231
+ "widest": "0.05em"
247
232
  }
248
233
  },
249
234
  "radius": {
@@ -269,16 +254,35 @@
269
254
  "primary": "#e8c4a0",
270
255
  "secondary": "#d4c4b0",
271
256
  "accent": "#a0b4c8",
272
- "error": "#b545404d"
257
+ "error": "#b545404d",
258
+ "driftwood": "#6b5d4d26",
259
+ "driftwoodHover": "#6b5d4d33",
260
+ "driftwoodDeep": "#6b5d4d40",
261
+ "walnut": "#3d322926"
262
+ },
263
+ "layered": {
264
+ "$description": "Layered surface shadows: soft drop shadows with a top highlight, so cards feel like physical objects",
265
+ "flat": "0 1px 2px rgba(61, 50, 41, 0.04), inset 0 1px 0 rgba(255, 255, 255, 0.6)",
266
+ "raised": "0 2px 6px rgba(61, 50, 41, 0.08), 0 6px 16px rgba(61, 50, 41, 0.05), inset 0 1px 0 rgba(255, 255, 255, 0.8)",
267
+ "lifted": "0 4px 12px rgba(61, 50, 41, 0.1), 0 12px 28px rgba(61, 50, 41, 0.08), inset 0 1px 0 rgba(255, 255, 255, 0.9)",
268
+ "pressed": "0 1px 3px rgba(61, 50, 41, 0.1), 0 3px 8px rgba(61, 50, 41, 0.06), inset 0 1px 2px rgba(61, 50, 41, 0.04)",
269
+ "focused": "0 2px 6px rgba(61, 50, 41, 0.08), inset 0 1px 0 rgba(255, 255, 255, 0.8)",
270
+ "sunlit": "0 2px 8px rgba(139, 69, 19, 0.08), 0 8px 24px rgba(139, 69, 19, 0.06), 0 0 20px rgba(197, 67, 0, 0.04), inset 0 1px 0 rgba(255, 255, 255, 0.9)",
271
+ "sunlitLifted": "0 4px 12px rgba(139, 69, 19, 0.12), 0 12px 32px rgba(139, 69, 19, 0.08), 0 0 28px rgba(197, 67, 0, 0.06), inset 0 1px 0 rgba(255, 255, 255, 1)",
272
+ "sunlitFocused": "0 2px 8px rgba(139, 69, 19, 0.08), inset 0 1px 0 rgba(255, 255, 255, 0.9)"
273
273
  },
274
274
  "primary": "#e8c4a0",
275
275
  "secondary": "#d4c4b0",
276
276
  "accent": "#a0b4c8",
277
- "error": "#b545404d"
277
+ "error": "#b545404d",
278
+ "neutral": "#6b5d4d26",
279
+ "neutralHover": "#6b5d4d33",
280
+ "overlay": "#6b5d4d40",
281
+ "field": "#3d322926"
278
282
  },
279
283
  "gradient": {
280
284
  "$description": "Soft, nostalgic gradients — never high-contrast or flashy",
281
- "sunlit": "linear-gradient(180deg, #FAF7F2 0%, #F5EFE4 100%)",
285
+ "sunlit": "linear-gradient(180deg, #fffbf5 0%, #fdf6ee 30%, #f8efe4 100%)",
282
286
  "warm": "linear-gradient(135deg, #C54300 0%, #FF9800 100%)",
283
287
  "nostalgic": "linear-gradient(180deg, #F5F0E8 0%, #EDE8DF 100%)"
284
288
  },
@@ -346,7 +350,61 @@
346
350
  "0": "0",
347
351
  "1": "1px",
348
352
  "2": "2px",
349
- "$description": "Border widths"
353
+ "$description": "Border widths",
354
+ "chunky": "2.5px"
355
+ }
356
+ },
357
+ "spacing": {
358
+ "0": "0",
359
+ "1": "0.25rem",
360
+ "2": "0.5rem",
361
+ "3": "0.75rem",
362
+ "4": "1rem",
363
+ "5": "1.25rem",
364
+ "6": "1.5rem",
365
+ "7": "1.75rem",
366
+ "8": "2rem",
367
+ "10": "2.5rem",
368
+ "12": "3rem",
369
+ "16": "4rem",
370
+ "20": "5rem",
371
+ "$description": "Generous spacing — breathing room, not dense",
372
+ "px": "1px",
373
+ "0-5": "0.125rem",
374
+ "1-5": "0.375rem",
375
+ "2-5": "0.625rem",
376
+ "3-5": "0.875rem",
377
+ "layout": {
378
+ "$description": "Generous layout spacing",
379
+ "page": "1.5rem",
380
+ "section": "3rem",
381
+ "stack": "1.25rem",
382
+ "inline": "1rem"
383
+ },
384
+ "component": {
385
+ "$description": "Component-level spacing",
386
+ "xs": "0.375rem",
387
+ "sm": "0.625rem",
388
+ "md": "0.875rem",
389
+ "lg": "1.25rem",
390
+ "xl": "1.75rem"
391
+ }
392
+ },
393
+ "size": {
394
+ "$description": "Fixed layout sizes: content widths and viewport breakpoints",
395
+ "container": {
396
+ "$description": "Content max-widths",
397
+ "sm": "640px",
398
+ "md": "768px",
399
+ "lg": "1024px",
400
+ "xl": "1280px"
401
+ },
402
+ "breakpoint": {
403
+ "$description": "Viewport widths for @media queries. CSS can't read custom properties in a media query, so components write the value; check:tokens fails any (min|max)-width that isn't one of these (or one pixel either side, for adjoining ranges).",
404
+ "xs": "480px",
405
+ "sm": "640px",
406
+ "md": "768px",
407
+ "lg": "1024px"
350
408
  }
351
409
  },
352
410
  "zIndex": {
@@ -372,7 +430,7 @@
372
430
  },
373
431
  "h2": {
374
432
  "fontSize": "2rem",
375
- "fontWeight": "600",
433
+ "fontWeight": "700",
376
434
  "lineHeight": 1.25,
377
435
  "letterSpacing": "-0.01em"
378
436
  },
@@ -384,7 +442,7 @@
384
442
  },
385
443
  "h4": {
386
444
  "fontSize": "1.25rem",
387
- "fontWeight": "500",
445
+ "fontWeight": "600",
388
446
  "lineHeight": 1.35,
389
447
  "letterSpacing": "0"
390
448
  },
@@ -401,6 +459,12 @@
401
459
  },
402
460
  "body": {
403
461
  "fontFamily": "'Bricolage Grotesque', 'General Sans', -apple-system, BlinkMacSystemFont, sans-serif",
462
+ "xl": {
463
+ "$description": "Lead paragraphs and hero subtitles",
464
+ "fontSize": "1.25rem",
465
+ "fontWeight": "400",
466
+ "lineHeight": 1.5
467
+ },
404
468
  "lg": {
405
469
  "fontSize": "1.125rem",
406
470
  "fontWeight": "400",
@@ -439,18 +503,51 @@
439
503
  "letterSpacing": "0.01em"
440
504
  }
441
505
  },
506
+ "eyebrow": {
507
+ "$description": "Small uppercase line above a heading (set text-transform: uppercase alongside)",
508
+ "fontFamily": "'Bricolage Grotesque', 'General Sans', -apple-system, BlinkMacSystemFont, sans-serif",
509
+ "fontSize": "1rem",
510
+ "fontWeight": "500",
511
+ "letterSpacing": "0.05em"
512
+ },
513
+ "control": {
514
+ "$description": "Buttons, field labels, legends, select triggers and options, choice labels",
515
+ "fontFamily": "'Bricolage Grotesque', 'General Sans', -apple-system, BlinkMacSystemFont, sans-serif",
516
+ "fontWeight": "600",
517
+ "letterSpacing": "0.01em",
518
+ "fontSize": {
519
+ "sm": "1rem",
520
+ "md": "1.125rem",
521
+ "lg": "1.25rem"
522
+ }
523
+ },
524
+ "emphasis": {
525
+ "$description": "Inline emphasis inside body text: links, the selected option",
526
+ "fontWeight": "600"
527
+ },
442
528
  "code": {
443
529
  "fontFamily": "'JetBrains Mono', 'Fira Code', ui-monospace, monospace",
444
530
  "fontSize": "0.875rem",
445
531
  "lineHeight": 1.5
446
532
  }
447
533
  },
534
+ "layout": {
535
+ "$description": "Layout sizes",
536
+ "container": {
537
+ "$description": "Max-width of a centred content column (oh-container, oh-hero)",
538
+ "sm": "640px",
539
+ "md": "768px",
540
+ "lg": "1024px",
541
+ "xl": "1280px"
542
+ }
543
+ },
448
544
  "shape": {
449
545
  "$description": "Friendly soft corners",
450
- "interactive": "6px",
546
+ "control": "10px",
451
547
  "container": "10px",
452
548
  "large": "14px",
453
- "small": "4px",
549
+ "compact": "6px",
550
+ "tight": "4px",
454
551
  "pill": "9999px"
455
552
  },
456
553
  "elevation": {
@@ -460,19 +557,60 @@
460
557
  "medium": "0 4px 16px rgba(61, 50, 41, 0.08), 0 2px 6px rgba(61, 50, 41, 0.06)",
461
558
  "strong": "0 8px 24px rgba(61, 50, 41, 0.10), 0 4px 8px rgba(61, 50, 41, 0.06)",
462
559
  "glow": "0 0 0 3px rgba(197, 67, 0, 0.2), 0 0 12px rgba(197, 67, 0, 0.1)",
463
- "inset": "inset 0 1px 3px rgba(61, 50, 41, 0.08)"
560
+ "inset": "inset 0 1px 3px rgba(61, 50, 41, 0.08)",
561
+ "surface": {
562
+ "$description": "Card surfaces, by state. Featured is the sunlit card",
563
+ "flat": "0 1px 2px rgba(61, 50, 41, 0.04), inset 0 1px 0 rgba(255, 255, 255, 0.6)",
564
+ "raised": "0 2px 6px rgba(61, 50, 41, 0.08), 0 6px 16px rgba(61, 50, 41, 0.05), inset 0 1px 0 rgba(255, 255, 255, 0.8)",
565
+ "lifted": "0 4px 12px rgba(61, 50, 41, 0.1), 0 12px 28px rgba(61, 50, 41, 0.08), inset 0 1px 0 rgba(255, 255, 255, 0.9)",
566
+ "pressed": "0 1px 3px rgba(61, 50, 41, 0.1), 0 3px 8px rgba(61, 50, 41, 0.06), inset 0 1px 2px rgba(61, 50, 41, 0.04)",
567
+ "focused": "0 2px 6px rgba(61, 50, 41, 0.08), inset 0 1px 0 rgba(255, 255, 255, 0.8)",
568
+ "featured": "0 2px 8px rgba(139, 69, 19, 0.08), 0 8px 24px rgba(139, 69, 19, 0.06), 0 0 20px rgba(197, 67, 0, 0.04), inset 0 1px 0 rgba(255, 255, 255, 0.9)",
569
+ "featuredLifted": "0 4px 12px rgba(139, 69, 19, 0.12), 0 12px 32px rgba(139, 69, 19, 0.08), 0 0 28px rgba(197, 67, 0, 0.06), inset 0 1px 0 rgba(255, 255, 255, 1)",
570
+ "featuredFocused": "0 2px 8px rgba(139, 69, 19, 0.08), inset 0 1px 0 rgba(255, 255, 255, 0.9)"
571
+ },
572
+ "offset": {
573
+ "$description": "How far solid offset shadows sit from the element, from pressed (xs) to dialogs (2xl). The colour comes from shadow.*. A flat brand sets every step to 0",
574
+ "xs": "1px",
575
+ "sm": "2px",
576
+ "md": "3px",
577
+ "lg": "4px",
578
+ "xl": "5px",
579
+ "2xl": "6px"
580
+ }
581
+ },
582
+ "lift": {
583
+ "$description": "How far elements move on hover (negative: up and left, towards the viewer) and when pressed (positive: into the page). A still brand sets every step to 0",
584
+ "hoverSm": "-1px",
585
+ "hoverMd": "-2px",
586
+ "pressSm": "1px",
587
+ "pressMd": "2px"
588
+ },
589
+ "stroke": {
590
+ "$description": "Border widths by role",
591
+ "control": "2.5px",
592
+ "surface": "1px",
593
+ "divider": "1px"
594
+ },
595
+ "decoration": {
596
+ "$description": "Link underlines. Orange Halo's are dashed: a dash, then a gap, repeating every period. A solid underline sets dash and period to the same value",
597
+ "underlineThickness": "2px",
598
+ "underlineFocusThickness": "3px",
599
+ "underlineDash": "4px",
600
+ "underlinePeriod": "8px"
464
601
  },
465
602
  "focus": {
466
603
  "$description": "Warm, friendly focus ring",
467
604
  "ringWidth": "3px",
468
- "ringColor": "#c5430059",
605
+ "ringOffset": "2px",
606
+ "ringColor": "#c54300",
469
607
  "glowColor": "#c5430026"
470
608
  },
471
609
  "button": {
472
610
  "$description": "Button — chunky, tactile, playful with offset shadows",
473
611
  "base": {
474
612
  "fontFamily": "'Bricolage Grotesque', 'General Sans', -apple-system, BlinkMacSystemFont, sans-serif",
475
- "fontWeight": "500",
613
+ "fontWeight": "600",
476
614
  "letterSpacing": "0.01em",
477
615
  "borderRadius": "10px",
478
616
  "borderWidth": "2.5px",
@@ -485,25 +623,26 @@
485
623
  ]
486
624
  },
487
625
  "size": {
626
+ "$description": "Matches oh-button.ts, which reads these. Minimum 16px text",
488
627
  "sm": {
489
- "fontSize": "0.875rem",
490
- "paddingX": "0.75rem",
628
+ "fontSize": "1rem",
629
+ "paddingX": "1rem",
491
630
  "paddingY": "0.5rem",
492
- "minHeight": "36px",
493
- "gap": "0.375rem"
631
+ "minHeight": "40px",
632
+ "gap": "0.5rem"
494
633
  },
495
634
  "md": {
496
- "fontSize": "0.875rem",
497
- "paddingX": "1rem",
498
- "paddingY": "0.625rem",
499
- "minHeight": "44px",
635
+ "fontSize": "1.125rem",
636
+ "paddingX": "1.5rem",
637
+ "paddingY": "0.75rem",
638
+ "minHeight": "48px",
500
639
  "gap": "0.5rem"
501
640
  },
502
641
  "lg": {
503
- "fontSize": "1rem",
504
- "paddingX": "1.5rem",
505
- "paddingY": "0.875rem",
506
- "minHeight": "52px",
642
+ "fontSize": "1.25rem",
643
+ "paddingX": "2rem",
644
+ "paddingY": "1rem",
645
+ "minHeight": "56px",
507
646
  "gap": "0.625rem"
508
647
  }
509
648
  },
@@ -520,7 +659,7 @@
520
659
  "secondary": {
521
660
  "$description": "Secondary — cream surface with emphasis border",
522
661
  "background": "#faf7f2",
523
- "backgroundHover": "#ffffff",
662
+ "backgroundHover": "#fff4e6",
524
663
  "backgroundActive": "#f0ebe3",
525
664
  "color": "#3d3229",
526
665
  "borderColor": "#6b5d4d",
@@ -537,9 +676,8 @@
537
676
  }
538
677
  },
539
678
  "focus": {
540
- "$description": "Warm, friendly focus ring",
541
- "ringWidth": "3px",
542
- "ringColor": "#c5430059",
679
+ "$description": "Focus is an underline in focus.ringColor; glow is decoration",
680
+ "ringColor": "#c54300",
543
681
  "glowColor": "#c5430026"
544
682
  }
545
683
  },
@@ -593,7 +731,7 @@
593
731
  "$description": "Card — raised surface with visible frame",
594
732
  "base": {
595
733
  "background": "#f5f0e8",
596
- "borderRadius": "10px",
734
+ "borderRadius": "14px",
597
735
  "borderWidth": "1px",
598
736
  "borderColor": "#e2dcd2",
599
737
  "shadow": "0 2px 8px rgba(61, 50, 41, 0.06), 0 1px 3px rgba(61, 50, 41, 0.08)",
@@ -612,21 +750,56 @@
612
750
  "borderColorHover": "#c5430040",
613
751
  "shadowHover": "0 4px 16px rgba(61, 50, 41, 0.08), 0 2px 6px rgba(61, 50, 41, 0.06)"
614
752
  },
753
+ "raised": {
754
+ "$description": "Raised card (default) — subtle top-lit gradient",
755
+ "gradientStart": "#ffffff",
756
+ "gradientMid": "#faf7f2",
757
+ "gradientEnd": "#f5f0e8",
758
+ "borderColor": "#e2dcd2"
759
+ },
760
+ "flat": {
761
+ "$description": "Flat card — border-led, minimal shadow",
762
+ "gradientStart": "#faf7f2",
763
+ "gradientEnd": "#f5f0e8",
764
+ "borderColor": "#e2dcd2"
765
+ },
615
766
  "sunlit": {
616
767
  "$description": "Sunlit card — featured with gradient",
617
- "background": "linear-gradient(180deg, #FAF7F2 0%, #F5EFE4 100%)",
768
+ "background": "linear-gradient(180deg, #fffbf5 0%, #fdf6ee 30%, #f8efe4 100%)",
769
+ "gradientStart": "#fffbf5",
770
+ "gradientMid": "#fdf6ee",
771
+ "gradientEnd": "#f8efe4",
618
772
  "borderColor": "#c5430040",
773
+ "borderColorHover": "#c5430059",
619
774
  "shadow": "0 4px 16px rgba(61, 50, 41, 0.08), 0 2px 6px rgba(61, 50, 41, 0.06)"
775
+ },
776
+ "section": {
777
+ "$description": "Card header and footer",
778
+ "dividerColor": "#e2d5c899",
779
+ "headerGradientStart": "#ffffff80",
780
+ "headerGradientEnd": "#ffffff00"
781
+ }
782
+ },
783
+ "progress": {
784
+ "$description": "Progress — chunky pill track",
785
+ "track": {
786
+ "insetShadow": "#0000000f"
787
+ },
788
+ "inverse": {
789
+ "$description": "On brand/accent backgrounds (e.g. journey hero). Fill is cream so it reads at 3.7:1 against the track.",
790
+ "trackBackground": "#ffffff26",
791
+ "trackBorder": "#ffffff4d",
792
+ "fill": "#faf7f2"
620
793
  }
621
794
  },
622
795
  "badge": {
623
796
  "$description": "Badge — small status indicators",
624
797
  "base": {
625
798
  "fontFamily": "'Bricolage Grotesque', 'General Sans', -apple-system, BlinkMacSystemFont, sans-serif",
626
- "fontSize": "0.75rem",
799
+ "fontSize": "1rem",
627
800
  "fontWeight": "500",
628
801
  "letterSpacing": "0.01em",
629
- "borderRadius": "9999px",
802
+ "borderRadius": "6px",
630
803
  "paddingX": "0.625rem",
631
804
  "paddingY": "0.25rem"
632
805
  },
@@ -641,7 +814,7 @@
641
814
  },
642
815
  "success": {
643
816
  "background": "#f0f7f1",
644
- "color": "#4a8a4c"
817
+ "color": "#3d7340"
645
818
  },
646
819
  "error": {
647
820
  "background": "#fdf4f3",
@@ -662,6 +835,19 @@
662
835
  "color": "#c54300",
663
836
  "colorHover": "#9e3500",
664
837
  "textDecoration": "underline",
665
- "textDecorationHover": "none"
838
+ "textDecorationHover": "none",
839
+ "inverse": {
840
+ "$description": "On brand/accent backgrounds",
841
+ "focusBackground": "#0000001a"
842
+ }
843
+ },
844
+ "modal": {
845
+ "$description": "Modal dialog",
846
+ "overlay": "#3d322999"
847
+ },
848
+ "closeButton": {
849
+ "$description": "Icon-only close buttons in alerts and modals",
850
+ "backgroundHover": "#00000014",
851
+ "shadowHover": "#00000026"
666
852
  }
667
853
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@orange-halo/tokens",
3
- "version": "1.0.0",
3
+ "version": "2.1.0",
4
4
  "description": "Design tokens for Orange Halo Design System (W3C Design Token Format)",
5
5
  "type": "module",
6
6
  "main": "./dist/tokens.js",
@@ -9,13 +9,18 @@
9
9
  "import": "./dist/tokens.js"
10
10
  },
11
11
  "./css": "./dist/tokens.css",
12
- "./themes/light": "./dist/themes/light.css",
13
12
  "./themes/dark": "./dist/themes/dark.css",
14
- "./json": "./dist/tokens.json"
13
+ "./themes/dark.json": "./dist/themes/dark.json",
14
+ "./json": "./dist/tokens.json",
15
+ "./brands/*": "./dist/brands/*",
16
+ "./contrast": "./contrast.js",
17
+ "./contrast-pairs": "./contrast-pairs.json"
15
18
  },
16
19
  "files": [
17
20
  "dist",
18
- "tokens"
21
+ "tokens",
22
+ "contrast.js",
23
+ "contrast-pairs.json"
19
24
  ],
20
25
  "devDependencies": {
21
26
  "style-dictionary": "^4.2.0"
@@ -0,0 +1,5 @@
1
+ {
2
+ "$description": "About the brand, for tools that show it (Storybook's Brand control): its name, and the stylesheets that load its fonts. Hood is dark by default: sites set data-theme=\"dark\".",
3
+ "name": "Hood",
4
+ "fonts": ["https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap"]
5
+ }