@orange-halo/tokens 2.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.js CHANGED
@@ -115,6 +115,11 @@ export const OhColorSurfaceOverlay = "#3d322966"; // Modal backdrop — warm
115
115
  export const OhColorSurfaceDisabled = "#e2dcd2"; // Quiet disabled
116
116
  export const OhColorSurfaceHover = "#fff4e6"; // Warm hover tint
117
117
  export const OhColorSurfaceActivePressed = "#f0ebe3"; // Active/pressed surface
118
+ export const OhColorSurfaceFeaturedStart = "#fffbf5"; // Featured (sunlit) card gradient: top
119
+ export const OhColorSurfaceFeaturedMid = "#fdf6ee"; // Featured (sunlit) card gradient: 30%
120
+ export const OhColorSurfaceFeaturedEnd = "#f8efe4"; // Featured (sunlit) card gradient: bottom
121
+ export const OhColorSurfaceSheen = "#ffffff80"; // Light glaze at the top of card headers, fading to transparent
122
+ export const OhColorSurfaceBackdrop = "#3d322999"; // Modal backdrop — darker than surface.overlay so the dialog stands out
118
123
  export const OhColorBorderDefault = "#e2dcd2"; // Standard border
119
124
  export const OhColorBorderSubtle = "#ede8df"; // Subtle dividers
120
125
  export const OhColorBorderEmphasis = "#6b5d4d"; // Strong border for form elements
@@ -122,6 +127,8 @@ export const OhColorBorderStrong = "#c9c1b4"; // Neutral edge between default an
122
127
  export const OhColorBorderHover = "#8b4726"; // Hover border — darker for feedback
123
128
  export const OhColorBorderDisabled = "#ede8df";
124
129
  export const OhColorBorderBrand = "#c5430040"; // Brand-tinted border
130
+ export const OhColorBorderBrandHover = "#c5430059"; // Brand-tinted border on hover. Decorative container edge — not a focus or control border
131
+ export const OhColorBorderDivider = "#e2d5c899"; // Decorative divider inside a container, such as a card's header and footer
125
132
  export const OhColorTextPrimary = "#3d3229"; // Primary text — warm brown
126
133
  export const OhColorTextSecondary = "#6b5d4d"; // Secondary text
127
134
  export const OhColorTextDisabled = "#c9c1b4"; // Disabled text
@@ -167,33 +174,6 @@ export const OhFontLetterSpacingNormal = "0";
167
174
  export const OhFontLetterSpacingWide = "0.01em";
168
175
  export const OhFontLetterSpacingWider = "0.02em";
169
176
  export const OhFontLetterSpacingWidest = "0.05em"; // Uppercase labels: hero eyebrows, footer headings
170
- export const OhSpacing0 = "0";
171
- export const OhSpacing1 = "0.25rem"; // 4px
172
- export const OhSpacing2 = "0.5rem"; // 8px
173
- export const OhSpacing3 = "0.75rem"; // 12px
174
- export const OhSpacing4 = "1rem"; // 16px
175
- export const OhSpacing5 = "1.25rem"; // 20px
176
- export const OhSpacing6 = "1.5rem"; // 24px
177
- export const OhSpacing7 = "1.75rem"; // 28px
178
- export const OhSpacing8 = "2rem"; // 32px
179
- export const OhSpacing10 = "2.5rem"; // 40px
180
- export const OhSpacing12 = "3rem"; // 48px
181
- export const OhSpacing16 = "4rem"; // 64px
182
- export const OhSpacing20 = "5rem"; // 80px
183
- export const OhSpacingPx = "1px";
184
- export const OhSpacing05 = "0.125rem"; // 2px
185
- export const OhSpacing15 = "0.375rem"; // 6px
186
- export const OhSpacing25 = "0.625rem"; // 10px
187
- export const OhSpacing35 = "0.875rem"; // 14px
188
- export const OhSpacingLayoutPage = "1.5rem";
189
- export const OhSpacingLayoutSection = "3rem";
190
- export const OhSpacingLayoutStack = "1.25rem";
191
- export const OhSpacingLayoutInline = "1rem";
192
- export const OhSpacingComponentXs = "0.375rem";
193
- export const OhSpacingComponentSm = "0.625rem";
194
- export const OhSpacingComponentMd = "0.875rem";
195
- export const OhSpacingComponentLg = "1.25rem";
196
- export const OhSpacingComponentXl = "1.75rem";
197
177
  export const OhRadiusNone = "0";
