@orange-halo/tokens 2.1.0 → 2.2.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.
@@ -1,5 +1,9 @@
1
1
  {
2
2
  "$description": "Component Design Tokens — Orange Halo Visual DNA applied. Each component has personality knobs.",
3
+ "grid": {
4
+ "$description": "The brand's layout grid. Spacing is multiples of half a unit; type sizes and line heights sit on it (see style-dictionary.config.js)",
5
+ "unit": "8px"
6
+ },
3
7
  "color": {
4
8
  "$description": "Warm palette with nostalgic character. Neutrals are always warm; blue is the deliberate accent.",
5
9
  "orange": {
@@ -194,16 +198,16 @@
194
198
  "mono": "'JetBrains Mono', 'Fira Code', ui-monospace, monospace"
195
199
  },
196
200
  "size": {
197
- "$description": "Slightly expressive type scale",
201
+ "$description": "Type scale on the brand's grid (grid.unit): every size is a multiple of half a unit. Strict: no size between xs and base",
198
202
  "xs": "0.75rem",
199
- "sm": "0.875rem",
203
+ "sm": "0.75rem",
200
204
  "base": "1rem",
201
- "lg": "1.125rem",
202
- "xl": "1.25rem",
203
- "2xl": "1.625rem",
205
+ "lg": "1.25rem",
206
+ "xl": "1.5rem",
207
+ "2xl": "1.75rem",
204
208
  "3xl": "2rem",
205
- "4xl": "2.625rem",
206
- "5xl": "3.25rem"
209
+ "4xl": "2.5rem",
210
+ "5xl": "3rem"
207
211
  },
208
212
  "weight": {
209
213
  "$description": "Font weights for hierarchy",
@@ -368,7 +372,7 @@
368
372
  "12": "3rem",
369
373
  "16": "4rem",
370
374
  "20": "5rem",
371
- "$description": "Generous spacing — breathing room, not dense",
375
+ "$description": "Generous spacing — breathing room, not dense. Multiples of half the brand's grid.unit (spacing.1 = half a unit, spacing.2 = one unit), computed per brand at build time by style-dictionary.config.js; the values written here are what an 8px grid gives. The x-5 steps fall between half-units: avoid them in new work",
372
376
  "px": "1px",
373
377
  "0-5": "0.125rem",
374
378
  "1-5": "0.375rem",
@@ -423,9 +427,9 @@
423
427
  "heading": {
424
428
  "fontFamily": "'Bricolage Grotesque', 'General Sans', sans-serif",
425
429
  "h1": {
426
- "fontSize": "2.625rem",
430
+ "fontSize": "2.5rem",
427
431
  "fontWeight": "700",
428
- "lineHeight": 1.25,
432
+ "lineHeight": 1.2,
429
433
  "letterSpacing": "-0.02em"
430
434
  },
431
435
  "h2": {
@@ -435,21 +439,21 @@
435
439
  "letterSpacing": "-0.01em"
436
440
  },
437
441
  "h3": {
438
- "fontSize": "1.625rem",
442
+ "fontSize": "1.75rem",
439
443
  "fontWeight": "600",
440
- "lineHeight": 1.35,
444
+ "lineHeight": 1.4286,
441
445
  "letterSpacing": "-0.01em"
442
446
  },
443
447
  "h4": {
444
- "fontSize": "1.25rem",
448
+ "fontSize": "1.5rem",
445
449
  "fontWeight": "600",
446
- "lineHeight": 1.35,
450
+ "lineHeight": 1.3333,
447
451
  "letterSpacing": "0"
448
452
  },
449
453
  "h5": {
450
- "fontSize": "1.125rem",
454
+ "fontSize": "1.25rem",
451
455
  "fontWeight": "500",
452
- "lineHeight": 1.5
456
+ "lineHeight": 1.6
453
457
  },
454
458
  "h6": {
455
459
  "fontSize": "1rem",
@@ -461,14 +465,14 @@
461
465
  "fontFamily": "'Bricolage Grotesque', 'General Sans', -apple-system, BlinkMacSystemFont, sans-serif",
462
466
  "xl": {
463
467
  "$description": "Lead paragraphs and hero subtitles",
464
- "fontSize": "1.25rem",
468
+ "fontSize": "1.5rem",
465
469
  "fontWeight": "400",
466
- "lineHeight": 1.5
470
+ "lineHeight": 1.6667
467
471
  },
468
472
  "lg": {
469
- "fontSize": "1.125rem",
473
+ "fontSize": "1.25rem",
470
474
  "fontWeight": "400",
471
- "lineHeight": 1.65
475
+ "lineHeight": 1.6
472
476
  },
473
477
  "base": {
474
478
  "fontSize": "1rem",
@@ -476,22 +480,22 @@
476
480
  "lineHeight": 1.5
477
481
  },
478
482
  "sm": {
479
- "fontSize": "0.875rem",
483
+ "fontSize": "0.75rem",
480
484
  "fontWeight": "400",
481
- "lineHeight": 1.5,
485
+ "lineHeight": 1.6667,
482
486
  "letterSpacing": "0.01em"
483
487
  },
484
488
  "xs": {
485
489
  "fontSize": "0.75rem",
486
490
  "fontWeight": "400",
487
- "lineHeight": 1.5,
491
+ "lineHeight": 1.6667,
488
492
  "letterSpacing": "0.01em"
489
493
  }
490
494
  },
491
495
  "label": {
492
496
  "fontFamily": "'Bricolage Grotesque', 'General Sans', -apple-system, BlinkMacSystemFont, sans-serif",
493
497
  "base": {
494
- "fontSize": "0.875rem",
498
+ "fontSize": "1rem",
495
499
  "fontWeight": "500",
496
500
  "lineHeight": 1.5,
497
501
  "letterSpacing": "0.01em"
@@ -499,7 +503,7 @@
499
503
  "sm": {
500
504
  "fontSize": "0.75rem",
501
505
  "fontWeight": "500",
502
- "lineHeight": 1.5,
506
+ "lineHeight": 1.6667,
503
507
  "letterSpacing": "0.01em"
504
508
  }
505
509
  },
@@ -517,8 +521,8 @@
517
521
  "letterSpacing": "0.01em",
518
522
  "fontSize": {
519
523
  "sm": "1rem",
520
- "md": "1.125rem",
521
- "lg": "1.25rem"
524
+ "md": "1.25rem",
525
+ "lg": "1.5rem"
522
526
  }
523
527
  },
524
528
  "emphasis": {
@@ -527,7 +531,7 @@
527
531
  },
528
532
  "code": {
529
533
  "fontFamily": "'JetBrains Mono', 'Fira Code', ui-monospace, monospace",
530
- "fontSize": "0.875rem",
534
+ "fontSize": "1rem",
531
535
  "lineHeight": 1.5
532
536
  }
533
537
  },
@@ -632,14 +636,14 @@
632
636
  "gap": "0.5rem"
633
637
  },
634
638
  "md": {
635
- "fontSize": "1.125rem",
639
+ "fontSize": "1.25rem",
636
640
  "paddingX": "1.5rem",
637
641
  "paddingY": "0.75rem",
638
642
  "minHeight": "48px",
639
643
  "gap": "0.5rem"
640
644
  },
641
645
  "lg": {
642
- "fontSize": "1.25rem",
646
+ "fontSize": "1.5rem",
643
647
  "paddingX": "2rem",
644
648
  "paddingY": "1rem",
645
649
  "minHeight": "56px",
@@ -685,7 +689,7 @@
685
689
  "$description": "Input — chunky border, inset shadow, tactile feel",
686
690
  "base": {
687
691
  "fontFamily": "'Bricolage Grotesque', 'General Sans', -apple-system, BlinkMacSystemFont, sans-serif",
688
- "fontSize": "1.125rem",
692
+ "fontSize": "1.25rem",
689
693
  "lineHeight": 1.5,
690
694
  "borderRadius": "10px",
691
695
  "borderWidth": "2.5px",
@@ -1,5 +1,9 @@
1
1
  {
2
2
  "$description": "Dark Theme — warm cocoa base, cozy evening Orange Halo. Overrides tier 2 only; every colour references the palette. Applies when data-theme=\"dark\" is set.",
3
+ "grid": {
4
+ "$description": "The brand's layout grid. Spacing is multiples of half a unit; type sizes and line heights sit on it (see style-dictionary.config.js)",
5
+ "unit": "8px"
6
+ },
3
7
  "color": {
4
8
  "$description": "Warm palette with nostalgic character. Neutrals are always warm; blue is the deliberate accent.",
5
9
  "orange": {
@@ -194,16 +198,16 @@
194
198
  "mono": "'JetBrains Mono', 'Fira Code', ui-monospace, monospace"
195
199
  },
196
200
  "size": {
197
- "$description": "Slightly expressive type scale",
201
+ "$description": "Type scale on the brand's grid (grid.unit): every size is a multiple of half a unit. Strict: no size between xs and base",
198
202
  "xs": "0.75rem",
199
- "sm": "0.875rem",
203
+ "sm": "0.75rem",
200
204
  "base": "1rem",
201
- "lg": "1.125rem",
202
- "xl": "1.25rem",
203
- "2xl": "1.625rem",
205
+ "lg": "1.25rem",
206
+ "xl": "1.5rem",
207
+ "2xl": "1.75rem",
204
208
  "3xl": "2rem",
205
- "4xl": "2.625rem",
206
- "5xl": "3.25rem"
209
+ "4xl": "2.5rem",
210
+ "5xl": "3rem"
207
211
  },
208
212
  "weight": {
209
213
  "$description": "Font weights for hierarchy",
@@ -368,7 +372,7 @@
368
372
  "12": "3rem",
369
373
  "16": "4rem",
370
374
  "20": "5rem",
371
- "$description": "Generous spacing — breathing room, not dense",
375
+ "$description": "Generous spacing — breathing room, not dense. Multiples of half the brand's grid.unit (spacing.1 = half a unit, spacing.2 = one unit), computed per brand at build time by style-dictionary.config.js; the values written here are what an 8px grid gives. The x-5 steps fall between half-units: avoid them in new work",
372
376
  "px": "1px",
373
377
  "0-5": "0.125rem",
374
378
  "1-5": "0.375rem",
@@ -423,9 +427,9 @@
423
427
  "heading": {
424
428
  "fontFamily": "'Bricolage Grotesque', 'General Sans', sans-serif",
425
429
  "h1": {
426
- "fontSize": "2.625rem",
430
+ "fontSize": "2.5rem",
427
431
  "fontWeight": "700",
428
- "lineHeight": 1.25,
432
+ "lineHeight": 1.2,
429
433
  "letterSpacing": "-0.02em"
430
434
  },
431
435
  "h2": {
@@ -435,21 +439,21 @@
435
439
  "letterSpacing": "-0.01em"
436
440
  },
437
441
  "h3": {
438
- "fontSize": "1.625rem",
442
+ "fontSize": "1.75rem",
439
443
  "fontWeight": "600",
440
- "lineHeight": 1.35,
444
+ "lineHeight": 1.4286,
441
445
  "letterSpacing": "-0.01em"
442
446
  },
443
447
  "h4": {
444
- "fontSize": "1.25rem",
448
+ "fontSize": "1.5rem",
445
449
  "fontWeight": "600",
446
- "lineHeight": 1.35,
450
+ "lineHeight": 1.3333,
447
451
  "letterSpacing": "0"
448
452
  },
449
453
  "h5": {
450
- "fontSize": "1.125rem",
454
+ "fontSize": "1.25rem",
451
455
  "fontWeight": "500",
452
- "lineHeight": 1.5
456
+ "lineHeight": 1.6
453
457
  },
454
458
  "h6": {
455
459
  "fontSize": "1rem",
@@ -461,14 +465,14 @@
461
465
  "fontFamily": "'Bricolage Grotesque', 'General Sans', -apple-system, BlinkMacSystemFont, sans-serif",
462
466
  "xl": {
463
467
  "$description": "Lead paragraphs and hero subtitles",
464
- "fontSize": "1.25rem",
468
+ "fontSize": "1.5rem",
465
469
  "fontWeight": "400",
466
- "lineHeight": 1.5
470
+ "lineHeight": 1.6667
467
471
  },
468
472
  "lg": {
469
- "fontSize": "1.125rem",
473
+ "fontSize": "1.25rem",
470
474
  "fontWeight": "400",
471
- "lineHeight": 1.65
475
+ "lineHeight": 1.6
472
476
  },
473
477
  "base": {
474
478
  "fontSize": "1rem",
@@ -476,22 +480,22 @@
476
480
  "lineHeight": 1.5
477
481
  },
478
482
  "sm": {
479
- "fontSize": "0.875rem",
483
+ "fontSize": "0.75rem",
480
484
  "fontWeight": "400",
481
- "lineHeight": 1.5,
485
+ "lineHeight": 1.6667,
482
486
  "letterSpacing": "0.01em"
483
487
  },
484
488
  "xs": {
485
489
  "fontSize": "0.75rem",
486
490
  "fontWeight": "400",
487
- "lineHeight": 1.5,
491
+ "lineHeight": 1.6667,
488
492
  "letterSpacing": "0.01em"
489
493
  }
490
494
  },
491
495
  "label": {
492
496
  "fontFamily": "'Bricolage Grotesque', 'General Sans', -apple-system, BlinkMacSystemFont, sans-serif",
493
497
  "base": {
494
- "fontSize": "0.875rem",
498
+ "fontSize": "1rem",
495
499
  "fontWeight": "500",
496
500
  "lineHeight": 1.5,
497
501
  "letterSpacing": "0.01em"
@@ -499,7 +503,7 @@
499
503
  "sm": {
500
504
  "fontSize": "0.75rem",
501
505
  "fontWeight": "500",
502
- "lineHeight": 1.5,
506
+ "lineHeight": 1.6667,
503
507
  "letterSpacing": "0.01em"
504
508
  }
505
509
  },
@@ -517,8 +521,8 @@
517
521
  "letterSpacing": "0.01em",
518
522
  "fontSize": {
519
523
  "sm": "1rem",
520
- "md": "1.125rem",
521
- "lg": "1.25rem"
524
+ "md": "1.25rem",
525
+ "lg": "1.5rem"
522
526
  }
523
527
  },
524
528
  "emphasis": {
@@ -527,7 +531,7 @@
527
531
  },
528
532
  "code": {
529
533
  "fontFamily": "'JetBrains Mono', 'Fira Code', ui-monospace, monospace",
530
- "fontSize": "0.875rem",
534
+ "fontSize": "1rem",
531
535
  "lineHeight": 1.5
532
536
  }
533
537
  },
@@ -632,14 +636,14 @@
632
636
  "gap": "0.5rem"
633
637
  },
634
638
  "md": {
635
- "fontSize": "1.125rem",
639
+ "fontSize": "1.25rem",
636
640
  "paddingX": "1.5rem",
637
641
  "paddingY": "0.75rem",
638
642
  "minHeight": "48px",
639
643
  "gap": "0.5rem"
640
644
  },
641
645
  "lg": {
642
- "fontSize": "1.25rem",
646
+ "fontSize": "1.5rem",
643
647
  "paddingX": "2rem",
644
648
  "paddingY": "1rem",
645
649
  "minHeight": "56px",
@@ -685,7 +689,7 @@
685
689
  "$description": "Input — chunky border, inset shadow, tactile feel",
686
690
  "base": {
687
691
  "fontFamily": "'Bricolage Grotesque', 'General Sans', -apple-system, BlinkMacSystemFont, sans-serif",
688
- "fontSize": "1.125rem",
692
+ "fontSize": "1.25rem",
689
693
  "lineHeight": 1.5,
690
694
  "borderRadius": "10px",
691
695
  "borderWidth": "2.5px",
package/dist/tokens.css CHANGED
@@ -3,6 +3,7 @@
3
3
  */
4
4
 
5
5
  :root {
6
+ --oh-grid-unit: 8px; /** 8px grid with 4px half-steps */
6
7
  --oh-color-orange-50: #fff3e0;
7
8
  --oh-color-orange-100: #ffe0b2;
8
9
  --oh-color-orange-200: #ffcc80;
@@ -98,14 +99,13 @@
98
99
  --oh-font-family-display: 'Bricolage Grotesque', 'General Sans', sans-serif;
99
100
  --oh-font-family-mono: 'JetBrains Mono', 'Fira Code', ui-monospace, monospace;
100
101
  --oh-font-size-xs: 0.75rem; /** 12px */
101
- --oh-font-size-sm: 0.875rem; /** 14px */
102
102
  --oh-font-size-base: 1rem; /** 16px */
103
- --oh-font-size-lg: 1.125rem; /** 18px */
104
- --oh-font-size-xl: 1.25rem; /** 20px */
105
- --oh-font-size-2xl: 1.625rem; /** 26px */
103
+ --oh-font-size-lg: 1.25rem; /** 20px */
104
+ --oh-font-size-xl: 1.5rem; /** 24px */
105
+ --oh-font-size-2xl: 1.75rem; /** 28px */
106
106
  --oh-font-size-3xl: 2rem; /** 32px */
107
- --oh-font-size-4xl: 2.625rem; /** 42px */
108
- --oh-font-size-5xl: 3.25rem; /** 52px */
107
+ --oh-font-size-4xl: 2.5rem; /** 40px */
108
+ --oh-font-size-5xl: 3rem; /** 48px */
109
109
  --oh-font-weight-normal: 400;
110
110
  --oh-font-weight-medium: 500;
111
111
  --oh-font-weight-semibold: 600;
@@ -200,6 +200,20 @@
200
200
  --oh-z-index-modal: 1200;
201
201
  --oh-z-index-popover: 1300;
202
202
  --oh-z-index-tooltip: 1400;
203
+ --oh-typography-heading-h1-line-height: 1.2; /** 48px at 40px: 40px × 1.25, rounded to the 8px grid */
204
+ --oh-typography-heading-h2-line-height: 1.25; /** 40px at 32px: 32px × 1.25, rounded to the 8px grid */
205
+ --oh-typography-heading-h3-line-height: 1.4286; /** 40px at 28px: 28px × 1.35, rounded to the 8px grid */
206
+ --oh-typography-heading-h4-line-height: 1.3333; /** 32px at 24px: 24px × 1.35, rounded to the 8px grid */
207
+ --oh-typography-heading-h5-line-height: 1.6; /** 32px at 20px: 20px × 1.5, rounded to the 8px grid */
208
+ --oh-typography-heading-h6-line-height: 1.5; /** 24px at 16px: 16px × 1.5, rounded to the 8px grid */
209
+ --oh-typography-body-xl-line-height: 1.6667; /** 40px at 24px: 24px × 1.5, rounded to the 8px grid */
210
+ --oh-typography-body-lg-line-height: 1.6; /** 32px at 20px: 20px × 1.65, rounded to the 8px grid */
211
+ --oh-typography-body-base-line-height: 1.5; /** 24px at 16px: 16px × 1.5, rounded to the 8px grid */
212
+ --oh-typography-body-sm-line-height: 1.6667; /** 20px at 12px: 12px × 1.5, rounded to the 4px grid */
213
+ --oh-typography-body-xs-line-height: 1.6667; /** 20px at 12px: 12px × 1.5, rounded to the 4px grid */
214
+ --oh-typography-label-base-line-height: 1.5; /** 24px at 16px: 16px × 1.5, rounded to the 8px grid */
215
+ --oh-typography-label-sm-line-height: 1.6667; /** 20px at 12px: 12px × 1.5, rounded to the 4px grid */
216
+ --oh-typography-code-line-height: 1.5; /** 24px at 16px: 16px × 1.5, rounded to the 8px grid */
203
217
  --oh-elevation-offset-xs: 1px;
204
218
  --oh-elevation-offset-sm: 2px;
205
219
  --oh-elevation-offset-md: 3px;
@@ -280,6 +294,7 @@
280
294
  --oh-color-text-on-error: var(--oh-color-white); /** Text on filled color.feedback.error */
281
295
  --oh-color-text-on-warning: var(--oh-color-white); /** Text on filled color.feedback.warning */
282
296
  --oh-color-text-on-info: var(--oh-color-white); /** Text on filled color.feedback.info */
297
+ --oh-font-size-sm: var(--oh-font-size-xs); /** Kept so existing references don't break. On the grid, small text is xs; use xs or a tier 2 role */
283
298
  --oh-shadow-primary: var(--oh-shadow-chunky-primary); /** Primary buttons */
284
299
  --oh-shadow-secondary: var(--oh-shadow-chunky-secondary); /** Secondary/form elements */
285
300
  --oh-shadow-accent: var(--oh-shadow-chunky-accent); /** Accent buttons */
@@ -309,52 +324,39 @@
309
324
  --oh-typography-heading-font-family: var(--oh-font-family-display);
310
325
  --oh-typography-heading-h1-font-size: var(--oh-font-size-4xl);
311
326
  --oh-typography-heading-h1-font-weight: var(--oh-font-weight-bold);
312
- --oh-typography-heading-h1-line-height: var(--oh-font-line-height-tight);
313
327
  --oh-typography-heading-h1-letter-spacing: var(--oh-font-letter-spacing-tighter);
314
328
  --oh-typography-heading-h2-font-size: var(--oh-font-size-3xl);
315
329
  --oh-typography-heading-h2-font-weight: var(--oh-font-weight-bold);
316
- --oh-typography-heading-h2-line-height: var(--oh-font-line-height-tight);
317
330
  --oh-typography-heading-h2-letter-spacing: var(--oh-font-letter-spacing-tight);
318
331
  --oh-typography-heading-h3-font-size: var(--oh-font-size-2xl);
319
332
  --oh-typography-heading-h3-font-weight: var(--oh-font-weight-semibold);
320
- --oh-typography-heading-h3-line-height: var(--oh-font-line-height-snug);
321
333
  --oh-typography-heading-h3-letter-spacing: var(--oh-font-letter-spacing-tight);
322
334
  --oh-typography-heading-h4-font-size: var(--oh-font-size-xl);
323
335
  --oh-typography-heading-h4-font-weight: var(--oh-font-weight-semibold);
324
- --oh-typography-heading-h4-line-height: var(--oh-font-line-height-snug);
325
336
  --oh-typography-heading-h4-letter-spacing: var(--oh-font-letter-spacing-normal);
326
337
  --oh-typography-heading-h5-font-size: var(--oh-font-size-lg);
327
338
  --oh-typography-heading-h5-font-weight: var(--oh-font-weight-medium);
328
- --oh-typography-heading-h5-line-height: var(--oh-font-line-height-normal);
329
339
  --oh-typography-heading-h6-font-size: var(--oh-font-size-base);
330
340
  --oh-typography-heading-h6-font-weight: var(--oh-font-weight-medium);
331
- --oh-typography-heading-h6-line-height: var(--oh-font-line-height-normal);
332
341
  --oh-typography-body-font-family: var(--oh-font-family-sans);
333
342
  --oh-typography-body-xl-font-size: var(--oh-font-size-xl);
334
343
  --oh-typography-body-xl-font-weight: var(--oh-font-weight-normal);
335
- --oh-typography-body-xl-line-height: var(--oh-font-line-height-normal);
336
344
  --oh-typography-body-lg-font-size: var(--oh-font-size-lg);
337
345
  --oh-typography-body-lg-font-weight: var(--oh-font-weight-normal);
338
- --oh-typography-body-lg-line-height: var(--oh-font-line-height-relaxed);
339
346
  --oh-typography-body-base-font-size: var(--oh-font-size-base);
340
347
  --oh-typography-body-base-font-weight: var(--oh-font-weight-normal);
341
- --oh-typography-body-base-line-height: var(--oh-font-line-height-normal);
342
- --oh-typography-body-sm-font-size: var(--oh-font-size-sm);
348
+ --oh-typography-body-sm-font-size: var(--oh-font-size-xs);
343
349
  --oh-typography-body-sm-font-weight: var(--oh-font-weight-normal);
344
- --oh-typography-body-sm-line-height: var(--oh-font-line-height-normal);
345
350
  --oh-typography-body-sm-letter-spacing: var(--oh-font-letter-spacing-wide);
346
351
  --oh-typography-body-xs-font-size: var(--oh-font-size-xs);
347
352
  --oh-typography-body-xs-font-weight: var(--oh-font-weight-normal);
348
- --oh-typography-body-xs-line-height: var(--oh-font-line-height-normal);
349
353
  --oh-typography-body-xs-letter-spacing: var(--oh-font-letter-spacing-wide);
350
354
  --oh-typography-label-font-family: var(--oh-font-family-sans);
351
- --oh-typography-label-base-font-size: var(--oh-font-size-sm);
355
+ --oh-typography-label-base-font-size: var(--oh-font-size-base);
352
356
  --oh-typography-label-base-font-weight: var(--oh-font-weight-medium);
353
- --oh-typography-label-base-line-height: var(--oh-font-line-height-normal); /** 1.5 for WCAG 1.4.12 */
354
357
  --oh-typography-label-base-letter-spacing: var(--oh-font-letter-spacing-wide);
355
358
  --oh-typography-label-sm-font-size: var(--oh-font-size-xs);
356
359
  --oh-typography-label-sm-font-weight: var(--oh-font-weight-medium);
357
- --oh-typography-label-sm-line-height: var(--oh-font-line-height-normal); /** 1.5 for WCAG 1.4.12 */
358
360
  --oh-typography-label-sm-letter-spacing: var(--oh-font-letter-spacing-wide);
359
361
  --oh-typography-eyebrow-font-family: var(--oh-font-family-sans);
360
362
  --oh-typography-eyebrow-font-size: var(--oh-font-size-base);
@@ -368,8 +370,7 @@
368
370
  --oh-typography-control-font-size-lg: var(--oh-font-size-xl); /** Large buttons */
369
371
  --oh-typography-emphasis-font-weight: var(--oh-font-weight-semibold);
370
372
  --oh-typography-code-font-family: var(--oh-font-family-mono);
371
- --oh-typography-code-font-size: var(--oh-font-size-sm);
372
- --oh-typography-code-line-height: var(--oh-font-line-height-normal);
373
+ --oh-typography-code-font-size: var(--oh-font-size-base);
373
374
  --oh-layout-container-sm: var(--oh-size-container-sm);
374
375
  --oh-layout-container-md: var(--oh-size-container-md);
375
376
  --oh-layout-container-lg: var(--oh-size-container-lg);
@@ -410,6 +411,7 @@
410
411
  --oh-button-variant-secondary-background-hover: var(--oh-color-surface-hover);
411
412
  --oh-button-variant-secondary-background-active: var(--oh-color-surface-active-pressed);
412
413
  --oh-button-focus-glow-color: var(--oh-focus-glow-color);
414
+ --oh-input-base-line-height: var(--oh-typography-body-base-line-height);
413
415
  --oh-input-size-md-padding-x: var(--oh-spacing-4);
414
416
  --oh-input-size-md-padding-y: var(--oh-spacing-3);
415
417
  --oh-card-base-padding: var(--oh-spacing-5);
@@ -450,7 +452,6 @@
450
452
  --oh-button-focus-ring-color: var(--oh-focus-ring-color);
451
453
  --oh-input-base-font-family: var(--oh-typography-control-font-family);
452
454
  --oh-input-base-font-size: var(--oh-typography-control-font-size-md);
453
- --oh-input-base-line-height: var(--oh-typography-body-base-line-height);
454
455
  --oh-input-base-border-radius: var(--oh-shape-control);
455
456
  --oh-input-base-border-width: var(--oh-stroke-control);
456
457
  --oh-input-base-transition-duration: var(--oh-motion-snappy);
package/dist/tokens.js CHANGED
@@ -2,6 +2,7 @@
2
2
  * Do not edit directly, this file was auto-generated.
3
3
  */
4
4
 
5
+ export const OhGridUnit = "8px"; // 8px grid with 4px half-steps
5
6
  export const OhColorOrange50 = "#fff3e0";
6
7
  export const OhColorOrange100 = "#ffe0b2";
7
8
  export const OhColorOrange200 = "#ffcc80";
@@ -150,14 +151,14 @@ export const OhFontFamilyDisplay =
150
151
  export const OhFontFamilyMono =
151
152
  "'JetBrains Mono', 'Fira Code', ui-monospace, monospace";
152
153
  export const OhFontSizeXs = "0.75rem"; // 12px
153
- export const OhFontSizeSm = "0.875rem"; // 14px
154
+ export const OhFontSizeSm = "0.75rem"; // Kept so existing references don't break. On the grid, small text is xs; use xs or a tier 2 role
154
155
  export const OhFontSizeBase = "1rem"; // 16px
155
- export const OhFontSizeLg = "1.125rem"; // 18px
156
- export const OhFontSizeXl = "1.25rem"; // 20px
157
- export const OhFontSize2xl = "1.625rem"; // 26px
156
+ export const OhFontSizeLg = "1.25rem"; // 20px
157
+ export const OhFontSizeXl = "1.5rem"; // 24px
158
+ export const OhFontSize2xl = "1.75rem"; // 28px
158
159
  export const OhFontSize3xl = "2rem"; // 32px
159
- export const OhFontSize4xl = "2.625rem"; // 42px
160
- export const OhFontSize5xl = "3.25rem"; // 52px
160
+ export const OhFontSize4xl = "2.5rem"; // 40px
161
+ export const OhFontSize5xl = "3rem"; // 48px
161
162
  export const OhFontWeightNormal = "400";
162
163
  export const OhFontWeightMedium = "500";
163
164
  export const OhFontWeightSemibold = "600";
@@ -295,56 +296,56 @@ export const OhZIndexPopover = 1300;
295
296
  export const OhZIndexTooltip = 1400;
296
297
  export const OhTypographyHeadingFontFamily =
297
298
  "'Bricolage Grotesque', 'General Sans', sans-serif";
298
- export const OhTypographyHeadingH1FontSize = "2.625rem";
299
+ export const OhTypographyHeadingH1FontSize = "2.5rem";
299
300
  export const OhTypographyHeadingH1FontWeight = "700";
300
- export const OhTypographyHeadingH1LineHeight = 1.25;
301
+ export const OhTypographyHeadingH1LineHeight = 1.2; // 48px at 40px: 40px × 1.25, rounded to the 8px grid
301
302
  export const OhTypographyHeadingH1LetterSpacing = "-0.02em";
302
303
  export const OhTypographyHeadingH2FontSize = "2rem";
303
304
  export const OhTypographyHeadingH2FontWeight = "700";
304
- export const OhTypographyHeadingH2LineHeight = 1.25;
305
+ export const OhTypographyHeadingH2LineHeight = 1.25; // 40px at 32px: 32px × 1.25, rounded to the 8px grid
305
306
  export const OhTypographyHeadingH2LetterSpacing = "-0.01em";
306
- export const OhTypographyHeadingH3FontSize = "1.625rem";
307
+ export const OhTypographyHeadingH3FontSize = "1.75rem";
307
308
  export const OhTypographyHeadingH3FontWeight = "600";
308
- export const OhTypographyHeadingH3LineHeight = 1.35;
309
+ export const OhTypographyHeadingH3LineHeight = 1.4286; // 40px at 28px: 28px × 1.35, rounded to the 8px grid
309
310
  export const OhTypographyHeadingH3LetterSpacing = "-0.01em";
310
- export const OhTypographyHeadingH4FontSize = "1.25rem";
311
+ export const OhTypographyHeadingH4FontSize = "1.5rem";
311
312
  export const OhTypographyHeadingH4FontWeight = "600";
312
- export const OhTypographyHeadingH4LineHeight = 1.35;
313
+ export const OhTypographyHeadingH4LineHeight = 1.3333; // 32px at 24px: 24px × 1.35, rounded to the 8px grid
313
314
  export const OhTypographyHeadingH4LetterSpacing = "0";
314
- export const OhTypographyHeadingH5FontSize = "1.125rem";
315
+ export const OhTypographyHeadingH5FontSize = "1.25rem";
315
316
  export const OhTypographyHeadingH5FontWeight = "500";
316
- export const OhTypographyHeadingH5LineHeight = 1.5;
317
+ export const OhTypographyHeadingH5LineHeight = 1.6; // 32px at 20px: 20px × 1.5, rounded to the 8px grid
317
318
  export const OhTypographyHeadingH6FontSize = "1rem";
318
319
  export const OhTypographyHeadingH6FontWeight = "500";
319
- export const OhTypographyHeadingH6LineHeight = 1.5;
320
+ export const OhTypographyHeadingH6LineHeight = 1.5; // 24px at 16px: 16px × 1.5, rounded to the 8px grid
320
321
  export const OhTypographyBodyFontFamily =
321
322
  "'Bricolage Grotesque', 'General Sans', -apple-system, BlinkMacSystemFont, sans-serif";
322
- export const OhTypographyBodyXlFontSize = "1.25rem";
323
+ export const OhTypographyBodyXlFontSize = "1.5rem";
323
324
  export const OhTypographyBodyXlFontWeight = "400";
324
- export const OhTypographyBodyXlLineHeight = 1.5;
325
- export const OhTypographyBodyLgFontSize = "1.125rem";
325
+ export const OhTypographyBodyXlLineHeight = 1.6667; // 40px at 24px: 24px × 1.5, rounded to the 8px grid
326
+ export const OhTypographyBodyLgFontSize = "1.25rem";
326
327
  export const OhTypographyBodyLgFontWeight = "400";
327
- export const OhTypographyBodyLgLineHeight = 1.65;
328
+ export const OhTypographyBodyLgLineHeight = 1.6; // 32px at 20px: 20px × 1.65, rounded to the 8px grid
328
329
  export const OhTypographyBodyBaseFontSize = "1rem";
329
330
  export const OhTypographyBodyBaseFontWeight = "400";
330
- export const OhTypographyBodyBaseLineHeight = 1.5;
331
- export const OhTypographyBodySmFontSize = "0.875rem";
331
+ export const OhTypographyBodyBaseLineHeight = 1.5; // 24px at 16px: 16px × 1.5, rounded to the 8px grid
332
+ export const OhTypographyBodySmFontSize = "0.75rem";
332
333
  export const OhTypographyBodySmFontWeight = "400";
333
- export const OhTypographyBodySmLineHeight = 1.5;
334
+ export const OhTypographyBodySmLineHeight = 1.6667; // 20px at 12px: 12px × 1.5, rounded to the 4px grid
334
335
  export const OhTypographyBodySmLetterSpacing = "0.01em";
335
336
  export const OhTypographyBodyXsFontSize = "0.75rem";
336
337
  export const OhTypographyBodyXsFontWeight = "400";
337
- export const OhTypographyBodyXsLineHeight = 1.5;
338
+ export const OhTypographyBodyXsLineHeight = 1.6667; // 20px at 12px: 12px × 1.5, rounded to the 4px grid
338
339
  export const OhTypographyBodyXsLetterSpacing = "0.01em";
339
340
  export const OhTypographyLabelFontFamily =
340
341
  "'Bricolage Grotesque', 'General Sans', -apple-system, BlinkMacSystemFont, sans-serif";
341
- export const OhTypographyLabelBaseFontSize = "0.875rem";
342
+ export const OhTypographyLabelBaseFontSize = "1rem";
342
343
  export const OhTypographyLabelBaseFontWeight = "500";
343
- export const OhTypographyLabelBaseLineHeight = 1.5; // 1.5 for WCAG 1.4.12
344
+ export const OhTypographyLabelBaseLineHeight = 1.5; // 24px at 16px: 16px × 1.5, rounded to the 8px grid
344
345
  export const OhTypographyLabelBaseLetterSpacing = "0.01em";
345
346
  export const OhTypographyLabelSmFontSize = "0.75rem";
346
347
  export const OhTypographyLabelSmFontWeight = "500";
347
- export const OhTypographyLabelSmLineHeight = 1.5; // 1.5 for WCAG 1.4.12
348
+ export const OhTypographyLabelSmLineHeight = 1.6667; // 20px at 12px: 12px × 1.5, rounded to the 4px grid
348
349
  export const OhTypographyLabelSmLetterSpacing = "0.01em";
349
350
  export const OhTypographyEyebrowFontFamily =
350
351
  "'Bricolage Grotesque', 'General Sans', -apple-system, BlinkMacSystemFont, sans-serif";
@@ -356,13 +357,13 @@ export const OhTypographyControlFontFamily =
356
357
  export const OhTypographyControlFontWeight = "600";
357
358
  export const OhTypographyControlLetterSpacing = "0.01em";
358
359
  export const OhTypographyControlFontSizeSm = "1rem"; // Small buttons, field labels
359
- export const OhTypographyControlFontSizeMd = "1.125rem"; // Default: input text, choices, buttons
360
- export const OhTypographyControlFontSizeLg = "1.25rem"; // Large buttons
360
+ export const OhTypographyControlFontSizeMd = "1.25rem"; // Default: input text, choices, buttons
361
+ export const OhTypographyControlFontSizeLg = "1.5rem"; // Large buttons
361
362
  export const OhTypographyEmphasisFontWeight = "600";
362
363
  export const OhTypographyCodeFontFamily =
363
364
  "'JetBrains Mono', 'Fira Code', ui-monospace, monospace";
364
- export const OhTypographyCodeFontSize = "0.875rem";
365
- export const OhTypographyCodeLineHeight = 1.5;
365
+ export const OhTypographyCodeFontSize = "1rem";
366
+ export const OhTypographyCodeLineHeight = 1.5; // 24px at 16px: 16px × 1.5, rounded to the 8px grid
366
367
  export const OhLayoutContainerSm = "640px";
367
368
  export const OhLayoutContainerMd = "768px";
368
369
  export const OhLayoutContainerLg = "1024px";
@@ -433,12 +434,12 @@ export const OhButtonSizeSmPaddingX = "1rem";
433
434
  export const OhButtonSizeSmPaddingY = "0.5rem";
434
435
  export const OhButtonSizeSmMinHeight = "40px";
435
436
  export const OhButtonSizeSmGap = "0.5rem";
436
- export const OhButtonSizeMdFontSize = "1.125rem";
437
+ export const OhButtonSizeMdFontSize = "1.25rem";
437
438
  export const OhButtonSizeMdPaddingX = "1.5rem";
438
439
  export const OhButtonSizeMdPaddingY = "0.75rem";
439
440
  export const OhButtonSizeMdMinHeight = "48px";
440
441
  export const OhButtonSizeMdGap = "0.5rem";
441
- export const OhButtonSizeLgFontSize = "1.25rem";
442
+ export const OhButtonSizeLgFontSize = "1.5rem";
442
443
  export const OhButtonSizeLgPaddingX = "2rem";
443
444
  export const OhButtonSizeLgPaddingY = "1rem";
444
445
  export const OhButtonSizeLgMinHeight = "56px";
@@ -465,7 +466,7 @@ export const OhButtonFocusRingColor = "#c54300";
465
466
  export const OhButtonFocusGlowColor = "#c5430026";
466
467
  export const OhInputBaseFontFamily =
467
468
  "'Bricolage Grotesque', 'General Sans', -apple-system, BlinkMacSystemFont, sans-serif";
468
- export const OhInputBaseFontSize = "1.125rem";
469
+ export const OhInputBaseFontSize = "1.25rem";
469
470
  export const OhInputBaseLineHeight = 1.5;
470
471
  export const OhInputBaseBorderRadius = "10px";
471
472
  export const OhInputBaseBorderWidth = "2.5px";