@conductor-by-89soone/tokens 0.4.0 → 0.6.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/cli.js CHANGED
@@ -271,7 +271,13 @@ var motion = [
271
271
  semantic("motion.fast", "140ms {ease.entrance}", "Colour, background and border transitions."),
272
272
  semantic("motion.standard", "240ms {ease.entrance}", "Overlay and page entrance."),
273
273
  semantic("motion.bounce", "300ms {ease.overshoot}", "Toggle and switch settle."),
274
- semantic("motion.spin", "1000ms {ease.linear}", "One revolution of the indeterminate spinner.")
274
+ semantic("motion.spin", "1000ms {ease.linear}", "One revolution of the indeterminate spinner."),
275
+ // CR-047: a press, an exit, a large surface, a spring settle, and the step between staged items.
276
+ semantic("motion.instant", "90ms {ease.entrance}", "Press feedback and pointer-tracking highlights."),
277
+ semantic("motion.exit", "160ms {ease.exit}", "Overlay, popover and drawer exits."),
278
+ semantic("motion.slow", "420ms {ease.emphasized}", "Drawers and other large surfaces entering."),
279
+ semantic("motion.spring", "520ms {ease.spring}", "Spring settle for dialogs, popovers and checked indicators (entrances only)."),
280
+ semantic("motion.stagger", "45ms", "Delay step between items of a staged entrance; a duration, never an easing.")
275
281
  ];