198
178
  export const OhRadiusXs = "4px"; // Small details, chips
199
179
  export const OhRadiusSm = "6px"; // Buttons, inputs
@@ -215,10 +195,34 @@ export const OhShadowChunkyPrimary = "#e8c4a0"; // Warm peach for primary button
215
195
  export const OhShadowChunkySecondary = "#d4c4b0"; // Neutral tan for secondary/form elements
216
196
  export const OhShadowChunkyAccent = "#a0b4c8"; // Blue offset shadow for accent buttons — decorative
217
197
  export const OhShadowChunkyError = "#b545404d"; // Error state shadow
198
+ export const OhShadowChunkyDriftwood = "#6b5d4d26"; // Translucent driftwood, for offset shadows on cream
199
+ export const OhShadowChunkyDriftwoodHover = "#6b5d4d33"; // A step darker, for the lifted state
200
+ export const OhShadowChunkyDriftwoodDeep = "#6b5d4d40"; // For dialogs, which sit above everything
201
+ export const OhShadowChunkyWalnut = "#3d322926"; // Translucent walnut, for the inset shadow inside fields
202
+ export const OhShadowLayeredFlat =
203
+ "0 1px 2px rgba(61, 50, 41, 0.04), inset 0 1px 0 rgba(255, 255, 255, 0.6)";
204
+ export const OhShadowLayeredRaised =
205
+ "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)";
206
+ export const OhShadowLayeredLifted =
207
+ "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)";
208
+ export const OhShadowLayeredPressed =
209
+ "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)";
210
+ export const OhShadowLayeredFocused =
211
+ "0 2px 6px rgba(61, 50, 41, 0.08), inset 0 1px 0 rgba(255, 255, 255, 0.8)"; // Sits under the focus glow
212
+ export const OhShadowLayeredSunlit =
213
+ "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)";
214
+ export const OhShadowLayeredSunlitLifted =
215
+ "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)";
216
+ export const OhShadowLayeredSunlitFocused =
217
+ "0 2px 8px rgba(139, 69, 19, 0.08), inset 0 1px 0 rgba(255, 255, 255, 0.9)"; // Sits under the focus glow
218
218
  export const OhShadowPrimary = "#e8c4a0"; // Primary buttons
219
219
  export const OhShadowSecondary = "#d4c4b0"; // Secondary/form elements
220
220
  export const OhShadowAccent = "#a0b4c8"; // Accent buttons
221
221
  export const OhShadowError = "#b545404d"; // Error state
222
+ export const OhShadowNeutral = "#6b5d4d26"; // Containers and the skip link
223
+ export const OhShadowNeutralHover = "#6b5d4d33"; // Lifted containers
224
+ export const OhShadowOverlay = "#6b5d4d40"; // Dialogs
225
+ export const OhShadowField = "#3d322926"; // The inset shadow inside text fields
222
226
  export const OhGradientSunlit =
223
227
  "linear-gradient(180deg, #fffbf5 0%, #fdf6ee 30%, #f8efe4 100%)"; // Gentle warmth for surfaces — same stops as the sunlit card
224
228
  export const OhGradientWarm =
@@ -246,6 +250,33 @@ export const OhBorderWidth0 = "0";
246
250
  export const OhBorderWidth1 = "1px";
247
251
  export const OhBorderWidth2 = "2px";
248
252
  export const OhBorderWidthChunky = "2.5px"; // Signature chunky frame for controls and feedback
