@omni-design/components 0.12.0 → 0.14.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 +23 -0
- package/dist/types/components/BrandIcon/BrandIconShowcase.d.ts +2 -0
- package/dist/types/components/BrandIcon/index.d.ts +2 -0
- package/dist/types/components/Button/Button.d.ts +35 -66
- package/dist/types/components/ButtonGroup/ButtonGroup.d.ts +3 -1
- package/dist/types/components/Charts/tokens.d.ts +1 -1
- package/dist/types/components/CodeBlock/index.d.ts +1 -0
- 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/List/List.d.ts +2 -1
- package/dist/types/components/Rail/Rail.d.ts +2 -1
- package/dist/types/components/ShowcaseHeader.d.ts +5 -0
- package/dist/types/components/Slider/Slider.d.ts +6 -3
- package/dist/types/components/TextField/TextField.d.ts +1 -1
- package/dist/types/components/ToggleButtonGroup/ToggleButtonGroup.d.ts +8 -5
- package/dist/types/components/ToggleButtonGroup/ToggleButtonGroupShowcase.d.ts +2 -0
- package/dist/types/components/ToggleButtonGroup/index.d.ts +2 -0
- 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 +58 -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 +131 -0
- package/dist/types/docs/componentsNav.d.ts +29 -13
- package/dist/types/docs/componentsSurfaces.d.ts +113 -10
- package/dist/types/docs/examples.d.ts +55 -34
- package/dist/types/docs/examples.lead.d.ts +89 -0
- package/dist/types/docs/figmaHowTo.d.ts +28 -0
- package/dist/types/docs/figmaLinks.d.ts +59 -0
- package/dist/types/docs/foundations.d.ts +12 -0
- package/dist/types/docs/samples.buttongroup.d.ts +22 -0
- package/dist/types/docs/samples.core.d.ts +104 -0
- package/dist/types/docs/samples.d.ts +27 -0
- package/dist/types/docs/samples.forms.d.ts +69 -0
- package/dist/types/docs/samples.nav.d.ts +70 -0
- package/dist/types/docs/samples.slider.d.ts +12 -0
- package/dist/types/docs/samples.surfaces.d.ts +69 -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/README.md +1 -1
- package/public/styles/base.css +64 -19
- package/public/styles/core.css +94 -15
- package/public/styles/foundation.css +18 -0
- package/public/styles/typography-tokens.css +269 -20
- package/dist/types/theme/useThemeMode.d.ts +0 -4
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 colors ────────────────────────────────────────────
|
|
9
|
+
The three hexes the user actually picked, verbatim.
|
|
10
|
+
|
|
11
|
+
Nothing else in the published CSS says which color a brand chose.
|
|
12
|
+
generateScaledTones writes the pick into the tone NEAREST ITS LIGHTNESS,
|
|
13
|
+
so the index differs per color — 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
|
+
colors 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
|
|
|
@@ -551,7 +551,7 @@
|
|
|
551
551
|
|
|
552
552
|
/* Alt Display — mirrors Display step for step. The pairing sets one word
|
|
553
553
|
on one baseline ("Omni" + "Design"), so the two must not diverge in
|
|
554
|
-
size or leading;
|
|
554
|
+
size or leading; color is what separates them. */
|
|
555
555
|
--Alt-Display-Small-Font-Size: 34px;
|
|
556
556
|
--Alt-Display-Small-Font-Weight: 900;
|
|
557
557
|
--Alt-Display-Small-Line-Height: 41px;
|
|
@@ -567,7 +567,7 @@
|
|
|
567
567
|
|
|
568
568
|
}
|
|
569
569
|
|
|
570
|
-
[data-
|
|
570
|
+
[data-device="IOS-Tablet"] {
|
|
571
571
|
|
|
572
572
|
|
|
573
573
|
|
|
@@ -790,7 +790,7 @@
|
|
|
790
790
|
|
|
791
791
|
/* Alt Display — mirrors Display step for step. The pairing sets one word
|
|
792
792
|
on one baseline ("Omni" + "Design"), so the two must not diverge in
|
|
793
|
-
size or leading;
|
|
793
|
+
size or leading; color is what separates them. */
|
|
794
794
|
--Alt-Display-Small-Font-Size: 34px;
|
|
795
795
|
--Alt-Display-Small-Font-Weight: 900;
|
|
796
796
|
--Alt-Display-Small-Line-Height: 41px;
|
|
@@ -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; color 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
|
|
|
@@ -1029,7 +1269,7 @@
|
|
|
1029
1269
|
|
|
1030
1270
|
/* Alt Display — mirrors Display step for step. The pairing sets one word
|
|
1031
1271
|
on one baseline ("Omni" + "Design"), so the two must not diverge in
|
|
1032
|
-
size or leading;
|
|
1272
|
+
size or leading; color is what separates them. */
|
|
1033
1273
|
--Alt-Display-Small-Font-Size: 36px;
|
|
1034
1274
|
--Alt-Display-Small-Font-Weight: 900;
|
|
1035
1275
|
--Alt-Display-Small-Line-Height: 44px;
|
|
@@ -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;
|
|
@@ -1142,11 +1391,11 @@
|
|
|
1142
1391
|
}
|
|
1143
1392
|
|
|
1144
1393
|
/* ---------------------------------------------------------------------------
|
|
1145
|
-
Alt Display
|
|
1394
|
+
Alt Display color — three variants, one pair of stops
|
|
1146
1395
|
|
|
1147
1396
|
Set data-alt-display on the element or any ancestor:
|
|
1148
1397
|
default (or unset) the Alt reads as a heading
|
|
1149
|
-
colored a flat Alt
|
|
1398
|
+
colored a flat Alt color
|
|
1150
1399
|
gradient the two stops the theme publishes
|
|
1151
1400
|
|
|
1152
1401
|
The stops are re-published per theme and surface, so every variant follows
|
|
@@ -1171,7 +1420,7 @@
|
|
|
1171
1420
|
.typography-alt-display-large,
|
|
1172
1421
|
.typography-alt-display-medium,
|
|
1173
1422
|
.typography-alt-display-small {
|
|
1174
|
-
/* Stop 1 alone: in the flat variants the two agree, and a plain
|
|
1423
|
+
/* Stop 1 alone: in the flat variants the two agree, and a plain color keeps
|
|
1175
1424
|
the selection highlight, print, and forced-colors working. */
|
|
1176
1425
|
color: var(--Alt-Display-Color-Stop-1);
|
|
1177
1426
|
}
|
|
@@ -1204,7 +1453,7 @@
|
|
|
1204
1453
|
.typography-alt-display-small[data-alt-display="gradient"],
|
|
1205
1454
|
[data-alt-display="gradient"] .typography-alt-display-small {
|
|
1206
1455
|
/* The UA drops background-image here, and transparent text would leave
|
|
1207
|
-
nothing on screen. Hand the glyphs back to the system
|
|
1456
|
+
nothing on screen. Hand the glyphs back to the system color. */
|
|
1208
1457
|
background-image: none;
|
|
1209
1458
|
-webkit-background-clip: border-box;
|
|
1210
1459
|
background-clip: border-box;
|