276
282
  var scaleTokens = [
277
283
  ...fontSize,
@@ -477,13 +483,17 @@ var overlay = [
477
483
  component("overlay.drawerBackground", ref("surface.raised"), "Drawer panel fill."),
478
484
  component("overlay.drawerWidth", value("500px"), "Drawer panel width."),
479
485
  component("overlay.enter", ref("motion.standard"), "Overlay entrance."),
480
- component("overlay.exit", ref("motion.fast"), "Overlay exit.")
486
+ component("overlay.exit", ref("motion.exit"), "Overlay exit.")
481
487
  ];
482
488
  var HEADING_MIN_PX = FONT_SIZE_PX.xl * 1.2;
483
489
  var HEADING_MAX_PX = FONT_SIZE_PX.xl * 1.6;
484
490
  var H2_PX = Math.round(FONT_SIZE_PX.xl * 1.3);
485
491
  var H3_PX = Math.round(FONT_SIZE_PX.xl * 1.1);
486
492
  var HEADING_LINE_HEIGHT_RATIO = 1.3;
493
+ var DISPLAY_MIN_PX = Math.round(FONT_SIZE_PX.xl * 1.8);
494
+ var DISPLAY_MAX_PX = Math.round(FONT_SIZE_PX.xl * 3.2);
495
+ var LEAD_PX = Math.round(FONT_SIZE_PX.xl * 0.9);
496
+ var LEAD_LINE_HEIGHT_RATIO = 1.5;
487
497
  var page = [
488
498
  component(
489
499
  "page.headingSize",
@@ -515,6 +525,26 @@ var page = [
515
525
  value(`${roundHalfUp(H3_PX * HEADING_LINE_HEIGHT_RATIO)}px`),
516
526
  "Line height paired with `page.subHeadingSize`, at the 1.30 heading ratio."
517
527
  ),
528
+ component(
529
+ "page.displaySize",
530
+ value(`clamp(${DISPLAY_MIN_PX}px, 5.5vw, ${DISPLAY_MAX_PX}px)`),
531
+ "Display heading for a landing hero, derived from `font.size.xl` (\xD7 1.8 and \xD7 3.2). One step above `page.headingSize`; never a body size (CR-042)."
532
+ ),
533
+ component(
534
+ "page.displayLineHeight",
535
+ value("1.04"),
536
+ "Unitless like `page.headingLineHeight`: `clamp()` makes a px value impossible here."
537
+ ),
538
+ component(
539
+ "page.leadSize",
540
+ value(`${LEAD_PX}px`),
541
+ "Lead paragraph under a page or hero heading. `font.size.xl` \xD7 0.9; sits between `font.size.lg` and `font.size.xl` (CR-042)."
542
+ ),
543
+ component(
544
+ "page.leadLineHeight",
545
+ value(`${roundHalfUp(LEAD_PX * LEAD_LINE_HEIGHT_RATIO)}px`),
546
+ "Line height paired with `page.leadSize`, at the 1.50 body ratio."
547
+ ),
518
548
  component("page.stackGap", ref("space.6"), "Gap between page sections."),
519
549
  component("page.stackGapCompact", ref("space.5"), "Section gap below `breakpoint.sm`."),
520
550
  component("page.contentStackGap", ref("space.5"), "Gap inside a content stack."),
@@ -1290,7 +1320,15 @@ var nonColour = [
1290
1320
  primitive("curve.24", "24px", "Corner radius step."),
1291
1321
  primitive("ease.entrance", "cubic-bezier(0.2, 0, 0, 1)", "Entrance and state-change easing."),
1292
1322
  primitive("ease.overshoot", "cubic-bezier(0.34, 1.56, 0.64, 1)", "Toggle settle easing."),
1293
- primitive("ease.linear", "linear", "Constant-rate motion: spinners and marquees.")
1323
+ primitive("ease.linear", "linear", "Constant-rate motion: spinners and marquees."),
1324
+ // CR-047: exits accelerate away, large surfaces decelerate hard, and settles follow a sampled spring.
1325
+ primitive("ease.exit", "cubic-bezier(0.4, 0, 1, 1)", "Exit easing: accelerates out of view."),
1326
+ primitive("ease.emphasized", "cubic-bezier(0.05, 0.7, 0.1, 1)", "Emphasized deceleration for large surfaces and hero entrances."),
1327
+ primitive(
1328
+ "ease.spring",
1329
+ "linear(0, 0.075 5%, 0.242 10%, 0.435 15%, 0.616 20%, 0.766 25%, 0.878 30%, 0.967 36%, 1.015 42%, 1.037 50%, 1.033 60%, 1.012 75%, 1)",
1330
+ "Damped spring (ratio 0.72, ~4% overshoot) sampled into linear(); entrances only."
1331
+ )
1294
1332
  ];
1295
1333
  var primitiveTokens = [
1296
1334
  ...ink,
@@ -492,7 +492,13 @@ var motion = [
492
492
  semantic("motion.fast", "140ms {ease.entrance}", "Colour, background and border transitions."),
493
493
  semantic("motion.standard", "240ms {ease.entrance}", "Overlay and page entrance."),
494
494
  semantic("motion.bounce", "300ms {ease.overshoot}", "Toggle and switch settle."),
495
- semantic("motion.spin", "1000ms {ease.linear}", "One revolution of the indeterminate spinner.")
495
+ semantic("motion.spin", "1000ms {ease.linear}", "One revolution of the indeterminate spinner."),
496
+ // CR-047: a press, an exit, a large surface, a spring settle, and the step between staged items.
497
+ semantic("motion.instant", "90ms {ease.entrance}", "Press feedback and pointer-tracking highlights."),
498
+ semantic("motion.exit", "160ms {ease.exit}", "Overlay, popover and drawer exits."),
499
+ semantic("motion.slow", "420ms {ease.emphasized}", "Drawers and other large surfaces entering."),
500
+ semantic("motion.spring", "520ms {ease.spring}", "Spring settle for dialogs, popovers and checked indicators (entrances only)."),
501
+ semantic("motion.stagger", "45ms", "Delay step between items of a staged entrance; a duration, never an easing.")
496
502
  ];
497
503
  var scaleTokens = [
498
504
  ...fontSize,
@@ -698,13 +704,17 @@ var overlay = [
698
704
  component("overlay.drawerBackground", ref("surface.raised"), "Drawer panel fill."),
699
705
  component("overlay.drawerWidth", value("500px"), "Drawer panel width."),
700
706
  component("overlay.enter", ref("motion.standard"), "Overlay entrance."),
701
- component("overlay.exit", ref("motion.fast"), "Overlay exit.")
707
+ component("overlay.exit", ref("motion.exit"), "Overlay exit.")
702
708
  ];
703
709
  var HEADING_MIN_PX = FONT_SIZE_PX.xl * 1.2;
704
710
  var HEADING_MAX_PX = FONT_SIZE_PX.xl * 1.6;
705
711
  var H2_PX = Math.round(FONT_SIZE_PX.xl * 1.3);
706
712
  var H3_PX = Math.round(FONT_SIZE_PX.xl * 1.1);
707
713
  var HEADING_LINE_HEIGHT_RATIO = 1.3;
714
+ var DISPLAY_MIN_PX = Math.round(FONT_SIZE_PX.xl * 1.8);
715
+ var DISPLAY_MAX_PX = Math.round(FONT_SIZE_PX.xl * 3.2);
716
+ var LEAD_PX = Math.round(FONT_SIZE_PX.xl * 0.9);
717
+ var LEAD_LINE_HEIGHT_RATIO = 1.5;
708
718
  var page = [
709
719
  component(
710
720
  "page.headingSize",
@@ -736,6 +746,26 @@ var page = [
736
746
  value(`${roundHalfUp(H3_PX * HEADING_LINE_HEIGHT_RATIO)}px`),
737
747
  "Line height paired with `page.subHeadingSize`, at the 1.30 heading ratio."
738
748
  ),
749
+ component(
750
+ "page.displaySize",
751
+ value(`clamp(${DISPLAY_MIN_PX}px, 5.5vw, ${DISPLAY_MAX_PX}px)`),
752
+ "Display heading for a landing hero, derived from `font.size.xl` (\xD7 1.8 and \xD7 3.2). One step above `page.headingSize`; never a body size (CR-042)."
753
+ ),
754
+ component(
755
+ "page.displayLineHeight",
756
+ value("1.04"),
757
+ "Unitless like `page.headingLineHeight`: `clamp()` makes a px value impossible here."
758
+ ),
759
+ component(
760
+ "page.leadSize",
761
+ value(`${LEAD_PX}px`),
762
+ "Lead paragraph under a page or hero heading. `font.size.xl` \xD7 0.9; sits between `font.size.lg` and `font.size.xl` (CR-042)."
763
+ ),
764
+ component(
765
+ "page.leadLineHeight",
766
+ value(`${roundHalfUp(LEAD_PX * LEAD_LINE_HEIGHT_RATIO)}px`),
767
+ "Line height paired with `page.leadSize`, at the 1.50 body ratio."
768
+ ),
739
769
  component("page.stackGap", ref("space.6"), "Gap between page sections."),
740
770
  component("page.stackGapCompact", ref("space.5"), "Section gap below `breakpoint.sm`."),
741
771
  component("page.contentStackGap", ref("space.5"), "Gap inside a content stack."),
@@ -1511,7 +1541,15 @@ var nonColour = [
1511
1541
  primitive("curve.24", "24px", "Corner radius step."),
1512
1542
  primitive("ease.entrance", "cubic-bezier(0.2, 0, 0, 1)", "Entrance and state-change easing."),
1513
1543
  primitive("ease.overshoot", "cubic-bezier(0.34, 1.56, 0.64, 1)", "Toggle settle easing."),
1514
- primitive("ease.linear", "linear", "Constant-rate motion: spinners and marquees.")
1544
+ primitive("ease.linear", "linear", "Constant-rate motion: spinners and marquees."),
1545
+ // CR-047: exits accelerate away, large surfaces decelerate hard, and settles follow a sampled spring.
1546
+ primitive("ease.exit", "cubic-bezier(0.4, 0, 1, 1)", "Exit easing: accelerates out of view."),
1547
+ primitive("ease.emphasized", "cubic-bezier(0.05, 0.7, 0.1, 1)", "Emphasized deceleration for large surfaces and hero entrances."),
1548
+ primitive(
1549
+ "ease.spring",
1550
+ "linear(0, 0.075 5%, 0.242 10%, 0.435 15%, 0.616 20%, 0.766 25%, 0.878 30%, 0.967 36%, 1.015 42%, 1.037 50%, 1.033 60%, 1.012 75%, 1)",
1551
+ "Damped spring (ratio 0.72, ~4% overshoot) sampled into linear(); entrances only."
1552
+ )
1515
1553
  ];
1516
1554
  var primitiveTokens = [
1517
1555
  ...ink,
@@ -14,7 +14,7 @@
14
14
  "checks": 232,
15
15
  "passed": 232,
16
16
  "failed": 0,
17
- "excludedTokens": 232,
17
+ "excludedTokens": 241,
18
18
  "forbiddenPairs": 2
19
19
  },
20
20
  "results": [
@@ -3396,6 +3396,31 @@
3396
3396
  "usage": "decorative",
3397
3397
  "reason": "One revolution of the indeterminate spinner."
3398
3398
  },
3399
+ {
3400
+ "key": "motion.instant",
3401
+ "usage": "decorative",
3402
+ "reason": "Press feedback and pointer-tracking highlights."
3403
+ },
3404
+ {
3405
+ "key": "motion.exit",
3406
+ "usage": "decorative",
3407
+ "reason": "Overlay, popover and drawer exits."
3408
+ },
3409
+ {
3410
+ "key": "motion.slow",
3411
+ "usage": "decorative",
3412
+ "reason": "Drawers and other large surfaces entering."
3413
+ },
3414
+ {
3415
+ "key": "motion.spring",
3416
+ "usage": "decorative",
3417
+ "reason": "Spring settle for dialogs, popovers and checked indicators (entrances only)."
3418
+ },
3419
+ {
3420
+ "key": "motion.stagger",
3421
+ "usage": "decorative",
3422
+ "reason": "Delay step between items of a staged entrance; a duration, never an easing."
3423
+ },
3399
3424
  {
3400
3425
  "key": "button.minHeight",
3401
3426
  "usage": "decorative",
@@ -4031,6 +4056,26 @@
4031
4056
  "usage": "decorative",
4032
4057
  "reason": "Line height paired with `page.subHeadingSize`, at the 1.30 heading ratio."
4033
4058
  },
4059
+ {
4060
+ "key": "page.displaySize",
4061
+ "usage": "decorative",
4062
+ "reason": "Display heading for a landing hero, derived from `font.size.xl` (× 1.8 and × 3.2). One step above `page.headingSize`; never a body size (CR-042)."
4063
+ },
4064
+ {
4065
+ "key": "page.displayLineHeight",
4066
+ "usage": "decorative",
4067
+ "reason": "Unitless like `page.headingLineHeight`: `clamp()` makes a px value impossible here."
4068
+ },
4069
+ {
4070
+ "key": "page.leadSize",
4071
+ "usage": "decorative",
4072
+ "reason": "Lead paragraph under a page or hero heading. `font.size.xl` × 0.9; sits between `font.size.lg` and `font.size.xl` (CR-042)."
4073
+ },
4074
+ {
4075
+ "key": "page.leadLineHeight",
4076
+ "usage": "decorative",
4077
+ "reason": "Line height paired with `page.leadSize`, at the 1.50 body ratio."
4078
+ },
4034
4079
  {
4035
4080
  "key": "page.stackGap",
4036
4081
  "usage": "decorative",
package/dist/index.js CHANGED
@@ -169,7 +169,12 @@ var tokens = {
169
169
  fast: "var(--cdt-motion-fast)",
170
170
  standard: "var(--cdt-motion-standard)",
171
171
  bounce: "var(--cdt-motion-bounce)",
172
- spin: "var(--cdt-motion-spin)"
172
+ spin: "var(--cdt-motion-spin)",
173
+ instant: "var(--cdt-motion-instant)",
174
+ exit: "var(--cdt-motion-exit)",
175
+ slow: "var(--cdt-motion-slow)",
176
+ spring: "var(--cdt-motion-spring)",
177
+ stagger: "var(--cdt-motion-stagger)"
173
178
  },
174
179
  button: {
175
180
  minHeight: "var(--cdt-button-min-height)",
@@ -380,6 +385,10 @@ var tokens = {
380
385
  sectionHeadingLineHeight: "var(--cdt-page-section-heading-line-height)",
381
386
  subHeadingSize: "var(--cdt-page-sub-heading-size)",
382
387
  subHeadingLineHeight: "var(--cdt-page-sub-heading-line-height)",
388
+ displaySize: "var(--cdt-page-display-size)",
389
+ displayLineHeight: "var(--cdt-page-display-line-height)",
390
+ leadSize: "var(--cdt-page-lead-size)",
391
+ leadLineHeight: "var(--cdt-page-lead-line-height)",
383
392
  stackGap: "var(--cdt-page-stack-gap)",
384
393
  stackGapCompact: "var(--cdt-page-stack-gap-compact)",
385
394
  contentStackGap: "var(--cdt-page-content-stack-gap)",
package/dist/tokens.css CHANGED
@@ -145,6 +145,11 @@
145
145
  --cdt-motion-standard: 240ms cubic-bezier(0.2, 0, 0, 1);
146
146
  --cdt-motion-bounce: 300ms cubic-bezier(0.34, 1.56, 0.64, 1);
147
147
  --cdt-motion-spin: 1000ms linear;
148
+ --cdt-motion-instant: 90ms cubic-bezier(0.2, 0, 0, 1);
149
+ --cdt-motion-exit: 160ms cubic-bezier(0.4, 0, 1, 1);
150
+ --cdt-motion-slow: 420ms cubic-bezier(0.05, 0.7, 0.1, 1);
151
+ --cdt-motion-spring: 520ms linear(0, 0.075 5%, 0.242 10%, 0.435 15%, 0.616 20%, 0.766 25%, 0.878 30%, 0.967 36%, 1.015 42%, 1.037 50%, 1.033 60%, 1.012 75%, 1);
152
+ --cdt-motion-stagger: 45ms;
148
153
 
149
154
  --cdt-button-min-height: 40px;
150
155
  --cdt-button-min-height-compact: 42px;
@@ -302,7 +307,7 @@
302
307
  --cdt-overlay-drawer-background: #141d2a;
303
308
  --cdt-overlay-drawer-width: 500px;
304
309
  --cdt-overlay-enter: 240ms cubic-bezier(0.2, 0, 0, 1);
305
- --cdt-overlay-exit: 140ms cubic-bezier(0.2, 0, 0, 1);
310
+ --cdt-overlay-exit: 160ms cubic-bezier(0.4, 0, 1, 1);
306
311
 
307
312
  --cdt-page-heading-size: clamp(24px, 3vw, 32px);
308
313
  --cdt-page-heading-line-height: 1.16;
@@ -310,6 +315,10 @@
310
315
  --cdt-page-section-heading-line-height: 34px;
311
316
  --cdt-page-sub-heading-size: 22px;
312
317
  --cdt-page-sub-heading-line-height: 29px;
318
+ --cdt-page-display-size: clamp(36px, 5.5vw, 64px);
319
+ --cdt-page-display-line-height: 1.04;
320
+ --cdt-page-lead-size: 18px;
321
+ --cdt-page-lead-line-height: 27px;
313
322
  --cdt-page-stack-gap: 32px;
314
323
  --cdt-page-stack-gap-compact: 24px;
315
324
  --cdt-page-content-stack-gap: 24px;
@@ -494,6 +503,11 @@
494
503
  --cdt-motion-standard: 240ms cubic-bezier(0.2, 0, 0, 1);
495
504
  --cdt-motion-bounce: 300ms cubic-bezier(0.34, 1.56, 0.64, 1);
496
505
  --cdt-motion-spin: 1000ms linear;
506
+ --cdt-motion-instant: 90ms cubic-bezier(0.2, 0, 0, 1);
507
+ --cdt-motion-exit: 160ms cubic-bezier(0.4, 0, 1, 1);
508
+ --cdt-motion-slow: 420ms cubic-bezier(0.05, 0.7, 0.1, 1);
509
+ --cdt-motion-spring: 520ms linear(0, 0.075 5%, 0.242 10%, 0.435 15%, 0.616 20%, 0.766 25%, 0.878 30%, 0.967 36%, 1.015 42%, 1.037 50%, 1.033 60%, 1.012 75%, 1);
510
+ --cdt-motion-stagger: 45ms;
497
511
 
498
512
  --cdt-button-min-height: 40px;
499
513
  --cdt-button-min-height-compact: 42px;
@@ -651,7 +665,7 @@
651
665
  --cdt-overlay-drawer-background: #fbfcfd;
652
666
  --cdt-overlay-drawer-width: 500px;
653
667
  --cdt-overlay-enter: 240ms cubic-bezier(0.2, 0, 0, 1);
654
- --cdt-overlay-exit: 140ms cubic-bezier(0.2, 0, 0, 1);
668
+ --cdt-overlay-exit: 160ms cubic-bezier(0.4, 0, 1, 1);
655
669
 
656
670
  --cdt-page-heading-size: clamp(24px, 3vw, 32px);
657
671
  --cdt-page-heading-line-height: 1.16;
@@ -659,6 +673,10 @@
659
673
  --cdt-page-section-heading-line-height: 34px;
660
674
  --cdt-page-sub-heading-size: 22px;
661
675
  --cdt-page-sub-heading-line-height: 29px;
676
+ --cdt-page-display-size: clamp(36px, 5.5vw, 64px);
677
+ --cdt-page-display-line-height: 1.04;
678
+ --cdt-page-lead-size: 18px;
679
+ --cdt-page-lead-line-height: 27px;
662
680
  --cdt-page-stack-gap: 32px;
663
681
  --cdt-page-stack-gap-compact: 24px;
664
682
  --cdt-page-content-stack-gap: 24px;
@@ -844,6 +862,11 @@
844
862
  --cdt-motion-standard: 240ms cubic-bezier(0.2, 0, 0, 1);
845
863
  --cdt-motion-bounce: 300ms cubic-bezier(0.34, 1.56, 0.64, 1);
846
864
  --cdt-motion-spin: 1000ms linear;
865
+ --cdt-motion-instant: 90ms cubic-bezier(0.2, 0, 0, 1);
866
+ --cdt-motion-exit: 160ms cubic-bezier(0.4, 0, 1, 1);
867
+ --cdt-motion-slow: 420ms cubic-bezier(0.05, 0.7, 0.1, 1);
868
+ --cdt-motion-spring: 520ms linear(0, 0.075 5%, 0.242 10%, 0.435 15%, 0.616 20%, 0.766 25%, 0.878 30%, 0.967 36%, 1.015 42%, 1.037 50%, 1.033 60%, 1.012 75%, 1);
869
+ --cdt-motion-stagger: 45ms;
847
870
 
848
871
  --cdt-button-min-height: 40px;
849
872
  --cdt-button-min-height-compact: 42px;
@@ -1001,7 +1024,7 @@
1001
1024
  --cdt-overlay-drawer-background: #fbfcfd;
1002
1025
  --cdt-overlay-drawer-width: 500px;
1003
1026
  --cdt-overlay-enter: 240ms cubic-bezier(0.2, 0, 0, 1);
1004
- --cdt-overlay-exit: 140ms cubic-bezier(0.2, 0, 0, 1);
1027
+ --cdt-overlay-exit: 160ms cubic-bezier(0.4, 0, 1, 1);
1005
1028
 
1006
1029
  --cdt-page-heading-size: clamp(24px, 3vw, 32px);
1007
1030
  --cdt-page-heading-line-height: 1.16;
@@ -1009,6 +1032,10 @@
1009
1032
  --cdt-page-section-heading-line-height: 34px;
1010
1033
  --cdt-page-sub-heading-size: 22px;
1011
1034
  --cdt-page-sub-heading-line-height: 29px;
1035
+ --cdt-page-display-size: clamp(36px, 5.5vw, 64px);
1036
+ --cdt-page-display-line-height: 1.04;
1037
+ --cdt-page-lead-size: 18px;
1038
+ --cdt-page-lead-line-height: 27px;
1012
1039
  --cdt-page-stack-gap: 32px;
1013
1040
  --cdt-page-stack-gap-compact: 24px;
1014
1041
  --cdt-page-content-stack-gap: 24px;
package/dist/tokens.d.ts CHANGED
@@ -172,6 +172,11 @@ declare const tokens: {
172
172
  readonly standard: "var(--cdt-motion-standard)";
173
173
  readonly bounce: "var(--cdt-motion-bounce)";
174
174
  readonly spin: "var(--cdt-motion-spin)";
175
+ readonly instant: "var(--cdt-motion-instant)";
176
+ readonly exit: "var(--cdt-motion-exit)";
177
+ readonly slow: "var(--cdt-motion-slow)";
178
+ readonly spring: "var(--cdt-motion-spring)";
179
+ readonly stagger: "var(--cdt-motion-stagger)";
175
180
  };
176
181
  readonly button: {
177
182
  readonly minHeight: "var(--cdt-button-min-height)";
@@ -382,6 +387,10 @@ declare const tokens: {
382
387
  readonly sectionHeadingLineHeight: "var(--cdt-page-section-heading-line-height)";
383
388
  readonly subHeadingSize: "var(--cdt-page-sub-heading-size)";
384
389
  readonly subHeadingLineHeight: "var(--cdt-page-sub-heading-line-height)";
390
+ readonly displaySize: "var(--cdt-page-display-size)";
391
+ readonly displayLineHeight: "var(--cdt-page-display-line-height)";
392
+ readonly leadSize: "var(--cdt-page-lead-size)";
393
+ readonly leadLineHeight: "var(--cdt-page-lead-line-height)";
385
394
  readonly stackGap: "var(--cdt-page-stack-gap)";
386
395
  readonly stackGapCompact: "var(--cdt-page-stack-gap-compact)";
387
396
  readonly contentStackGap: "var(--cdt-page-content-stack-gap)";
package/dist/tokens.js CHANGED
@@ -165,7 +165,12 @@ var tokens = {
165
165
  fast: "var(--cdt-motion-fast)",
166
166
  standard: "var(--cdt-motion-standard)",
167
167
  bounce: "var(--cdt-motion-bounce)",
168
- spin: "var(--cdt-motion-spin)"
168
+ spin: "var(--cdt-motion-spin)",
169
+ instant: "var(--cdt-motion-instant)",
170
+ exit: "var(--cdt-motion-exit)",
171
+ slow: "var(--cdt-motion-slow)",
172
+ spring: "var(--cdt-motion-spring)",
173
+ stagger: "var(--cdt-motion-stagger)"
169
174
  },
170
175
  button: {
171
176
  minHeight: "var(--cdt-button-min-height)",
@@ -376,6 +381,10 @@ var tokens = {
376
381
  sectionHeadingLineHeight: "var(--cdt-page-section-heading-line-height)",
377
382
  subHeadingSize: "var(--cdt-page-sub-heading-size)",
378
383
  subHeadingLineHeight: "var(--cdt-page-sub-heading-line-height)",
384
+ displaySize: "var(--cdt-page-display-size)",
385
+ displayLineHeight: "var(--cdt-page-display-line-height)",
386
+ leadSize: "var(--cdt-page-lead-size)",
387
+ leadLineHeight: "var(--cdt-page-lead-line-height)",
379
388
  stackGap: "var(--cdt-page-stack-gap)",
380
389
  stackGapCompact: "var(--cdt-page-stack-gap-compact)",
381
390
  contentStackGap: "var(--cdt-page-content-stack-gap)",
package/dist/tokens.json CHANGED
@@ -1357,6 +1357,61 @@
1357
1357
  "light": "1000ms linear"
1358
1358
  }
1359
1359
  },
1360
+ {
1361
+ "key": "motion.instant",
1362
+ "cssName": "--cdt-motion-instant",
1363
+ "tier": "semantic",
1364
+ "usage": "decorative",
1365
+ "description": "Press feedback and pointer-tracking highlights.",
1366
+ "values": {
1367
+ "dark": "90ms cubic-bezier(0.2, 0, 0, 1)",
1368
+ "light": "90ms cubic-bezier(0.2, 0, 0, 1)"
1369
+ }
1370
+ },
1371
+ {
1372
+ "key": "motion.exit",
1373
+ "cssName": "--cdt-motion-exit",
1374
+ "tier": "semantic",
1375
+ "usage": "decorative",
1376
+ "description": "Overlay, popover and drawer exits.",
1377
+ "values": {
1378
+ "dark": "160ms cubic-bezier(0.4, 0, 1, 1)",
1379
+ "light": "160ms cubic-bezier(0.4, 0, 1, 1)"
1380
+ }
1381
+ },
1382
+ {
1383
+ "key": "motion.slow",
1384
+ "cssName": "--cdt-motion-slow",
1385
+ "tier": "semantic",
1386
+ "usage": "decorative",
1387
+ "description": "Drawers and other large surfaces entering.",
1388
+ "values": {
1389
+ "dark": "420ms cubic-bezier(0.05, 0.7, 0.1, 1)",
1390
+ "light": "420ms cubic-bezier(0.05, 0.7, 0.1, 1)"
1391
+ }
1392
+ },
1393
+ {
1394
+ "key": "motion.spring",
1395
+ "cssName": "--cdt-motion-spring",
1396
+ "tier": "semantic",
1397
+ "usage": "decorative",
1398
+ "description": "Spring settle for dialogs, popovers and checked indicators (entrances only).",
1399
+ "values": {
1400
+ "dark": "520ms linear(0, 0.075 5%, 0.242 10%, 0.435 15%, 0.616 20%, 0.766 25%, 0.878 30%, 0.967 36%, 1.015 42%, 1.037 50%, 1.033 60%, 1.012 75%, 1)",
1401
+ "light": "520ms linear(0, 0.075 5%, 0.242 10%, 0.435 15%, 0.616 20%, 0.766 25%, 0.878 30%, 0.967 36%, 1.015 42%, 1.037 50%, 1.033 60%, 1.012 75%, 1)"
1402
+ }
1403
+ },
1404
+ {
1405
+ "key": "motion.stagger",
1406
+ "cssName": "--cdt-motion-stagger",
1407
+ "tier": "semantic",
1408
+ "usage": "decorative",
1409
+ "description": "Delay step between items of a staged entrance; a duration, never an easing.",
1410
+ "values": {
1411
+ "dark": "45ms",
1412
+ "light": "45ms"
1413
+ }
1414
+ },
1360
1415
  {
1361
1416
  "key": "button.minHeight",
1362
1417
  "cssName": "--cdt-button-min-height",
@@ -3053,10 +3108,10 @@
3053
3108
  "tier": "component",
3054
3109
  "usage": "decorative",
3055
3110
  "description": "Overlay exit.",
3056
- "alias": "motion.fast",
3111
+ "alias": "motion.exit",
3057
3112
  "values": {
3058
- "dark": "140ms cubic-bezier(0.2, 0, 0, 1)",
3059
- "light": "140ms cubic-bezier(0.2, 0, 0, 1)"
3113
+ "dark": "160ms cubic-bezier(0.4, 0, 1, 1)",
3114
+ "light": "160ms cubic-bezier(0.4, 0, 1, 1)"
3060
3115
  }
3061
3116
  },
3062
3117
  {
@@ -3125,6 +3180,50 @@
3125
3180
  "light": "29px"
3126
3181
  }
3127
3182
  },
3183
+ {
3184
+ "key": "page.displaySize",
3185
+ "cssName": "--cdt-page-display-size",
3186
+ "tier": "component",
3187
+ "usage": "decorative",
3188
+ "description": "Display heading for a landing hero, derived from `font.size.xl` (× 1.8 and × 3.2). One step above `page.headingSize`; never a body size (CR-042).",
3189
+ "values": {
3190
+ "dark": "clamp(36px, 5.5vw, 64px)",
3191
+ "light": "clamp(36px, 5.5vw, 64px)"
3192
+ }
3193
+ },
3194
+ {
3195
+ "key": "page.displayLineHeight",
3196
+ "cssName": "--cdt-page-display-line-height",
3197
+ "tier": "component",
3198
+ "usage": "decorative",
3199
+ "description": "Unitless like `page.headingLineHeight`: `clamp()` makes a px value impossible here.",
3200
+ "values": {
3201
+ "dark": "1.04",
3202
+ "light": "1.04"
3203
+ }
3204
+ },
3205
+ {
3206
+ "key": "page.leadSize",
3207
+ "cssName": "--cdt-page-lead-size",
3208
+ "tier": "component",
3209
+ "usage": "decorative",
3210
+ "description": "Lead paragraph under a page or hero heading. `font.size.xl` × 0.9; sits between `font.size.lg` and `font.size.xl` (CR-042).",
3211
+ "values": {
3212
+ "dark": "18px",
3213
+ "light": "18px"
3214
+ }
3215
+ },
3216
+ {
3217
+ "key": "page.leadLineHeight",
3218
+ "cssName": "--cdt-page-lead-line-height",
3219
+ "tier": "component",
3220
+ "usage": "decorative",
3221
+ "description": "Line height paired with `page.leadSize`, at the 1.50 body ratio.",
3222
+ "values": {
3223
+ "dark": "27px",
3224
+ "light": "27px"
3225
+ }
3226
+ },
3128
3227
  {
3129
3228
  "key": "page.stackGap",
3130
3229
  "cssName": "--cdt-page-stack-gap",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@conductor-by-89soone/tokens",
3
- "version": "0.4.0",
3
+ "version": "0.6.0",
4
4
  "description": "Theme-aware design tokens and validation CLIs for Conductor.",
5
5
  "license": "MIT",
6
6
  "homepage": "https://89sooner.github.io/design-system/",