253
+ export const OhSpacing0 = "0";
254
+ export const OhSpacing1 = "0.25rem"; // 4px
255
+ export const OhSpacing2 = "0.5rem"; // 8px
256
+ export const OhSpacing3 = "0.75rem"; // 12px
257
+ export const OhSpacing4 = "1rem"; // 16px
258
+ export const OhSpacing5 = "1.25rem"; // 20px
259
+ export const OhSpacing6 = "1.5rem"; // 24px
260
+ export const OhSpacing7 = "1.75rem"; // 28px
261
+ export const OhSpacing8 = "2rem"; // 32px
262
+ export const OhSpacing10 = "2.5rem"; // 40px
263
+ export const OhSpacing12 = "3rem"; // 48px
264
+ export const OhSpacing16 = "4rem"; // 64px
265
+ export const OhSpacing20 = "5rem"; // 80px
266
+ export const OhSpacingPx = "1px";
267
+ export const OhSpacing05 = "0.125rem"; // 2px
268
+ export const OhSpacing15 = "0.375rem"; // 6px
269
+ export const OhSpacing25 = "0.625rem"; // 10px
270
+ export const OhSpacing35 = "0.875rem"; // 14px
271
+ export const OhSpacingLayoutPage = "1.5rem";
272
+ export const OhSpacingLayoutSection = "3rem";
273
+ export const OhSpacingLayoutStack = "1.25rem";
274
+ export const OhSpacingLayoutInline = "1rem";
275
+ export const OhSpacingComponentXs = "0.375rem";
276
+ export const OhSpacingComponentSm = "0.625rem";
277
+ export const OhSpacingComponentMd = "0.875rem";
278
+ export const OhSpacingComponentLg = "1.25rem";
279
+ export const OhSpacingComponentXl = "1.75rem";
249
280
  export const OhSizeContainerSm = "640px";
250
281
  export const OhSizeContainerMd = "768px";
251
282
  export const OhSizeContainerLg = "1024px";
@@ -352,6 +383,39 @@ export const OhElevationStrong =
352
383
  export const OhElevationGlow =
353
384
  "0 0 0 3px rgba(197, 67, 0, 0.2), 0 0 12px rgba(197, 67, 0, 0.1)"; // Focus ring
354
385
  export const OhElevationInset = "inset 0 1px 3px rgba(61, 50, 41, 0.08)"; // Inputs, wells
386
+ export const OhElevationSurfaceFlat =
387
+ "0 1px 2px rgba(61, 50, 41, 0.04), inset 0 1px 0 rgba(255, 255, 255, 0.6)";
388
+ export const OhElevationSurfaceRaised =
389
+ "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)";
390
+ export const OhElevationSurfaceLifted =
391
+ "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)"; // Hovered
392
+ export const OhElevationSurfacePressed =
393
+ "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)";
394
+ export const OhElevationSurfaceFocused =
395
+ "0 2px 6px rgba(61, 50, 41, 0.08), inset 0 1px 0 rgba(255, 255, 255, 0.8)"; // Sits under the focus glow
396
+ export const OhElevationSurfaceFeatured =
397
+ "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)";
398
+ export const OhElevationSurfaceFeaturedLifted =
399
+ "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)";
400
+ export const OhElevationSurfaceFeaturedFocused =
401
+ "0 2px 8px rgba(139, 69, 19, 0.08), inset 0 1px 0 rgba(255, 255, 255, 0.9)";
402
+ export const OhElevationOffsetXs = "1px";
403
+ export const OhElevationOffsetSm = "2px";
404
+ export const OhElevationOffsetMd = "3px";
405
+ export const OhElevationOffsetLg = "4px";
406
+ export const OhElevationOffsetXl = "5px";
407
+ export const OhElevationOffset2xl = "6px";
408
+ export const OhLiftHoverSm = "-1px";
409
+ export const OhLiftHoverMd = "-2px";
410
+ export const OhLiftPressSm = "1px";
411
+ export const OhLiftPressMd = "2px";
412
+ export const OhStrokeControl = "2.5px"; // Controls and framed containers: buttons, fields, checkboxes, alerts, dialogs
413
+ export const OhStrokeSurface = "1px"; // Card edges
414
+ export const OhStrokeDivider = "1px"; // Lines between sections
415
+ export const OhDecorationUnderlineThickness = "2px";
416
+ export const OhDecorationUnderlineFocusThickness = "3px"; // The solid underline that shows keyboard focus on inline links
417
+ export const OhDecorationUnderlineDash = "4px";
418
+ export const OhDecorationUnderlinePeriod = "8px";
355
419
  export const OhFocusRingWidth = "3px";
