@omni-design/components 0.12.0 → 0.13.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/OmniDesignProvider.esm.js +1 -1
- package/dist/OmniDesignProvider.esm.js.map +1 -1
- package/dist/OmniDesignProvider.js +1 -1
- package/dist/OmniDesignProvider.js.map +1 -1
- package/dist/index.esm.js +8 -3
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +8 -3
- package/dist/index.js.map +1 -1
- package/dist/types/components/BackgroundPicker.d.ts +1 -1
- package/dist/types/components/BrandIcon/BrandIcon.d.ts +20 -0
- package/dist/types/components/BrandIcon/index.d.ts +1 -0
- package/dist/types/components/Charts/tokens.d.ts +1 -1
- package/dist/types/components/Footer/Footer.d.ts +3 -1
- package/dist/types/components/Foundations/FoundationTopic.d.ts +4 -0
- package/dist/types/components/Foundations/HowToSlot.d.ts +16 -0
- package/dist/types/components/Foundations/TokenRoles.d.ts +19 -0
- package/dist/types/components/Foundations/TypographySummary.d.ts +2 -0
- package/dist/types/components/ShowcaseHeader.d.ts +5 -0
- package/dist/types/components/TextField/TextField.d.ts +1 -1
- package/dist/types/components/Typography/Typography.d.ts +54 -1
- package/dist/types/components/Typography/index.d.ts +1 -1
- package/dist/types/components/_states.d.ts +1 -1
- package/dist/types/components/a11yPanel.d.ts +37 -0
- package/dist/types/components/index.d.ts +3 -2
- package/dist/types/docs/DocPanels.d.ts +0 -14
- package/dist/types/docs/components.d.ts +8 -0
- package/dist/types/docs/componentsSurfaces.d.ts +100 -10
- package/dist/types/docs/examples.d.ts +11 -0
- package/dist/types/docs/figmaHowTo.d.ts +28 -0
- package/dist/types/docs/figmaLinks.d.ts +58 -0
- package/dist/types/docs/foundations.d.ts +12 -0
- package/package.json +4 -2
- package/public/styles/Dark-Mode.css +6 -0
- package/public/styles/Light-Mode.css +6 -0
- package/public/styles/base.css +23 -0
- package/public/styles/core.css +94 -15
- package/public/styles/foundation.css +18 -0
- package/public/styles/typography-tokens.css +262 -13
- package/dist/types/theme/useThemeMode.d.ts +0 -4
|
@@ -170,6 +170,8 @@ body { margin: 0; }
|
|
|
170
170
|
* ======================================== */
|
|
171
171
|
|
|
172
172
|
/* Theme: Default - Surfaces */
|
|
173
|
+
:root,
|
|
174
|
+
[data-surface="Surface"],
|
|
173
175
|
[data-theme="Default"],
|
|
174
176
|
[data-theme="Default"][data-surface="Surface"] {
|
|
175
177
|
--Background: var(--Neutral-Color-1);
|
|
@@ -338,6 +340,7 @@ body { margin: 0; }
|
|
|
338
340
|
}
|
|
339
341
|
|
|
340
342
|
/* Theme: Default - Surfaces-Dim */
|
|
343
|
+
[data-surface="Surface-Dim"],
|
|
341
344
|
[data-theme="Default"] [data-surface="Surface-Dim"],
|
|
342
345
|
[data-theme="Default"][data-surface="Surface-Dim"] {
|
|
343
346
|
--Background: var(--Neutral-Color-1);
|
|
@@ -506,6 +509,7 @@ body { margin: 0; }
|
|
|
506
509
|
}
|
|
507
510
|
|
|
508
511
|
/* Theme: Default - Surfaces-Dimmest */
|
|
512
|
+
[data-surface="Surface-Dimmest"],
|
|
509
513
|
[data-theme="Default"] [data-surface="Surface-Dimmest"],
|
|
510
514
|
[data-theme="Default"][data-surface="Surface-Dimmest"] {
|
|
511
515
|
--Background: var(--Neutral-Color-3);
|
|
@@ -674,6 +678,7 @@ body { margin: 0; }
|
|
|
674
678
|
}
|
|
675
679
|
|
|
676
680
|
/* Theme: Default - Surfaces-Bright */
|
|
681
|
+
[data-surface="Surface-Bright"],
|
|
677
682
|
[data-theme="Default"] [data-surface="Surface-Bright"],
|
|
678
683
|
[data-theme="Default"][data-surface="Surface-Bright"] {
|
|
679
684
|
--Background: var(--Neutral-Color-3);
|
|
@@ -842,6 +847,7 @@ body { margin: 0; }
|
|
|
842
847
|
}
|
|
843
848
|
|
|
844
849
|
/* Theme: Default - Surfaces-Brightest */
|
|
850
|
+
[data-surface="Surface-Brightest"],
|
|
845
851
|
[data-theme="Default"] [data-surface="Surface-Brightest"],
|
|
846
852
|
[data-theme="Default"][data-surface="Surface-Brightest"] {
|
|
847
853
|
--Background: var(--Neutral-Color-11);
|
|
@@ -170,6 +170,8 @@ body { margin: 0; }
|
|
|
170
170
|
* ======================================== */
|
|
171
171
|
|
|
172
172
|
/* Theme: Default - Surfaces */
|
|
173
|
+
:root,
|
|
174
|
+
[data-surface="Surface"],
|
|
173
175
|
[data-theme="Default"],
|
|
174
176
|
[data-theme="Default"][data-surface="Surface"] {
|
|
175
177
|
--Background: var(--Neutral-Color-12);
|
|
@@ -347,6 +349,7 @@ body { margin: 0; }
|
|
|
347
349
|
}
|
|
348
350
|
|
|
349
351
|
/* Theme: Default - Surfaces-Dim */
|
|
352
|
+
[data-surface="Surface-Dim"],
|
|
350
353
|
[data-theme="Default"] [data-surface="Surface-Dim"],
|
|
351
354
|
[data-theme="Default"][data-surface="Surface-Dim"] {
|
|
352
355
|
--Background: var(--Neutral-Color-11);
|
|
@@ -524,6 +527,7 @@ body { margin: 0; }
|
|
|
524
527
|
}
|
|
525
528
|
|
|
526
529
|
/* Theme: Default - Surfaces-Dimmest */
|
|
530
|
+
[data-surface="Surface-Dimmest"],
|
|
527
531
|
[data-theme="Default"] [data-surface="Surface-Dimmest"],
|
|
528
532
|
[data-theme="Default"][data-surface="Surface-Dimmest"] {
|
|
529
533
|
--Background: var(--Neutral-Color-3);
|
|
@@ -701,6 +705,7 @@ body { margin: 0; }
|
|
|
701
705
|
}
|
|
702
706
|
|
|
703
707
|
/* Theme: Default - Surfaces-Bright */
|
|
708
|
+
[data-surface="Surface-Bright"],
|
|
704
709
|
[data-theme="Default"] [data-surface="Surface-Bright"],
|
|
705
710
|
[data-theme="Default"][data-surface="Surface-Bright"] {
|
|
706
711
|
--Background: var(--Neutral-Color-12);
|
|
@@ -878,6 +883,7 @@ body { margin: 0; }
|
|
|
878
883
|
}
|
|
879
884
|
|
|
880
885
|
/* Theme: Default - Surfaces-Brightest */
|
|
886
|
+
[data-surface="Surface-Brightest"],
|
|
881
887
|
[data-theme="Default"] [data-surface="Surface-Brightest"],
|
|
882
888
|
[data-theme="Default"][data-surface="Surface-Brightest"] {
|
|
883
889
|
--Background: var(--Neutral-Color-12);
|
package/public/styles/base.css
CHANGED
|
@@ -295,6 +295,9 @@
|
|
|
295
295
|
--Dropdown-Frame-Radius: 2px;
|
|
296
296
|
--Menu-Item-Radius: 0px;
|
|
297
297
|
--Menu-Focus-Radius: 0px;
|
|
298
|
+
--Sm-Menu-Swatch: 16px;
|
|
299
|
+
--Menu-Swatch: 24px;
|
|
300
|
+
--Lg-Menu-Swatch: 32px;
|
|
298
301
|
--Disabled: 0.38;
|
|
299
302
|
--Rail-Width: 80px;
|
|
300
303
|
--Sm-Rail-Width: 72px;
|
|
@@ -426,18 +429,38 @@
|
|
|
426
429
|
--Background: var(--Container);
|
|
427
430
|
}
|
|
428
431
|
|
|
432
|
+
[data-theme][data-surface="Container"] {
|
|
433
|
+
--Background: var(--Container);
|
|
434
|
+
}
|
|
435
|
+
|
|
429
436
|
[data-surface="Container-Low"] {
|
|
430
437
|
--Background: var(--Container-Low);
|
|
431
438
|
}
|
|
432
439
|
|
|
440
|
+
[data-theme][data-surface="Container-Low"] {
|
|
441
|
+
--Background: var(--Container-Low);
|
|
442
|
+
}
|
|
443
|
+
|
|
433
444
|
[data-surface="Container-Lowest"] {
|
|
434
445
|
--Background: var(--Container-Lowest);
|
|
435
446
|
}
|
|
436
447
|
|
|
448
|
+
[data-theme][data-surface="Container-Lowest"] {
|
|
449
|
+
--Background: var(--Container-Lowest);
|
|
450
|
+
}
|
|
451
|
+
|
|
437
452
|
[data-surface="Container-High"] {
|
|
438
453
|
--Background: var(--Container-High);
|
|
439
454
|
}
|
|
440
455
|
|
|
456
|
+
[data-theme][data-surface="Container-High"] {
|
|
457
|
+
--Background: var(--Container-High);
|
|
458
|
+
}
|
|
459
|
+
|
|
441
460
|
[data-surface="Container-Highest"] {
|
|
442
461
|
--Background: var(--Container-Highest);
|
|
443
462
|
}
|
|
463
|
+
|
|
464
|
+
[data-theme][data-surface="Container-Highest"] {
|
|
465
|
+
--Background: var(--Container-Highest);
|
|
466
|
+
}
|
package/public/styles/core.css
CHANGED
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
}
|
|
24
24
|
|
|
25
25
|
/* Platform Font Overrides */
|
|
26
|
-
[data-
|
|
26
|
+
[data-device="IOS-Mobile"][data-fonts] {
|
|
27
27
|
--Body-Font-Family: var(--Set-Font-Family-Body);
|
|
28
28
|
--Header-Font-Family: var(--Set-Font-Family-Header);
|
|
29
29
|
--Header-Font-Weight: var(--Set-Font-Family-Header-Weight);
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
--Body-Semibold-Font-Weight: var(--Set-Font-Family-Body-Semibold-Weight);
|
|
34
34
|
--Body-Bold-Font-Weight: var(--Set-Font-Family-Body-Bold-Weight);
|
|
35
35
|
}
|
|
36
|
-
[data-
|
|
36
|
+
[data-device="IOS-Tablet"][data-fonts] {
|
|
37
37
|
--Body-Font-Family: var(--Set-Font-Family-Body);
|
|
38
38
|
--Header-Font-Family: var(--Set-Font-Family-Header);
|
|
39
39
|
--Header-Font-Weight: var(--Set-Font-Family-Header-Weight);
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
--Body-Semibold-Font-Weight: var(--Set-Font-Family-Body-Semibold-Weight);
|
|
44
44
|
--Body-Bold-Font-Weight: var(--Set-Font-Family-Body-Bold-Weight);
|
|
45
45
|
}
|
|
46
|
-
[data-
|
|
46
|
+
[data-device="Android"][data-fonts] {
|
|
47
47
|
--Body-Font-Family: var(--Set-Font-Family-Body);
|
|
48
48
|
--Header-Font-Family: var(--Set-Font-Family-Header);
|
|
49
49
|
--Header-Font-Weight: var(--Set-Font-Family-Header-Weight);
|
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
--Body-Bold-Font-Weight: var(--Set-Font-Family-Body-Bold-Weight);
|
|
55
55
|
}
|
|
56
56
|
|
|
57
|
-
[data-
|
|
57
|
+
[data-device="IOS-Mobile"][data-fonts="Default"] {
|
|
58
58
|
--Body-Font-Family: "SF Pro";
|
|
59
59
|
--Header-Font-Family: "SF Pro";
|
|
60
60
|
--Header-Font-Weight: var(--Set-Font-Family-Header-Weight);
|
|
@@ -64,7 +64,7 @@
|
|
|
64
64
|
--Body-Semibold-Font-Weight: var(--Set-Font-Family-Body-Semibold-Weight);
|
|
65
65
|
--Body-Bold-Font-Weight: var(--Set-Font-Family-Body-Bold-Weight);
|
|
66
66
|
}
|
|
67
|
-
[data-
|
|
67
|
+
[data-device="IOS-Tablet"][data-fonts="Default"] {
|
|
68
68
|
--Body-Font-Family: "SF Pro";
|
|
69
69
|
--Header-Font-Family: "SF Pro";
|
|
70
70
|
--Header-Font-Weight: var(--Set-Font-Family-Header-Weight);
|
|
@@ -74,7 +74,7 @@
|
|
|
74
74
|
--Body-Semibold-Font-Weight: var(--Set-Font-Family-Body-Semibold-Weight);
|
|
75
75
|
--Body-Bold-Font-Weight: var(--Set-Font-Family-Body-Bold-Weight);
|
|
76
76
|
}
|
|
77
|
-
[data-
|
|
77
|
+
[data-device="Android"][data-fonts="Default"] {
|
|
78
78
|
--Body-Font-Family: "Roboto";
|
|
79
79
|
--Header-Font-Family: "Roboto";
|
|
80
80
|
--Header-Font-Weight: var(--Set-Font-Family-Header-Weight);
|
|
@@ -113,7 +113,7 @@
|
|
|
113
113
|
--Body-Line-Height: 24px;
|
|
114
114
|
--Body-Paragraph-Spacing: 16px;
|
|
115
115
|
/* Per-style ramp — generated from the same type scale that produces
|
|
116
|
-
typography-tokens.css, so a consumer that never sets data-
|
|
116
|
+
typography-tokens.css, so a consumer that never sets data-device gets
|
|
117
117
|
the identical Desktop values. Editing sizes here is wrong; edit
|
|
118
118
|
src/utils/typeScale.ts. */
|
|
119
119
|
/* Faces */
|
|
@@ -130,12 +130,12 @@
|
|
|
130
130
|
--Header-Clamped-Weight: 640;
|
|
131
131
|
|
|
132
132
|
/* Variable-font axes */
|
|
133
|
-
--Font-Grade-Header: 50;
|
|
134
133
|
--Font-Slant-Header: 0;
|
|
134
|
+
--Font-Grade-Header: 50;
|
|
135
|
+
--Font-Width-Header: 72;
|
|
135
136
|
--Font-Roundness-Header: 0;
|
|
136
137
|
--Font-Optical-Size-Header: 96;
|
|
137
|
-
--Font-
|
|
138
|
-
--Font-Variation-Header: "GRAD" var(--Font-Grade-Header), "slnt" var(--Font-Slant-Header), "ROND" var(--Font-Roundness-Header), "opsz" var(--Font-Optical-Size-Header), "wdth" var(--Font-Width-Header);
|
|
138
|
+
--Font-Variation-Header: "slnt" var(--Font-Slant-Header), "GRAD" var(--Font-Grade-Header), "wdth" var(--Font-Width-Header), "ROND" var(--Font-Roundness-Header), "opsz" var(--Font-Optical-Size-Header);
|
|
139
139
|
|
|
140
140
|
/* Display — Large and Medium belong in Header or Hero areas. Small is the one sized to sit inside a component — a card title, a stat, a pull quote. */
|
|
141
141
|
--Display-Large-Font-Family: var(--Font-Family-Display);
|
|
@@ -441,7 +441,7 @@
|
|
|
441
441
|
--Button-Line-Height: 20px;
|
|
442
442
|
/* Bevel geometry for ALL THREE sizes — derived from THIS platform's button
|
|
443
443
|
heights, which is why it lives beside them rather than in foundation.css.
|
|
444
|
-
Each [data-
|
|
444
|
+
Each [data-device] block below re-emits all three for its own heights.
|
|
445
445
|
It used to re-emit the MEDIUM set only, so a small or large button wore
|
|
446
446
|
Desktop's bevel on every platform. */
|
|
447
447
|
--Button-Highlight-Offset-x: 0px;
|
|
@@ -483,7 +483,7 @@
|
|
|
483
483
|
}
|
|
484
484
|
|
|
485
485
|
/* iOS Mobile */
|
|
486
|
-
[data-
|
|
486
|
+
[data-device="IOS-Mobile"] {
|
|
487
487
|
--Container-Padding: var(--Sizing-2);
|
|
488
488
|
--Platform-Label: "IOS-Mobile";
|
|
489
489
|
--Button-Height: 44px;
|
|
@@ -555,7 +555,7 @@
|
|
|
555
555
|
}
|
|
556
556
|
|
|
557
557
|
/* iOS Tablet */
|
|
558
|
-
[data-
|
|
558
|
+
[data-device="IOS-Tablet"] {
|
|
559
559
|
--Container-Padding: var(--Sizing-3);
|
|
560
560
|
--Platform-Label: "IOS-Tablet";
|
|
561
561
|
--Button-Height: 44px;
|
|
@@ -626,8 +626,87 @@
|
|
|
626
626
|
--Button-Line-Height: 21px;
|
|
627
627
|
}
|
|
628
628
|
|
|
629
|
-
/* Android
|
|
630
|
-
|
|
629
|
+
/* Android, a block each.
|
|
630
|
+
Android-Tablet and Android-Mobile carry identical METRICS — Figma gives
|
|
631
|
+
both a 48px button and a 12px spacer — so these two blocks hold the same
|
|
632
|
+
values. They are written separately rather than sharing a selector list
|
|
633
|
+
because every other platform has a block of its own, and a reader checking
|
|
634
|
+
"is this platform covered" should find one answer in one shape. The two
|
|
635
|
+
exist as separate devices because TYPOGRAPHY differs between them. */
|
|
636
|
+
/* Android tablet */
|
|
637
|
+
[data-device="Android-Tablet"] {
|
|
638
|
+
--Container-Padding: var(--Sizing-2);
|
|
639
|
+
--Platform-Label: "Android";
|
|
640
|
+
--Button-Height: 48px;
|
|
641
|
+
--Min-Stack-Gap: 12px;
|
|
642
|
+
--Button-Highlight-Offset-x: 0px;
|
|
643
|
+
--Button-Highlight-Offset-y: 0px;
|
|
644
|
+
--Button-Highlight-Blur-Radius: 0px;
|
|
645
|
+
--Button-Highlight-Spread: 0px;
|
|
646
|
+
--Button-Lowlight-Offset-x: 0px;
|
|
647
|
+
--Button-Lowlight-Offset-y: 0px;
|
|
648
|
+
--Button-Lowlight-Blur-Radius: 0px;
|
|
649
|
+
--Button-Lowlight-Spread: 0px;
|
|
650
|
+
--Sm-Button-Highlight-Offset-x: 0px;
|
|
651
|
+
--Sm-Button-Highlight-Offset-y: 0px;
|
|
652
|
+
--Sm-Button-Highlight-Blur-Radius: 0px;
|
|
653
|
+
--Sm-Button-Highlight-Spread: 0px;
|
|
654
|
+
--Sm-Button-Lowlight-Offset-x: 0px;
|
|
655
|
+
--Sm-Button-Lowlight-Offset-y: 0px;
|
|
656
|
+
--Sm-Button-Lowlight-Blur-Radius: 0px;
|
|
657
|
+
--Sm-Button-Lowlight-Spread: 0px;
|
|
658
|
+
--Lg-Button-Highlight-Offset-x: 0px;
|
|
659
|
+
--Lg-Button-Highlight-Offset-y: 0px;
|
|
660
|
+
--Lg-Button-Highlight-Blur-Radius: 0px;
|
|
661
|
+
--Lg-Button-Highlight-Spread: 0px;
|
|
662
|
+
--Lg-Button-Lowlight-Offset-x: 0px;
|
|
663
|
+
--Lg-Button-Lowlight-Offset-y: 0px;
|
|
664
|
+
--Lg-Button-Lowlight-Blur-Radius: 0px;
|
|
665
|
+
--Lg-Button-Lowlight-Spread: 0px;
|
|
666
|
+
--Target: 48px;
|
|
667
|
+
--Platform-Spacer: 12px;
|
|
668
|
+
/* Floating overlays — the platform's chrome plus room for a shadow */
|
|
669
|
+
--SnackBar-Top: 112px;
|
|
670
|
+
--SnackBar-Bottom: 48px;
|
|
671
|
+
--Overlay-Clearance: 24px;
|
|
672
|
+
--Body-Font-Size: 16px;
|
|
673
|
+
--Body-Line-Height: 24px;
|
|
674
|
+
--Body-Letter-Spacing: .5px;
|
|
675
|
+
--Body-Paragraph-Spacing: 16px;
|
|
676
|
+
--H1-Font-Size: 36px;
|
|
677
|
+
--H1-Line-Height: 40px;
|
|
678
|
+
--H1-Letter-Spacing: -.5px;
|
|
679
|
+
--H1-Paragraph-Spacing: 20px;
|
|
680
|
+
--H2-Font-Size: 28px;
|
|
681
|
+
--H2-Line-Height: 36px;
|
|
682
|
+
--H2-Letter-Spacing: -.5px;
|
|
683
|
+
--H2-Paragraph-Spacing: 20px;
|
|
684
|
+
--H3-Font-Size: 24px;
|
|
685
|
+
--H3-Line-Height: 32px;
|
|
686
|
+
--H3-Letter-Spacing: 0px;
|
|
687
|
+
--H3-Paragraph-Spacing: 16px;
|
|
688
|
+
--H4-Font-Size: 20px;
|
|
689
|
+
--H4-Line-Height: 28px;
|
|
690
|
+
--H4-Letter-Spacing: 0px;
|
|
691
|
+
--H4-Paragraph-Spacing: 12px;
|
|
692
|
+
--H5-Font-Size: 18px;
|
|
693
|
+
--H5-Line-Height: 26px;
|
|
694
|
+
--H5-Letter-Spacing: 0px;
|
|
695
|
+
--H5-Paragraph-Spacing: 12px;
|
|
696
|
+
--H6-Font-Size: 16px;
|
|
697
|
+
--H6-Line-Height: 24px;
|
|
698
|
+
--H6-Letter-Spacing: .5px;
|
|
699
|
+
--H6-Paragraph-Spacing: 8px;
|
|
700
|
+
--Label-Font-Size: 13px;
|
|
701
|
+
--Label-Line-Height: 18px;
|
|
702
|
+
--Label-Letter-Spacing: 0px;
|
|
703
|
+
--Label-Paragraph-Spacing: 4px;
|
|
704
|
+
--Button-Font-Size: 16px;
|
|
705
|
+
--Button-Line-Height: 20px;
|
|
706
|
+
}
|
|
707
|
+
|
|
708
|
+
/* Android phone */
|
|
709
|
+
[data-device="Android-Mobile"] {
|
|
631
710
|
--Container-Padding: var(--Sizing-2);
|
|
632
711
|
--Platform-Label: "Android";
|
|
633
712
|
--Button-Height: 48px;
|
|
@@ -5,6 +5,24 @@
|
|
|
5
5
|
|
|
6
6
|
:root {
|
|
7
7
|
|
|
8
|
+
/* ── The brand's CORE colours ────────────────────────────────────────────
|
|
9
|
+
The three hexes the user actually picked, verbatim.
|
|
10
|
+
|
|
11
|
+
Nothing else in the published CSS says which colour a brand chose.
|
|
12
|
+
generateScaledTones writes the pick into the tone NEAREST ITS LIGHTNESS,
|
|
13
|
+
so the index differs per colour — a dark pick lands low, a pale one high
|
|
14
|
+
— and no fixed tone can stand for it. Color-Vibrant is not it either: that
|
|
15
|
+
is hardcoded to Color-8, which on a light brand is a pale tint. The
|
|
16
|
+
library's own Colors page showed Color-11 and then Color-8 and was wrong
|
|
17
|
+
both times, because the information was never published.
|
|
18
|
+
|
|
19
|
+
Emitted here rather than derived, so a consumer can show the brand's
|
|
20
|
+
colours without reaching into Firestore — which a published stylesheet
|
|
21
|
+
cannot do. */
|
|
22
|
+
--Primary-Core: #849054;
|
|
23
|
+
--Secondary-Core: #e49090;
|
|
24
|
+
--Tertiary-Core: #f0b484;
|
|
25
|
+
|
|
8
26
|
/* Button */
|
|
9
27
|
--Button-Radius: 2px;
|
|
10
28
|
--Sm-Button-Radius: 2px;
|
|
@@ -5,10 +5,10 @@
|
|
|
5
5
|
|
|
6
6
|
/* typography-tokens.css
|
|
7
7
|
* Auto-generated — do not edit by hand.
|
|
8
|
-
* Apply [data-
|
|
8
|
+
* Apply [data-device="Desktop"] etc to your root element.
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
-
[data-
|
|
11
|
+
[data-device="Desktop"] {
|
|
12
12
|
/* Faces */
|
|
13
13
|
--Font-Family-Display: var(--Set-Font-Family-Display, var(--Platform-Font-Families-Decorative, var(--Set-Font-Family-Decorative)));
|
|
14
14
|
--Font-Family-Header: var(--Platform-Font-Families-Header, var(--Set-Font-Family-Header));
|
|
@@ -23,12 +23,12 @@
|
|
|
23
23
|
--Header-Clamped-Weight: 640;
|
|
24
24
|
|
|
25
25
|
/* Variable-font axes */
|
|
26
|
-
--Font-Grade-Header: 50;
|
|
27
26
|
--Font-Slant-Header: 0;
|
|
27
|
+
--Font-Grade-Header: 50;
|
|
28
|
+
--Font-Width-Header: 72;
|
|
28
29
|
--Font-Roundness-Header: 0;
|
|
29
30
|
--Font-Optical-Size-Header: 96;
|
|
30
|
-
--Font-
|
|
31
|
-
--Font-Variation-Header: "GRAD" var(--Font-Grade-Header), "slnt" var(--Font-Slant-Header), "ROND" var(--Font-Roundness-Header), "opsz" var(--Font-Optical-Size-Header), "wdth" var(--Font-Width-Header);
|
|
31
|
+
--Font-Variation-Header: "slnt" var(--Font-Slant-Header), "GRAD" var(--Font-Grade-Header), "wdth" var(--Font-Width-Header), "ROND" var(--Font-Roundness-Header), "opsz" var(--Font-Optical-Size-Header);
|
|
32
32
|
|
|
33
33
|
/* Display — Large and Medium belong in Header or Hero areas. Small is the one sized to sit inside a component — a card title, a stat, a pull quote. */
|
|
34
34
|
--Display-Large-Font-Family: var(--Font-Family-Display);
|
|
@@ -328,7 +328,7 @@
|
|
|
328
328
|
--Badge-Text-Transform: none;
|
|
329
329
|
}
|
|
330
330
|
|
|
331
|
-
[data-
|
|
331
|
+
[data-device="IOS-Mobile"] {
|
|
332
332
|
|
|
333
333
|
|
|
334
334
|
|
|
@@ -567,7 +567,7 @@
|
|
|
567
567
|
|
|
568
568
|
}
|
|
569
569
|
|
|
570
|
-
[data-
|
|
570
|
+
[data-device="IOS-Tablet"] {
|
|
571
571
|
|
|
572
572
|
|
|
573
573
|
|
|
@@ -806,7 +806,247 @@
|
|
|
806
806
|
|
|
807
807
|
}
|
|
808
808
|
|
|
809
|
-
[data-
|
|
809
|
+
[data-device="Android-Tablet"] {
|
|
810
|
+
|
|
811
|
+
|
|
812
|
+
|
|
813
|
+
/* Display */
|
|
814
|
+
--Font-Family-Display: var(--Set-Font-Family-Display, var(--Platform-Font-Families-Decorative, var(--Set-Font-Family-Decorative)));
|
|
815
|
+
--Display-Small-Font-Size: 36px;
|
|
816
|
+
--Display-Small-Font-Weight: 600;
|
|
817
|
+
--Display-Small-Line-Height: 44px;
|
|
818
|
+
--Display-Small-Letter-Spacing: 0px;
|
|
819
|
+
--Font-Family-Display: var(--Set-Font-Family-Display, var(--Platform-Font-Families-Decorative, var(--Set-Font-Family-Decorative)));
|
|
820
|
+
--Display-Medium-Font-Size: 45px;
|
|
821
|
+
--Display-Medium-Font-Weight: 600;
|
|
822
|
+
--Display-Medium-Line-Height: 52px;
|
|
823
|
+
--Display-Medium-Letter-Spacing: 0px;
|
|
824
|
+
--Font-Family-Display: var(--Set-Font-Family-Display, var(--Platform-Font-Families-Decorative, var(--Set-Font-Family-Decorative)));
|
|
825
|
+
--Display-Large-Font-Size: 57px;
|
|
826
|
+
--Display-Large-Font-Weight: 600;
|
|
827
|
+
--Display-Large-Line-Height: 64px;
|
|
828
|
+
--Display-Large-Letter-Spacing: 0px;
|
|
829
|
+
|
|
830
|
+
/* Headers */
|
|
831
|
+
--Font-Family-Body: var(--Platform-Font-Families-Decorative);
|
|
832
|
+
--H1-Font-Size: 28px;
|
|
833
|
+
--H1-Font-Weight: 600;
|
|
834
|
+
--H1-Line-Height: 28px;
|
|
835
|
+
--H1-Letter-Spacing: 0px;
|
|
836
|
+
--Font-Family-Body: var(--Platform-Font-Families-Decorative);
|
|
837
|
+
--H2-Font-Size: 26px;
|
|
838
|
+
--H2-Font-Weight: 600;
|
|
839
|
+
--H2-Line-Height: 26px;
|
|
840
|
+
--H2-Letter-Spacing: 0px;
|
|
841
|
+
--Font-Family-Body: var(--Platform-Font-Families-Decorative);
|
|
842
|
+
--H3-Font-Size: 24px;
|
|
843
|
+
--H3-Font-Weight: 600;
|
|
844
|
+
--H3-Line-Height: 24px;
|
|
845
|
+
--H3-Letter-Spacing: 0px;
|
|
846
|
+
--Font-Family-Body: var(--Platform-Font-Families-Decorative);
|
|
847
|
+
--H4-Font-Size: 20px;
|
|
848
|
+
--H4-Font-Weight: 600;
|
|
849
|
+
--H4-Line-Height: 20px;
|
|
850
|
+
--H4-Letter-Spacing: 0px;
|
|
851
|
+
--Font-Family-Body: var(--Platform-Font-Families-Decorative);
|
|
852
|
+
--H5-Font-Size: 18px;
|
|
853
|
+
--H5-Font-Weight: 600;
|
|
854
|
+
--H5-Line-Height: 18px;
|
|
855
|
+
--H5-Letter-Spacing: 0px;
|
|
856
|
+
--Font-Family-Body: var(--Platform-Font-Families-Decorative);
|
|
857
|
+
--H6-Font-Size: 16px;
|
|
858
|
+
--H6-Font-Weight: 600;
|
|
859
|
+
--H6-Line-Height: 16px;
|
|
860
|
+
--H6-Letter-Spacing: 0px;
|
|
861
|
+
|
|
862
|
+
/* Subtitle */
|
|
863
|
+
--Font-Family-Subtitle: var(--Platform-Font-Families-Body);
|
|
864
|
+
--Subtitle-Small-Font-Size: 16px;
|
|
865
|
+
--Subtitle-Small-Font-Weight: 700;
|
|
866
|
+
--Subtitle-Small-Line-Height: 24px;
|
|
867
|
+
--Subtitle-Small-Letter-Spacing: 0px;
|
|
868
|
+
--Font-Family-Subtitle: var(--Platform-Font-Families-Body);
|
|
869
|
+
--Subtitle-Large-Font-Size: 18px;
|
|
870
|
+
--Subtitle-Large-Font-Weight: 700;
|
|
871
|
+
--Subtitle-Large-Line-Height: 32px;
|
|
872
|
+
--Subtitle-Large-Letter-Spacing: 0px;
|
|
873
|
+
|
|
874
|
+
/* Body */
|
|
875
|
+
--Font-Family-Body: var(--Platform-Font-Families-Body);
|
|
876
|
+
--Body-Small-Font-Size: 14px;
|
|
877
|
+
--Body-Small-Font-Weight: 500;
|
|
878
|
+
--Body-Small-Line-Height: 21px;
|
|
879
|
+
--Body-Small-Letter-Spacing: 0px;
|
|
880
|
+
--Body-Small-Semibold-Font-Weight: 600;
|
|
881
|
+
--Body-Small-Bold-Font-Weight: 700;
|
|
882
|
+
--Font-Family-Body: var(--Platform-Font-Families-Body);
|
|
883
|
+
--Body-Medium-Font-Size: 16px;
|
|
884
|
+
--Body-Medium-Font-Weight: 500;
|
|
885
|
+
--Body-Medium-Line-Height: 24px;
|
|
886
|
+
--Body-Medium-Letter-Spacing: 0px;
|
|
887
|
+
--Body-Medium-Semibold-Font-Weight: 600;
|
|
888
|
+
--Body-Medium-Bold-Font-Weight: 700;
|
|
889
|
+
--Font-Family-Body: var(--Platform-Font-Families-Body);
|
|
890
|
+
--Body-Large-Font-Size: 18px;
|
|
891
|
+
--Body-Large-Font-Weight: 600;
|
|
892
|
+
--Body-Large-Line-Height: 27px;
|
|
893
|
+
--Body-Large-Letter-Spacing: 0px;
|
|
894
|
+
--Body-Large-Semibold-Font-Weight: 600;
|
|
895
|
+
--Body-Large-Bold-Font-Weight: 700;
|
|
896
|
+
|
|
897
|
+
/* Caption */
|
|
898
|
+
--Font-Family-Body: var(--Platform-Font-Families-Body);
|
|
899
|
+
/* Leading here is the PLATFORM's, not the brand's 1.5 — Material 3's own
|
|
900
|
+
table at 12 / 14 / 16. The Figma payload computes these same numbers for
|
|
901
|
+
every non-Desktop device (typographyPlatform.ts, "LINE HEIGHT is COMPUTED,
|
|
902
|
+
not read"), while this block declared a flat 21 at every size, so one
|
|
903
|
+
caption read 20 in the file and 21 in the stylesheet and nothing could
|
|
904
|
+
see it. Declared rather than left to compute so the two sides state the
|
|
905
|
+
same value instead of arriving at it separately.
|
|
906
|
+
|
|
907
|
+
EVERY property is restated, tracking included, because the payload's
|
|
908
|
+
device-floor merge replaces a style WHOLE — `{...desktopStyles, ...own}`
|
|
909
|
+
keys on the STYLE, not on the property — so a step this block declares
|
|
910
|
+
partially loses whatever it leaves out instead of inheriting it from
|
|
911
|
+
Desktop. That variable then exists on Desktop and nowhere else, and one
|
|
912
|
+
missing on six of seven devices resolves to nothing there, silently. The
|
|
913
|
+
CSS cascade would have carried it; the payload does not, and the payload
|
|
914
|
+
is the half that fails without a sound.
|
|
915
|
+
|
|
916
|
+
The 0px is this block's existing answer for Caption, extended to the two
|
|
917
|
+
new steps rather than importing Desktop's 0.1px nudge — which would leave
|
|
918
|
+
the ramp reading 0.0996 / 0 / 0.1008, three steps of one style disagreeing
|
|
919
|
+
about whether the brand tracks captions at all. Whether mobile SHOULD zero
|
|
920
|
+
it is a brand decision and still open; this only stops the ramp from
|
|
921
|
+
contradicting itself. */
|
|
922
|
+
--Caption-Small-Font-Size: 12px;
|
|
923
|
+
--Caption-Small-Font-Weight: 500;
|
|
924
|
+
--Caption-Small-Letter-Spacing: 0px;
|
|
925
|
+
--Caption-Small-Line-Height: 16px;
|
|
926
|
+
--Caption-Font-Size: 14px;
|
|
927
|
+
--Caption-Font-Weight: 500;
|
|
928
|
+
--Caption-Line-Height: 20px;
|
|
929
|
+
--Caption-Letter-Spacing: 0px;
|
|
930
|
+
--Caption-Bold-Font-Weight: 700;
|
|
931
|
+
--Caption-Large-Font-Size: 16px;
|
|
932
|
+
--Caption-Large-Font-Weight: 500;
|
|
933
|
+
--Caption-Large-Letter-Spacing: 0px;
|
|
934
|
+
--Caption-Large-Line-Height: 24px;
|
|
935
|
+
|
|
936
|
+
/* Label */
|
|
937
|
+
--Font-Family-Label: var(--Platform-Font-Families-Body);
|
|
938
|
+
--Label-ExtraSmall-Font-Size: 11px;
|
|
939
|
+
--Label-ExtraSmall-Font-Weight: 600;
|
|
940
|
+
--Label-ExtraSmall-Line-Height: 16.5px;
|
|
941
|
+
--Label-ExtraSmall-Letter-Spacing: 0px;
|
|
942
|
+
--Font-Family-Label: var(--Platform-Font-Families-Body);
|
|
943
|
+
--Label-Small-Font-Size: 12.5px;
|
|
944
|
+
--Label-Small-Font-Weight: 600;
|
|
945
|
+
--Label-Small-Line-Height: 18.75px;
|
|
946
|
+
--Label-Small-Letter-Spacing: 0px;
|
|
947
|
+
--Font-Family-Label: var(--Platform-Font-Families-Body);
|
|
948
|
+
--Label-Medium-Font-Size: 16px;
|
|
949
|
+
--Label-Medium-Font-Weight: 600;
|
|
950
|
+
--Label-Medium-Line-Height: 24px;
|
|
951
|
+
--Label-Medium-Letter-Spacing: 0px;
|
|
952
|
+
--Font-Family-Label: var(--Platform-Font-Families-Body);
|
|
953
|
+
--Label-Large-Font-Size: 18px;
|
|
954
|
+
--Label-Large-Font-Weight: 600;
|
|
955
|
+
--Label-Large-Line-Height: 27px;
|
|
956
|
+
--Label-Large-Letter-Spacing: 0px;
|
|
957
|
+
|
|
958
|
+
|
|
959
|
+
/* Mobile Nav Label — Material's navigation label: 12sp on 16, 0.5 tracking. */
|
|
960
|
+
--Font-Family-Mobile-Nav-Label: var(--Platform-Font-Families-Body);
|
|
961
|
+
--Mobile-Nav-Label-Font-Size: 12px;
|
|
962
|
+
--Mobile-Nav-Label-Font-Weight: 600;
|
|
963
|
+
--Mobile-Nav-Label-Line-Height: 16px;
|
|
964
|
+
--Mobile-Nav-Label-Letter-Spacing: 0.5px;
|
|
965
|
+
|
|
966
|
+
/* Legal */
|
|
967
|
+
--Font-Family-Body: var(--Platform-Font-Families-Body);
|
|
968
|
+
--Legal-Font-Size: 10px;
|
|
969
|
+
--Legal-Font-Weight: 400;
|
|
970
|
+
--Legal-Line-Height: 15px;
|
|
971
|
+
--Legal-Letter-Spacing: 0px;
|
|
972
|
+
--Legal-Semibold-Font-Weight: 600;
|
|
973
|
+
|
|
974
|
+
/* Overline */
|
|
975
|
+
--Font-Family-Overline: var(--Platform-Font-Families-Body);
|
|
976
|
+
--Overline-Small-Font-Size: 14px;
|
|
977
|
+
--Overline-Small-Font-Weight: 500;
|
|
978
|
+
--Overline-Small-Line-Height: 21px;
|
|
979
|
+
--Overline-Small-Letter-Spacing: 0px;
|
|
980
|
+
--Font-Family-Overline: var(--Platform-Font-Families-Body);
|
|
981
|
+
--Overline-Medium-Font-Size: 16px;
|
|
982
|
+
--Overline-Medium-Font-Weight: 600;
|
|
983
|
+
--Overline-Medium-Line-Height: 24px;
|
|
984
|
+
--Overline-Medium-Letter-Spacing: 0px;
|
|
985
|
+
--Font-Family-Overline: var(--Platform-Font-Families-Body);
|
|
986
|
+
--Overline-Large-Font-Size: 18px;
|
|
987
|
+
--Overline-Large-Font-Weight: 600;
|
|
988
|
+
--Overline-Large-Line-Height: 27px;
|
|
989
|
+
--Overline-Large-Letter-Spacing: 0px;
|
|
990
|
+
|
|
991
|
+
/* Number */
|
|
992
|
+
--Font-Family-Number: var(--Platform-Font-Families-Body);
|
|
993
|
+
--Number-Small-Font-Size: 16px;
|
|
994
|
+
--Number-Small-Font-Weight: 700;
|
|
995
|
+
--Number-Small-Line-Height: 16px;
|
|
996
|
+
--Number-Small-Letter-Spacing: 0px;
|
|
997
|
+
--Font-Family-Number: var(--Platform-Font-Families-Body);
|
|
998
|
+
--Number-Medium-Font-Size: 28px;
|
|
999
|
+
--Number-Medium-Font-Weight: 700;
|
|
1000
|
+
--Number-Medium-Line-Height: 16px;
|
|
1001
|
+
--Number-Medium-Letter-Spacing: 0px;
|
|
1002
|
+
--Font-Family-Number: var(--Platform-Font-Families-Body);
|
|
1003
|
+
--Number-Large-Font-Size: 36px;
|
|
1004
|
+
--Number-Large-Font-Weight: 700;
|
|
1005
|
+
--Number-Large-Line-Height: 36px;
|
|
1006
|
+
--Number-Large-Letter-Spacing: 0px;
|
|
1007
|
+
|
|
1008
|
+
/* Button */
|
|
1009
|
+
--Font-Family-Button: var(--Platform-Font-Families-Body);
|
|
1010
|
+
--Button-ExtraSmall-Font-Size: 11px;
|
|
1011
|
+
--Button-ExtraSmall-Font-Weight: 600;
|
|
1012
|
+
--Button-ExtraSmall-Line-Height: 28px;
|
|
1013
|
+
--Button-ExtraSmall-Letter-Spacing: 0px;
|
|
1014
|
+
--Font-Family-Button: var(--Platform-Font-Families-Body);
|
|
1015
|
+
--Button-Small-Font-Size: 14px;
|
|
1016
|
+
--Button-Small-Font-Weight: 600;
|
|
1017
|
+
--Button-Small-Line-Height: 16px;
|
|
1018
|
+
--Button-Small-Letter-Spacing: 0px;
|
|
1019
|
+
--Font-Family-Button: var(--Platform-Font-Families-Body);
|
|
1020
|
+
--Button-Medium-Font-Size: 16px;
|
|
1021
|
+
--Button-Medium-Font-Weight: 600;
|
|
1022
|
+
--Button-Medium-Line-Height: 16px;
|
|
1023
|
+
--Button-Medium-Letter-Spacing: 0px;
|
|
1024
|
+
/* was Button-Standard — kept so frozen stylesheets keep resolving. */
|
|
1025
|
+
--Button-Standard-Font-Size: var(--Button-Medium-Font-Size);
|
|
1026
|
+
--Button-Standard-Font-Weight: var(--Button-Medium-Font-Weight);
|
|
1027
|
+
--Button-Standard-Line-Height: var(--Button-Medium-Line-Height);
|
|
1028
|
+
--Button-Standard-Letter-Spacing: var(--Button-Medium-Letter-Spacing);
|
|
1029
|
+
|
|
1030
|
+
/* Alt Display — mirrors Display step for step. The pairing sets one word
|
|
1031
|
+
on one baseline ("Omni" + "Design"), so the two must not diverge in
|
|
1032
|
+
size or leading; colour is what separates them. */
|
|
1033
|
+
--Alt-Display-Small-Font-Size: 36px;
|
|
1034
|
+
--Alt-Display-Small-Font-Weight: 900;
|
|
1035
|
+
--Alt-Display-Small-Line-Height: 44px;
|
|
1036
|
+
--Alt-Display-Small-Letter-Spacing: 0px;
|
|
1037
|
+
--Alt-Display-Medium-Font-Size: 45px;
|
|
1038
|
+
--Alt-Display-Medium-Font-Weight: 900;
|
|
1039
|
+
--Alt-Display-Medium-Line-Height: 52px;
|
|
1040
|
+
--Alt-Display-Medium-Letter-Spacing: 0px;
|
|
1041
|
+
--Alt-Display-Large-Font-Size: 57px;
|
|
1042
|
+
--Alt-Display-Large-Font-Weight: 900;
|
|
1043
|
+
--Alt-Display-Large-Line-Height: 64px;
|
|
1044
|
+
--Alt-Display-Large-Letter-Spacing: 0px;
|
|
1045
|
+
|
|
1046
|
+
}
|
|
1047
|
+
|
|
1048
|
+
|
|
1049
|
+
[data-device="Android-Mobile"] {
|
|
810
1050
|
|
|
811
1051
|
|
|
812
1052
|
|
|
@@ -1051,12 +1291,12 @@
|
|
|
1051
1291
|
* platforms. Desktop is absent on purpose: there the brand's heights ARE the
|
|
1052
1292
|
* answer, and base.css already states them.
|
|
1053
1293
|
*
|
|
1054
|
-
* :root[data-
|
|
1294
|
+
* :root[data-device="…"], not the bare [data-device="…"] the type ramps
|
|
1055
1295
|
* above use, and the difference is load-bearing. --Button-Height is declared
|
|
1056
1296
|
* at :root in base.css, which the provider injects at slot 5 — AFTER this file
|
|
1057
1297
|
* at slot 3. A bare attribute selector ties with :root at (0,1,0), so the later
|
|
1058
1298
|
* file would win and these overrides would do nothing, with no error anywhere.
|
|
1059
|
-
* :root[data-
|
|
1299
|
+
* :root[data-device] scores (0,2,0) and wins on specificity instead, which
|
|
1060
1300
|
* does not depend on anyone preserving the load order.
|
|
1061
1301
|
*
|
|
1062
1302
|
* The type ramps above can stay as they are: their :root counterpart is in
|
|
@@ -1068,7 +1308,7 @@
|
|
|
1068
1308
|
* spellings follow these overrides on their own.
|
|
1069
1309
|
*/
|
|
1070
1310
|
|
|
1071
|
-
:root[data-
|
|
1311
|
+
:root[data-device="IOS-Mobile"] {
|
|
1072
1312
|
--Button-Height: 44px;
|
|
1073
1313
|
--Sm-Button-Height: 32px;
|
|
1074
1314
|
--Lg-Button-Height: 50px;
|
|
@@ -1077,7 +1317,7 @@
|
|
|
1077
1317
|
--Lg-Button-Icon: 24px;
|
|
1078
1318
|
}
|
|
1079
1319
|
|
|
1080
|
-
:root[data-
|
|
1320
|
+
:root[data-device="IOS-Tablet"] {
|
|
1081
1321
|
--Button-Height: 44px;
|
|
1082
1322
|
--Sm-Button-Height: 32px;
|
|
1083
1323
|
--Lg-Button-Height: 50px;
|
|
@@ -1086,7 +1326,16 @@
|
|
|
1086
1326
|
--Lg-Button-Icon: 24px;
|
|
1087
1327
|
}
|
|
1088
1328
|
|
|
1089
|
-
:root[data-
|
|
1329
|
+
:root[data-device="Android-Tablet"] {
|
|
1330
|
+
--Button-Height: 48px;
|
|
1331
|
+
--Sm-Button-Height: 32px;
|
|
1332
|
+
--Lg-Button-Height: 56px;
|
|
1333
|
+
--Button-Icon: 18px;
|
|
1334
|
+
--Sm-Button-Icon: 18px;
|
|
1335
|
+
--Lg-Button-Icon: 24px;
|
|
1336
|
+
}
|
|
1337
|
+
|
|
1338
|
+
:root[data-device="Android-Mobile"] {
|
|
1090
1339
|
--Button-Height: 48px;
|
|
1091
1340
|
--Sm-Button-Height: 32px;
|
|
1092
1341
|
--Lg-Button-Height: 56px;
|