356
420
  export const OhFocusRingOffset = "2px";
357
421
  export const OhFocusRingColor = "#c54300"; // The focus colour: outlines, focused control borders. Must stay opaque (4.7:1 on cream, WCAG 1.4.11)
@@ -448,12 +512,13 @@ export const OhCardSunlitGradientStart = "#fffbf5";
448
512
  export const OhCardSunlitGradientMid = "#fdf6ee";
449
513
  export const OhCardSunlitGradientEnd = "#f8efe4";
450
514
  export const OhCardSunlitBorderColor = "#c5430040";
451
- export const OhCardSunlitBorderColorHover = "#c5430059"; // Decorative container edge — not a focus or control border
515
+ export const OhCardSunlitBorderColorHover = "#c5430059";
452
516
  export const OhCardSunlitShadow =
453
517
  "0 4px 16px rgba(61, 50, 41, 0.08), 0 2px 6px rgba(61, 50, 41, 0.06)";
454
- export const OhCardSectionDividerColor = "#e2d5c899"; // Decorative divider
518
+ export const OhCardSectionDividerColor = "#e2d5c899";
455
519
  export const OhCardSectionHeaderGradientStart = "#ffffff80";
456
520
  export const OhCardSectionHeaderGradientEnd = "#ffffff00";
521
+ export const OhProgressTrackInsetShadow = "#0000000f"; // Neutral, so it works on every track colour
457
522
  export const OhProgressInverseTrackBackground = "#ffffff26";
458
523
  export const OhProgressInverseTrackBorder = "#ffffff4d";
459
524
  export const OhProgressInverseFill = "#faf7f2";
@@ -482,5 +547,6 @@ export const OhLinkColorHover = "#9e3500";
482
547
  export const OhLinkTextDecoration = "underline";
483
548
  export const OhLinkTextDecorationHover = "none";
484
549
  export const OhLinkInverseFocusBackground = "#0000001a"; // Focus tint — paired with the underline, which is the indicator
485
- export const OhModalOverlay = "#3d322999"; // Backdrop — darker than color.surface.overlay so the dialog stands out
550
+ export const OhModalOverlay = "#3d322999";
486
551
  export const OhCloseButtonBackgroundHover = "#00000014"; // Neutral tint that works on every alert variant
552
+ export const OhCloseButtonShadowHover = "#00000026"; // Offset shadow colour on hover and press. Neutral, like the background, so it works on every alert variant
package/dist/tokens.json CHANGED
@@ -149,7 +149,12 @@
149
149
  "overlay": "#3d322966",
150
150
  "disabled": "#e2dcd2",
151
151
  "hover": "#fff4e6",
152
- "activePressed": "#f0ebe3"
152
+ "activePressed": "#f0ebe3",
153
+ "featuredStart": "#fffbf5",
154
+ "featuredMid": "#fdf6ee",
155
+ "featuredEnd": "#f8efe4",
156
+ "sheen": "#ffffff80",
157
+ "backdrop": "#3d322999"
153
158
  },
154
159
  "border": {
155
160
  "$description": "Border colors — visible and intentional",
@@ -159,7 +164,9 @@
159
164
  "strong": "#c9c1b4",
160
165
  "hover": "#8b4726",
161
166
  "disabled": "#ede8df",
162
- "brand": "#c5430040"
167
+ "brand": "#c5430040",
168
+ "brandHover": "#c5430059",
169
+ "divider": "#e2d5c899"
163
170
  },
164
171
  "text": {
165
172
  "$description": "Text colors — calm and readable, not stark",
@@ -224,42 +231,6 @@
224
231
  "widest": "0.05em"
225
232
  }
226
233
  },
227
- "spacing": {
228
- "0": "0",
229
- "1": "0.25rem",
230
- "2": "0.5rem",
231
- "3": "0.75rem",
232
- "4": "1rem",
233
- "5": "1.25rem",
234
- "6": "1.5rem",
235
- "7": "1.75rem",
236
- "8": "2rem",
237
- "10": "2.5rem",
238
- "12": "3rem",
239
- "16": "4rem",
240
- "20": "5rem",
241
- "$description": "Generous spacing — breathing room, not dense",
242
- "px": "1px",
243
- "0-5": "0.125rem",
244
- "1-5": "0.375rem",
245
- "2-5": "0.625rem",
246
- "3-5": "0.875rem",
247
- "layout": {
248
- "$description": "Generous layout spacing",
249
- "page": "1.5rem",
250
- "section": "3rem",
251
- "stack": "1.25rem",
252
- "inline": "1rem"
253
- },
254
- "component": {
255
- "$description": "Component-level spacing",
256
- "xs": "0.375rem",
257
- "sm": "0.625rem",
258
- "md": "0.875rem",
259
- "lg": "1.25rem",
260
- "xl": "1.75rem"
261
- }
262
- },
263
234
  "radius": {
264
235
  "$description": "Friendly and soft — not sharp, not overly pill-shaped",
265
236
  "none": "0",
@@ -283,12 +254,31 @@
283
254
  "primary": "#e8c4a0",
284
255
  "secondary": "#d4c4b0",
285
256
  "accent": "#a0b4c8",
286
- "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)"
287
273
  },
288
274
  "primary": "#e8c4a0",
289
275
  "secondary": "#d4c4b0",
290
276
  "accent": "#a0b4c8",
291
- "error": "#b545404d"
277
+ "error": "#b545404d",
278
+ "neutral": "#6b5d4d26",
279
+ "neutralHover": "#6b5d4d33",
280
+ "overlay": "#6b5d4d40",
281
+ "field": "#3d322926"
292
282
  },
293
283
  "gradient": {
294
284
  "$description": "Soft, nostalgic gradients — never high-contrast or flashy",
@@ -364,6 +354,42 @@
364
354
  "chunky": "2.5px"
365
355
  }
366
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
+ },
367
393
  "size": {
368
394
  "$description": "Fixed layout sizes: content widths and viewport breakpoints",
369
395
  "container": {
@@ -531,7 +557,47 @@
531
557
  "medium": "0 4px 16px rgba(61, 50, 41, 0.08), 0 2px 6px rgba(61, 50, 41, 0.06)",
532
558
  "strong": "0 8px 24px rgba(61, 50, 41, 0.10), 0 4px 8px rgba(61, 50, 41, 0.06)",
533
559
  "glow": "0 0 0 3px rgba(197, 67, 0, 0.2), 0 0 12px rgba(197, 67, 0, 0.1)",
534
- "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"
535
601
  },
536
602
  "focus": {
537
603
  "$description": "Warm, friendly focus ring",
@@ -716,6 +782,9 @@
716
782
  },
717
783
  "progress": {
718
784
  "$description": "Progress — chunky pill track",
785
+ "track": {
786
+ "insetShadow": "#0000000f"
787
+ },
719
788
  "inverse": {
720
789
  "$description": "On brand/accent backgrounds (e.g. journey hero). Fill is cream so it reads at 3.7:1 against the track.",
721
790
  "trackBackground": "#ffffff26",
@@ -778,6 +847,7 @@
778
847
  },
779
848
  "closeButton": {
780
849
  "$description": "Icon-only close buttons in alerts and modals",
781
- "backgroundHover": "#00000014"
850
+ "backgroundHover": "#00000014",
851
+ "shadowHover": "#00000026"
782
852
  }
783
853
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@orange-halo/tokens",
3
- "version": "2.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",
@@ -12,6 +12,7 @@
12
12
  "./themes/dark": "./dist/themes/dark.css",
13
13
  "./themes/dark.json": "./dist/themes/dark.json",
14
14
  "./json": "./dist/tokens.json",
15
+ "./brands/*": "./dist/brands/*",
15
16
  "./contrast": "./contrast.js",
16
17
  "./contrast-pairs": "./contrast-pairs.json"
17
18
  },
@@ -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
+ }