@omni-design/components 0.10.0 → 0.12.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/.claude/commands/ScanComponents.md +1 -1
- package/.claude/commands/ShareComponent.md +1 -1
- package/CLAUDE.md +5 -3
- package/dist/index.esm.js +3 -3
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/types/components/Avatar/AvatarGlyph.d.ts +5 -0
- package/dist/types/components/Avatar/index.d.ts +1 -0
- package/dist/types/components/Button/Button.d.ts +3 -1
- package/dist/types/components/ButtonGroup/ButtonGroup.d.ts +3 -2
- package/dist/types/components/Chip/Chip.d.ts +1 -1
- package/dist/types/components/Icon/Icon.d.ts +4 -0
- package/dist/types/components/IconBadge/IconBadge.d.ts +1 -1
- package/dist/types/components/Loader/Loader.d.ts +66 -0
- package/dist/types/components/Loader/index.d.ts +1 -0
- package/dist/types/components/MiniSwatch/MiniSwatch.d.ts +7 -0
- package/dist/types/components/MiniSwatch/index.d.ts +1 -0
- package/dist/types/components/Pagination/Pagination.d.ts +3 -1
- package/dist/types/components/Radio/Radio.d.ts +6 -2
- package/dist/types/components/Rating/Rating.d.ts +3 -1
- package/dist/types/components/Slider/Slider.d.ts +9 -3
- package/dist/types/components/Stepper/Stepper.d.ts +3 -1
- package/dist/types/components/Swatch/Swatch.d.ts +14 -0
- package/dist/types/components/Swatch/index.d.ts +1 -0
- package/dist/types/components/Switch/Switch.d.ts +24 -8
- package/dist/types/components/Switch/index.d.ts +1 -1
- package/dist/types/components/Tabs/Tabs.d.ts +17 -1
- package/dist/types/components/ToggleButton/index.d.ts +1 -1
- package/dist/types/components/ToggleButtonGroup/ToggleButtonGroup.d.ts +26 -42
- package/dist/types/components/index.d.ts +5 -0
- package/dist/types/docs/DocPanels.d.ts +39 -0
- package/dist/types/docs/components.d.ts +212 -0
- package/dist/types/docs/componentsData.d.ts +587 -0
- package/dist/types/docs/componentsForms.d.ts +597 -0
- package/dist/types/docs/componentsNav.d.ts +420 -0
- package/dist/types/docs/componentsOverlays.d.ts +379 -0
- package/dist/types/docs/componentsRest.d.ts +158 -0
- package/dist/types/docs/componentsSurfaces.d.ts +339 -0
- package/dist/types/docs/docsLink.d.ts +32 -0
- package/dist/types/docs/examples.d.ts +37 -0
- package/dist/types/docs/foundations.d.ts +28 -0
- package/dist/types/docs/index.d.ts +5 -0
- package/docs/components.md +71 -55
- package/package.json +1 -1
- package/public/styles/Dark-Mode.css +12056 -13009
- package/public/styles/Light-Mode.css +11240 -12370
- package/public/styles/base.css +364 -182
- package/public/styles/core.css +480 -123
- package/public/styles/foundation.css +124 -53
- package/public/styles/styles.css +5 -5
- package/public/styles/theme.json +2 -2
- package/public/styles/typography-tokens.css +686 -158
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
* The "Auto-generated" note below refers to the template itself being
|
|
6
|
-
* auto-generated upstream, not per-design-system regeneration.
|
|
7
|
-
* ============================================================================ */
|
|
1
|
+
@import url('https://fonts.googleapis.com/css2?family=Google+Sans+Flex:GRAD,ROND,opsz,slnt,wdth,wght@0..100,0..100,6..144,-10..0,25..151,1..1000&display=swap');
|
|
2
|
+
@import url('https://fonts.googleapis.com/css2?family=Raleway:wght@400&display=swap');
|
|
3
|
+
@import url('https://fonts.googleapis.com/css2?family=Google+Sans+Flex:wght@640&display=swap');
|
|
4
|
+
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;600;700&display=swap');
|
|
8
5
|
|
|
9
6
|
/* typography-tokens.css
|
|
10
7
|
* Auto-generated — do not edit by hand.
|
|
@@ -12,199 +9,344 @@
|
|
|
12
9
|
*/
|
|
13
10
|
|
|
14
11
|
[data-platform="Desktop"] {
|
|
12
|
+
/* Faces */
|
|
13
|
+
--Font-Family-Display: var(--Set-Font-Family-Display, var(--Platform-Font-Families-Decorative, var(--Set-Font-Family-Decorative)));
|
|
14
|
+
--Font-Family-Header: var(--Platform-Font-Families-Header, var(--Set-Font-Family-Header));
|
|
15
|
+
--Font-Family-Eyebrow: var(--Set-Font-Family-Eyebrow, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);
|
|
16
|
+
--Font-Family-Body: var(--Platform-Font-Families-Body, var(--Set-Font-Family-Body));
|
|
15
17
|
|
|
16
|
-
/*
|
|
17
|
-
--Font-
|
|
18
|
-
--
|
|
19
|
-
--
|
|
20
|
-
--
|
|
21
|
-
--
|
|
22
|
-
--Font-Family-Display: var(--Platform-Font-Families-Header);
|
|
23
|
-
--Display-Medium-Font-Size: 45px;
|
|
24
|
-
--Display-Medium-Font-Weight: 600;
|
|
25
|
-
--Display-Medium-Line-Height: 45px;
|
|
26
|
-
--Display-Medium-Letter-Spacing: 0px;
|
|
27
|
-
--Font-Family-Display: var(--Platform-Font-Families-Header);
|
|
28
|
-
--Display-Large-Font-Size: 48px;
|
|
29
|
-
--Display-Large-Font-Weight: 600;
|
|
30
|
-
--Display-Large-Line-Height: 48px;
|
|
31
|
-
--Display-Large-Letter-Spacing: 0px;
|
|
18
|
+
/* Face weights */
|
|
19
|
+
--Font-Weight-Display: 400;
|
|
20
|
+
--Font-Weight-Header: 640;
|
|
21
|
+
--Font-Weight-Eyebrow: 400;
|
|
22
|
+
--Font-Weight-Body: 400;
|
|
23
|
+
--Header-Clamped-Weight: 640;
|
|
32
24
|
|
|
33
|
-
/*
|
|
34
|
-
--Font-
|
|
35
|
-
--
|
|
36
|
-
--
|
|
37
|
-
--
|
|
38
|
-
--
|
|
39
|
-
--Font-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
--
|
|
43
|
-
--
|
|
44
|
-
--Font-
|
|
45
|
-
--
|
|
46
|
-
--
|
|
47
|
-
--
|
|
48
|
-
--
|
|
49
|
-
--
|
|
50
|
-
--
|
|
51
|
-
--
|
|
52
|
-
--
|
|
53
|
-
--
|
|
54
|
-
--Font-Family
|
|
55
|
-
--
|
|
56
|
-
--
|
|
57
|
-
--
|
|
58
|
-
--
|
|
59
|
-
--
|
|
60
|
-
--
|
|
61
|
-
--
|
|
62
|
-
--
|
|
63
|
-
--
|
|
25
|
+
/* Variable-font axes */
|
|
26
|
+
--Font-Grade-Header: 50;
|
|
27
|
+
--Font-Slant-Header: 0;
|
|
28
|
+
--Font-Roundness-Header: 0;
|
|
29
|
+
--Font-Optical-Size-Header: 96;
|
|
30
|
+
--Font-Width-Header: 72;
|
|
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);
|
|
32
|
+
|
|
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
|
+
--Display-Large-Font-Family: var(--Font-Family-Display);
|
|
35
|
+
--Display-Large-Font-Size: 72px;
|
|
36
|
+
--Display-Large-Font-Weight: var(--Font-Weight-Display);
|
|
37
|
+
--Display-Large-Line-Height: 88px;
|
|
38
|
+
--Display-Large-Letter-Spacing: 0em;
|
|
39
|
+
--Display-Large-Text-Transform: none;
|
|
40
|
+
--Display-Medium-Font-Family: var(--Font-Family-Display);
|
|
41
|
+
--Display-Medium-Font-Size: 60px;
|
|
42
|
+
--Display-Medium-Font-Weight: var(--Font-Weight-Display);
|
|
43
|
+
--Display-Medium-Line-Height: 76px;
|
|
44
|
+
--Display-Medium-Letter-Spacing: 0em;
|
|
45
|
+
--Display-Medium-Text-Transform: none;
|
|
46
|
+
--Display-Small-Font-Family: var(--Font-Family-Display);
|
|
47
|
+
--Display-Small-Font-Size: 48px;
|
|
48
|
+
--Display-Small-Font-Weight: var(--Font-Weight-Display);
|
|
49
|
+
--Display-Small-Line-Height: 60px;
|
|
50
|
+
--Display-Small-Letter-Spacing: 0em;
|
|
51
|
+
--Display-Small-Text-Transform: none;
|
|
52
|
+
--Alt-Display-Large-Font-Family: var(--Font-Family-Display);
|
|
53
|
+
--Alt-Display-Large-Font-Size: 72px;
|
|
54
|
+
--Alt-Display-Large-Font-Weight: 900;
|
|
55
|
+
--Alt-Display-Large-Line-Height: 88px;
|
|
56
|
+
--Alt-Display-Large-Letter-Spacing: 0em;
|
|
57
|
+
--Alt-Display-Large-Text-Transform: none;
|
|
58
|
+
--Alt-Display-Medium-Font-Family: var(--Font-Family-Display);
|
|
59
|
+
--Alt-Display-Medium-Font-Size: 60px;
|
|
60
|
+
--Alt-Display-Medium-Font-Weight: 900;
|
|
61
|
+
--Alt-Display-Medium-Line-Height: 76px;
|
|
62
|
+
--Alt-Display-Medium-Letter-Spacing: 0em;
|
|
63
|
+
--Alt-Display-Medium-Text-Transform: none;
|
|
64
|
+
--Alt-Display-Small-Font-Family: var(--Font-Family-Display);
|
|
65
|
+
--Alt-Display-Small-Font-Size: 48px;
|
|
66
|
+
--Alt-Display-Small-Font-Weight: 900;
|
|
67
|
+
--Alt-Display-Small-Line-Height: 60px;
|
|
68
|
+
--Alt-Display-Small-Letter-Spacing: 0em;
|
|
69
|
+
--Alt-Display-Small-Text-Transform: none;
|
|
70
|
+
|
|
71
|
+
/* Header */
|
|
72
|
+
--H1-Font-Family: var(--Font-Family-Header);
|
|
73
|
+
--H1-Font-Size: 48px;
|
|
74
|
+
--H1-Font-Weight: var(--Font-Weight-Header);
|
|
75
|
+
--H1-Line-Height: 56px;
|
|
76
|
+
--H1-Letter-Spacing: -0.0217em;
|
|
77
|
+
--H1-Text-Transform: none;
|
|
78
|
+
--H2-Font-Family: var(--Font-Family-Header);
|
|
79
|
+
--H2-Font-Size: 40px;
|
|
80
|
+
--H2-Font-Weight: var(--Font-Weight-Header);
|
|
81
|
+
--H2-Line-Height: 48px;
|
|
82
|
+
--H2-Letter-Spacing: -0.0163em;
|
|
83
|
+
--H2-Text-Transform: none;
|
|
84
|
+
--H3-Font-Family: var(--Font-Family-Header);
|
|
85
|
+
--H3-Font-Size: 32px;
|
|
86
|
+
--H3-Font-Weight: var(--Font-Weight-Header);
|
|
87
|
+
--H3-Line-Height: 40px;
|
|
88
|
+
--H3-Letter-Spacing: -0.011em;
|
|
89
|
+
--H3-Text-Transform: none;
|
|
90
|
+
--H4-Font-Family: var(--Font-Family-Header);
|
|
91
|
+
--H4-Font-Size: 24px;
|
|
92
|
+
--H4-Font-Weight: var(--Header-Clamped-Weight);
|
|
93
|
+
--H4-Line-Height: 32px;
|
|
94
|
+
--H4-Letter-Spacing: -0.0057em;
|
|
95
|
+
--H4-Text-Transform: none;
|
|
96
|
+
--H5-Font-Family: var(--Font-Family-Header);
|
|
97
|
+
--H5-Font-Size: 20px;
|
|
98
|
+
--H5-Font-Weight: var(--Header-Clamped-Weight);
|
|
99
|
+
--H5-Line-Height: 28px;
|
|
100
|
+
--H5-Letter-Spacing: -0.003em;
|
|
101
|
+
--H5-Text-Transform: none;
|
|
102
|
+
--H6-Font-Family: var(--Font-Family-Header);
|
|
103
|
+
--H6-Font-Size: 18px;
|
|
104
|
+
--H6-Font-Weight: var(--Header-Clamped-Weight);
|
|
105
|
+
--H6-Line-Height: 24px;
|
|
106
|
+
--H6-Letter-Spacing: -0.0017em;
|
|
107
|
+
--H6-Text-Transform: none;
|
|
64
108
|
|
|
65
109
|
/* Subtitle */
|
|
66
|
-
--Font-Family
|
|
67
|
-
--Subtitle-Small-Font-Size:
|
|
110
|
+
--Subtitle-Small-Font-Family: var(--Font-Family-Body);
|
|
111
|
+
--Subtitle-Small-Font-Size: 14px;
|
|
68
112
|
--Subtitle-Small-Font-Weight: 700;
|
|
69
|
-
--Subtitle-Small-Line-Height:
|
|
70
|
-
--Subtitle-Small-Letter-Spacing:
|
|
71
|
-
--
|
|
113
|
+
--Subtitle-Small-Line-Height: 21px;
|
|
114
|
+
--Subtitle-Small-Letter-Spacing: 0em;
|
|
115
|
+
--Subtitle-Small-Text-Transform: none;
|
|
116
|
+
--Subtitle-Medium-Font-Family: var(--Font-Family-Body);
|
|
117
|
+
--Subtitle-Medium-Font-Size: 16px;
|
|
118
|
+
--Subtitle-Medium-Font-Weight: 700;
|
|
119
|
+
--Subtitle-Medium-Line-Height: 24px;
|
|
120
|
+
--Subtitle-Medium-Letter-Spacing: 0em;
|
|
121
|
+
--Subtitle-Medium-Text-Transform: none;
|
|
122
|
+
--Subtitle-Large-Font-Family: var(--Font-Family-Body);
|
|
72
123
|
--Subtitle-Large-Font-Size: 18px;
|
|
73
124
|
--Subtitle-Large-Font-Weight: 700;
|
|
74
|
-
--Subtitle-Large-Line-Height:
|
|
75
|
-
--Subtitle-Large-Letter-Spacing:
|
|
125
|
+
--Subtitle-Large-Line-Height: 27px;
|
|
126
|
+
--Subtitle-Large-Letter-Spacing: 0em;
|
|
127
|
+
--Subtitle-Large-Text-Transform: none;
|
|
76
128
|
|
|
77
129
|
/* Body */
|
|
78
|
-
--Font-Family
|
|
130
|
+
--Body-Small-Font-Family: var(--Font-Family-Body);
|
|
79
131
|
--Body-Small-Font-Size: 14px;
|
|
80
|
-
--Body-Small-Font-Weight:
|
|
132
|
+
--Body-Small-Font-Weight: var(--Font-Weight-Body);
|
|
81
133
|
--Body-Small-Line-Height: 21px;
|
|
82
|
-
--Body-Small-Letter-Spacing:
|
|
134
|
+
--Body-Small-Letter-Spacing: 0em;
|
|
135
|
+
--Body-Small-Text-Transform: none;
|
|
83
136
|
--Body-Small-Semibold-Font-Weight: 600;
|
|
84
|
-
--Body-
|
|
85
|
-
--Font-Family-Body: var(--Platform-Font-Families-Body);
|
|
137
|
+
--Body-Medium-Font-Family: var(--Font-Family-Body);
|
|
86
138
|
--Body-Medium-Font-Size: 16px;
|
|
87
|
-
--Body-Medium-Font-Weight:
|
|
139
|
+
--Body-Medium-Font-Weight: var(--Font-Weight-Body);
|
|
88
140
|
--Body-Medium-Line-Height: 24px;
|
|
89
|
-
--Body-Medium-Letter-Spacing:
|
|
141
|
+
--Body-Medium-Letter-Spacing: 0em;
|
|
142
|
+
--Body-Medium-Text-Transform: none;
|
|
90
143
|
--Body-Medium-Semibold-Font-Weight: 600;
|
|
91
|
-
--Body-
|
|
92
|
-
--Font-Family-Body: var(--Platform-Font-Families-Body);
|
|
144
|
+
--Body-Large-Font-Family: var(--Font-Family-Body);
|
|
93
145
|
--Body-Large-Font-Size: 18px;
|
|
94
|
-
--Body-Large-Font-Weight:
|
|
146
|
+
--Body-Large-Font-Weight: var(--Font-Weight-Body);
|
|
95
147
|
--Body-Large-Line-Height: 27px;
|
|
96
|
-
--Body-Large-Letter-Spacing:
|
|
148
|
+
--Body-Large-Letter-Spacing: 0em;
|
|
149
|
+
--Body-Large-Text-Transform: none;
|
|
97
150
|
--Body-Large-Semibold-Font-Weight: 600;
|
|
98
|
-
--Body-Large-Bold-Font-Weight: 700;
|
|
99
151
|
|
|
100
152
|
/* Caption */
|
|
101
|
-
--Font-Family
|
|
153
|
+
--Caption-Small-Font-Family: var(--Font-Family-Body);
|
|
154
|
+
--Caption-Small-Font-Size: 12px;
|
|
155
|
+
--Caption-Small-Font-Weight: 500;
|
|
156
|
+
--Caption-Small-Line-Height: 18px;
|
|
157
|
+
--Caption-Small-Letter-Spacing: 0.0083em;
|
|
158
|
+
--Caption-Small-Text-Transform: none;
|
|
159
|
+
--Caption-Small-Bold-Font-Weight: 700;
|
|
160
|
+
--Caption-Small-Paragraph-Spacing: 24px;
|
|
161
|
+
--Caption-Font-Family: var(--Font-Family-Body);
|
|
102
162
|
--Caption-Font-Size: 14px;
|
|
103
163
|
--Caption-Font-Weight: 500;
|
|
104
164
|
--Caption-Line-Height: 21px;
|
|
105
|
-
--Caption-Letter-Spacing:
|
|
165
|
+
--Caption-Letter-Spacing: 0.0071em;
|
|
166
|
+
--Caption-Text-Transform: none;
|
|
106
167
|
--Caption-Bold-Font-Weight: 700;
|
|
168
|
+
--Caption-Paragraph-Spacing: 28px;
|
|
169
|
+
--Caption-Large-Font-Family: var(--Font-Family-Body);
|
|
170
|
+
--Caption-Large-Font-Size: 16px;
|
|
171
|
+
--Caption-Large-Font-Weight: 500;
|
|
172
|
+
--Caption-Large-Line-Height: 24px;
|
|
173
|
+
--Caption-Large-Letter-Spacing: 0.0063em;
|
|
174
|
+
--Caption-Large-Text-Transform: none;
|
|
175
|
+
--Caption-Large-Bold-Font-Weight: 700;
|
|
176
|
+
--Caption-Large-Paragraph-Spacing: 32px;
|
|
107
177
|
|
|
108
178
|
/* Label */
|
|
109
|
-
--Font-Family
|
|
179
|
+
--Label-ExtraSmall-Font-Family: var(--Font-Family-Body);
|
|
110
180
|
--Label-ExtraSmall-Font-Size: 11px;
|
|
111
181
|
--Label-ExtraSmall-Font-Weight: 600;
|
|
112
182
|
--Label-ExtraSmall-Line-Height: 16.5px;
|
|
113
|
-
--Label-ExtraSmall-Letter-Spacing:
|
|
114
|
-
--
|
|
183
|
+
--Label-ExtraSmall-Letter-Spacing: 0.0455em;
|
|
184
|
+
--Label-ExtraSmall-Text-Transform: none;
|
|
185
|
+
--Label-Small-Font-Family: var(--Font-Family-Body);
|
|
115
186
|
--Label-Small-Font-Size: 12.5px;
|
|
116
187
|
--Label-Small-Font-Weight: 600;
|
|
117
188
|
--Label-Small-Line-Height: 18.75px;
|
|
118
|
-
--Label-Small-Letter-Spacing:
|
|
119
|
-
--
|
|
189
|
+
--Label-Small-Letter-Spacing: 0.02em;
|
|
190
|
+
--Label-Small-Text-Transform: none;
|
|
191
|
+
--Label-Small-All-Caps-Font-Family: var(--Font-Family-Body);
|
|
192
|
+
--Label-Small-All-Caps-Font-Size: 12.5px;
|
|
193
|
+
--Label-Small-All-Caps-Font-Weight: 600;
|
|
194
|
+
--Label-Small-All-Caps-Line-Height: 18.75px;
|
|
195
|
+
--Label-Small-All-Caps-Letter-Spacing: 0.02em;
|
|
196
|
+
--Label-Small-All-Caps-Text-Transform: uppercase;
|
|
197
|
+
--Label-Medium-Font-Family: var(--Font-Family-Body);
|
|
120
198
|
--Label-Medium-Font-Size: 16px;
|
|
121
199
|
--Label-Medium-Font-Weight: 600;
|
|
122
200
|
--Label-Medium-Line-Height: 24px;
|
|
123
|
-
--Label-Medium-Letter-Spacing:
|
|
124
|
-
--
|
|
201
|
+
--Label-Medium-Letter-Spacing: 0em;
|
|
202
|
+
--Label-Medium-Text-Transform: none;
|
|
203
|
+
--Label-Medium-All-Caps-Font-Family: var(--Font-Family-Body);
|
|
204
|
+
--Label-Medium-All-Caps-Font-Size: 16px;
|
|
205
|
+
--Label-Medium-All-Caps-Font-Weight: 600;
|
|
206
|
+
--Label-Medium-All-Caps-Line-Height: 24px;
|
|
207
|
+
--Label-Medium-All-Caps-Letter-Spacing: 0em;
|
|
208
|
+
--Label-Medium-All-Caps-Text-Transform: uppercase;
|
|
209
|
+
--Label-Large-Font-Family: var(--Font-Family-Body);
|
|
125
210
|
--Label-Large-Font-Size: 18px;
|
|
126
211
|
--Label-Large-Font-Weight: 600;
|
|
127
212
|
--Label-Large-Line-Height: 27px;
|
|
128
|
-
--Label-Large-Letter-Spacing:
|
|
213
|
+
--Label-Large-Letter-Spacing: 0em;
|
|
214
|
+
--Label-Large-Text-Transform: none;
|
|
215
|
+
--Label-Large-All-Caps-Font-Family: var(--Font-Family-Body);
|
|
216
|
+
--Label-Large-All-Caps-Font-Size: 18px;
|
|
217
|
+
--Label-Large-All-Caps-Font-Weight: 600;
|
|
218
|
+
--Label-Large-All-Caps-Line-Height: 27px;
|
|
219
|
+
--Label-Large-All-Caps-Letter-Spacing: 0em;
|
|
220
|
+
--Label-Large-All-Caps-Text-Transform: uppercase;
|
|
221
|
+
|
|
222
|
+
/* Mobile-Nav-Label */
|
|
223
|
+
--Mobile-Nav-Label-Font-Family: var(--Font-Family-Body);
|
|
224
|
+
--Mobile-Nav-Label-Font-Size: 11px;
|
|
225
|
+
--Mobile-Nav-Label-Font-Weight: 600;
|
|
226
|
+
--Mobile-Nav-Label-Line-Height: 16.5px;
|
|
227
|
+
--Mobile-Nav-Label-Letter-Spacing: 0.0455em;
|
|
228
|
+
--Mobile-Nav-Label-Text-Transform: none;
|
|
129
229
|
|
|
130
230
|
/* Legal */
|
|
131
|
-
--Font-Family
|
|
231
|
+
--Legal-Font-Family: var(--Font-Family-Body);
|
|
132
232
|
--Legal-Font-Size: 10px;
|
|
133
233
|
--Legal-Font-Weight: 400;
|
|
134
234
|
--Legal-Line-Height: 15px;
|
|
135
|
-
--Legal-Letter-Spacing:
|
|
235
|
+
--Legal-Letter-Spacing: 0em;
|
|
236
|
+
--Legal-Text-Transform: none;
|
|
136
237
|
--Legal-Semibold-Font-Weight: 600;
|
|
238
|
+
--Legal-Paragraph-Spacing: 20px;
|
|
137
239
|
|
|
138
|
-
/*
|
|
139
|
-
--
|
|
140
|
-
--
|
|
141
|
-
--
|
|
142
|
-
--
|
|
143
|
-
--
|
|
144
|
-
--Font-
|
|
145
|
-
--Overline-
|
|
146
|
-
--Overline-
|
|
147
|
-
--Overline-
|
|
148
|
-
--Overline-
|
|
149
|
-
--
|
|
150
|
-
--
|
|
151
|
-
--
|
|
152
|
-
--
|
|
153
|
-
--
|
|
240
|
+
/* Eyebrow — Eyebrow label — uppercase and tracked. Sits above a heading. */
|
|
241
|
+
--Eyebrow-Small-Font-Size: 12px;
|
|
242
|
+
--Eyebrow-Small-Font-Weight: 600;
|
|
243
|
+
--Eyebrow-Small-Line-Height: 18px;
|
|
244
|
+
--Eyebrow-Small-Letter-Spacing: 0.06em;
|
|
245
|
+
--Eyebrow-Small-Text-Transform: uppercase;
|
|
246
|
+
--Overline-Small-Font-Size: var(--Eyebrow-Small-Font-Size);
|
|
247
|
+
--Overline-Small-Font-Weight: var(--Eyebrow-Small-Font-Weight);
|
|
248
|
+
--Overline-Small-Line-Height: var(--Eyebrow-Small-Line-Height);
|
|
249
|
+
--Overline-Small-Letter-Spacing: var(--Eyebrow-Small-Letter-Spacing);
|
|
250
|
+
--Overline-Small-Text-Transform: var(--Eyebrow-Small-Text-Transform);
|
|
251
|
+
--Eyebrow-Medium-Font-Size: 16px;
|
|
252
|
+
--Eyebrow-Medium-Font-Weight: 600;
|
|
253
|
+
--Eyebrow-Medium-Line-Height: 24px;
|
|
254
|
+
--Eyebrow-Medium-Letter-Spacing: 0.05em;
|
|
255
|
+
--Eyebrow-Medium-Text-Transform: uppercase;
|
|
256
|
+
--Overline-Medium-Font-Size: var(--Eyebrow-Medium-Font-Size);
|
|
257
|
+
--Overline-Medium-Font-Weight: var(--Eyebrow-Medium-Font-Weight);
|
|
258
|
+
--Overline-Medium-Line-Height: var(--Eyebrow-Medium-Line-Height);
|
|
259
|
+
--Overline-Medium-Letter-Spacing: var(--Eyebrow-Medium-Letter-Spacing);
|
|
260
|
+
--Overline-Medium-Text-Transform: var(--Eyebrow-Medium-Text-Transform);
|
|
261
|
+
--Eyebrow-Large-Font-Size: 18px;
|
|
262
|
+
--Eyebrow-Large-Font-Weight: 600;
|
|
263
|
+
--Eyebrow-Large-Line-Height: 27px;
|
|
264
|
+
--Eyebrow-Large-Letter-Spacing: 0.04em;
|
|
265
|
+
--Eyebrow-Large-Text-Transform: uppercase;
|
|
266
|
+
--Overline-Large-Font-Size: var(--Eyebrow-Large-Font-Size);
|
|
267
|
+
--Overline-Large-Font-Weight: var(--Eyebrow-Large-Font-Weight);
|
|
268
|
+
--Overline-Large-Line-Height: var(--Eyebrow-Large-Line-Height);
|
|
269
|
+
--Overline-Large-Letter-Spacing: var(--Eyebrow-Large-Letter-Spacing);
|
|
270
|
+
--Overline-Large-Text-Transform: var(--Eyebrow-Large-Text-Transform);
|
|
154
271
|
|
|
155
272
|
/* Number */
|
|
156
|
-
--Font-Family
|
|
273
|
+
--Number-Small-Font-Family: var(--Font-Family-Body);
|
|
157
274
|
--Number-Small-Font-Size: 16px;
|
|
158
275
|
--Number-Small-Font-Weight: 700;
|
|
159
276
|
--Number-Small-Line-Height: 16px;
|
|
160
|
-
--Number-Small-Letter-Spacing:
|
|
161
|
-
--
|
|
277
|
+
--Number-Small-Letter-Spacing: 0em;
|
|
278
|
+
--Number-Small-Text-Transform: none;
|
|
279
|
+
--Number-Medium-Font-Family: var(--Font-Family-Body);
|
|
162
280
|
--Number-Medium-Font-Size: 28px;
|
|
163
281
|
--Number-Medium-Font-Weight: 700;
|
|
164
282
|
--Number-Medium-Line-Height: 28px;
|
|
165
|
-
--Number-Medium-Letter-Spacing:
|
|
166
|
-
--
|
|
283
|
+
--Number-Medium-Letter-Spacing: 0em;
|
|
284
|
+
--Number-Medium-Text-Transform: none;
|
|
285
|
+
--Number-Large-Font-Family: var(--Font-Family-Body);
|
|
167
286
|
--Number-Large-Font-Size: 36px;
|
|
168
287
|
--Number-Large-Font-Weight: 700;
|
|
169
288
|
--Number-Large-Line-Height: 36px;
|
|
170
|
-
--Number-Large-Letter-Spacing:
|
|
289
|
+
--Number-Large-Letter-Spacing: 0em;
|
|
290
|
+
--Number-Large-Text-Transform: none;
|
|
171
291
|
|
|
172
292
|
/* Button */
|
|
173
|
-
--Font-Family
|
|
293
|
+
--Button-ExtraSmall-Font-Family: var(--Font-Family-Body);
|
|
174
294
|
--Button-ExtraSmall-Font-Size: 11px;
|
|
175
295
|
--Button-ExtraSmall-Font-Weight: 600;
|
|
176
296
|
--Button-ExtraSmall-Line-Height: 11px;
|
|
177
|
-
--Button-ExtraSmall-Letter-Spacing:
|
|
178
|
-
--
|
|
297
|
+
--Button-ExtraSmall-Letter-Spacing: 0em;
|
|
298
|
+
--Button-ExtraSmall-Text-Transform: none;
|
|
299
|
+
--Button-Small-Font-Family: var(--Font-Family-Body);
|
|
179
300
|
--Button-Small-Font-Size: 14px;
|
|
180
301
|
--Button-Small-Font-Weight: 600;
|
|
181
302
|
--Button-Small-Line-Height: 14px;
|
|
182
|
-
--Button-Small-Letter-Spacing:
|
|
183
|
-
--
|
|
184
|
-
--Button-
|
|
185
|
-
--Button-
|
|
186
|
-
--Button-
|
|
187
|
-
--Button-
|
|
303
|
+
--Button-Small-Letter-Spacing: 0em;
|
|
304
|
+
--Button-Small-Text-Transform: none;
|
|
305
|
+
--Button-Medium-Font-Family: var(--Font-Family-Body);
|
|
306
|
+
--Button-Medium-Font-Size: 16px;
|
|
307
|
+
--Button-Medium-Font-Weight: 600;
|
|
308
|
+
--Button-Medium-Line-Height: 16px;
|
|
309
|
+
--Button-Medium-Letter-Spacing: 0em;
|
|
310
|
+
--Button-Medium-Text-Transform: none;
|
|
311
|
+
--Button-Standard-Font-Size: var(--Button-Medium-Font-Size);
|
|
312
|
+
--Button-Standard-Font-Weight: var(--Button-Medium-Font-Weight);
|
|
313
|
+
--Button-Standard-Line-Height: var(--Button-Medium-Line-Height);
|
|
314
|
+
--Button-Standard-Letter-Spacing: var(--Button-Medium-Letter-Spacing);
|
|
315
|
+
--Button-Large-Font-Family: var(--Font-Family-Body);
|
|
316
|
+
--Button-Large-Font-Size: 24px;
|
|
317
|
+
--Button-Large-Font-Weight: 600;
|
|
318
|
+
--Button-Large-Line-Height: 24px;
|
|
319
|
+
--Button-Large-Letter-Spacing: 0em;
|
|
320
|
+
--Button-Large-Text-Transform: none;
|
|
188
321
|
|
|
322
|
+
/* Badge */
|
|
323
|
+
--Badge-Font-Family: var(--Font-Family-Body);
|
|
324
|
+
--Badge-Font-Size: 11px;
|
|
325
|
+
--Badge-Font-Weight: 600;
|
|
326
|
+
--Badge-Line-Height: 12px;
|
|
327
|
+
--Badge-Letter-Spacing: 0em;
|
|
328
|
+
--Badge-Text-Transform: none;
|
|
189
329
|
}
|
|
190
330
|
|
|
191
331
|
[data-platform="IOS-Mobile"] {
|
|
192
332
|
|
|
333
|
+
|
|
334
|
+
|
|
193
335
|
/* Display */
|
|
194
|
-
--Font-Family-Display: var(--Platform-Font-Families-Decorative);
|
|
195
|
-
--Display-Small-Font-Size:
|
|
336
|
+
--Font-Family-Display: var(--Set-Font-Family-Display, var(--Platform-Font-Families-Decorative, var(--Set-Font-Family-Decorative)));
|
|
337
|
+
--Display-Small-Font-Size: 34px;
|
|
196
338
|
--Display-Small-Font-Weight: 600;
|
|
197
|
-
--Display-Small-Line-Height:
|
|
339
|
+
--Display-Small-Line-Height: 41px;
|
|
198
340
|
--Display-Small-Letter-Spacing: 0px;
|
|
199
|
-
--Font-Family-Display: var(--Platform-Font-Families-
|
|
200
|
-
--Display-Medium-Font-Size:
|
|
341
|
+
--Font-Family-Display: var(--Set-Font-Family-Display, var(--Platform-Font-Families-Decorative, var(--Set-Font-Family-Decorative)));
|
|
342
|
+
--Display-Medium-Font-Size: 40px;
|
|
201
343
|
--Display-Medium-Font-Weight: 600;
|
|
202
|
-
--Display-Medium-Line-Height:
|
|
344
|
+
--Display-Medium-Line-Height: 48px;
|
|
203
345
|
--Display-Medium-Letter-Spacing: 0px;
|
|
204
|
-
--Font-Family-Display: var(--Platform-Font-Families-Decorative);
|
|
205
|
-
--Display-Large-Font-Size:
|
|
346
|
+
--Font-Family-Display: var(--Set-Font-Family-Display, var(--Platform-Font-Families-Decorative, var(--Set-Font-Family-Decorative)));
|
|
347
|
+
--Display-Large-Font-Size: 48px;
|
|
206
348
|
--Display-Large-Font-Weight: 600;
|
|
207
|
-
--Display-Large-Line-Height:
|
|
349
|
+
--Display-Large-Line-Height: 58px;
|
|
208
350
|
--Display-Large-Letter-Spacing: 0px;
|
|
209
351
|
|
|
210
352
|
/* Headers */
|
|
@@ -276,11 +418,42 @@
|
|
|
276
418
|
|
|
277
419
|
/* Caption */
|
|
278
420
|
--Font-Family-Body: var(--Platform-Font-Families-Body);
|
|
421
|
+
/* Leading here is the PLATFORM's, not the brand's 1.5 — Apple's Dynamic Type's own
|
|
422
|
+
table at 12 / 14 / 16. The Figma payload computes these same numbers for
|
|
423
|
+
every non-Desktop device (typographyPlatform.ts, "LINE HEIGHT is COMPUTED,
|
|
424
|
+
not read"), while this block declared a flat 21 at every size, so one
|
|
425
|
+
caption read 19 in the file and 21 in the stylesheet and nothing could
|
|
426
|
+
see it. Declared rather than left to compute so the two sides state the
|
|
427
|
+
same value instead of arriving at it separately.
|
|
428
|
+
|
|
429
|
+
EVERY property is restated, tracking included, because the payload's
|
|
430
|
+
device-floor merge replaces a style WHOLE — `{...desktopStyles, ...own}`
|
|
431
|
+
keys on the STYLE, not on the property — so a step this block declares
|
|
432
|
+
partially loses whatever it leaves out instead of inheriting it from
|
|
433
|
+
Desktop. That variable then exists on Desktop and nowhere else, and one
|
|
434
|
+
missing on six of seven devices resolves to nothing there, silently. The
|
|
435
|
+
CSS cascade would have carried it; the payload does not, and the payload
|
|
436
|
+
is the half that fails without a sound.
|
|
437
|
+
|
|
438
|
+
The 0px is this block's existing answer for Caption, extended to the two
|
|
439
|
+
new steps rather than importing Desktop's 0.1px nudge — which would leave
|
|
440
|
+
the ramp reading 0.0996 / 0 / 0.1008, three steps of one style disagreeing
|
|
441
|
+
about whether the brand tracks captions at all. Whether mobile SHOULD zero
|
|
442
|
+
it is a brand decision and still open; this only stops the ramp from
|
|
443
|
+
contradicting itself. */
|
|
444
|
+
--Caption-Small-Font-Size: 12px;
|
|
445
|
+
--Caption-Small-Font-Weight: 500;
|
|
446
|
+
--Caption-Small-Letter-Spacing: 0px;
|
|
447
|
+
--Caption-Small-Line-Height: 16px;
|
|
279
448
|
--Caption-Font-Size: 14px;
|
|
280
449
|
--Caption-Font-Weight: 500;
|
|
281
|
-
--Caption-Line-Height:
|
|
450
|
+
--Caption-Line-Height: 19px;
|
|
282
451
|
--Caption-Letter-Spacing: 0px;
|
|
283
452
|
--Caption-Bold-Font-Weight: 700;
|
|
453
|
+
--Caption-Large-Font-Size: 16px;
|
|
454
|
+
--Caption-Large-Font-Weight: 500;
|
|
455
|
+
--Caption-Large-Letter-Spacing: 0px;
|
|
456
|
+
--Caption-Large-Line-Height: 21px;
|
|
284
457
|
|
|
285
458
|
/* Label */
|
|
286
459
|
--Font-Family-Label: var(--Platform-Font-Families-Body);
|
|
@@ -304,6 +477,14 @@
|
|
|
304
477
|
--Label-Large-Line-Height: 27px;
|
|
305
478
|
--Label-Large-Letter-Spacing: 0px;
|
|
306
479
|
|
|
480
|
+
|
|
481
|
+
/* Mobile Nav Label — Apple's tab-bar label: 10pt, untracked. */
|
|
482
|
+
--Font-Family-Mobile-Nav-Label: var(--Platform-Font-Families-Body);
|
|
483
|
+
--Mobile-Nav-Label-Font-Size: 10px;
|
|
484
|
+
--Mobile-Nav-Label-Font-Weight: 600;
|
|
485
|
+
--Mobile-Nav-Label-Line-Height: 10px;
|
|
486
|
+
--Mobile-Nav-Label-Letter-Spacing: 0px;
|
|
487
|
+
|
|
307
488
|
/* Legal */
|
|
308
489
|
--Font-Family-Body: var(--Platform-Font-Families-Body);
|
|
309
490
|
--Legal-Font-Size: 10px;
|
|
@@ -358,30 +539,53 @@
|
|
|
358
539
|
--Button-Small-Line-Height: 14px;
|
|
359
540
|
--Button-Small-Letter-Spacing: 0px;
|
|
360
541
|
--Font-Family-Button: var(--Platform-Font-Families-Body);
|
|
361
|
-
--Button-
|
|
362
|
-
--Button-
|
|
363
|
-
--Button-
|
|
364
|
-
--Button-
|
|
542
|
+
--Button-Medium-Font-Size: 16px;
|
|
543
|
+
--Button-Medium-Font-Weight: 600;
|
|
544
|
+
--Button-Medium-Line-Height: 16px;
|
|
545
|
+
--Button-Medium-Letter-Spacing: 0px;
|
|
546
|
+
/* was Button-Standard — kept so frozen stylesheets keep resolving. */
|
|
547
|
+
--Button-Standard-Font-Size: var(--Button-Medium-Font-Size);
|
|
548
|
+
--Button-Standard-Font-Weight: var(--Button-Medium-Font-Weight);
|
|
549
|
+
--Button-Standard-Line-Height: var(--Button-Medium-Line-Height);
|
|
550
|
+
--Button-Standard-Letter-Spacing: var(--Button-Medium-Letter-Spacing);
|
|
551
|
+
|
|
552
|
+
/* Alt Display — mirrors Display step for step. The pairing sets one word
|
|
553
|
+
on one baseline ("Omni" + "Design"), so the two must not diverge in
|
|
554
|
+
size or leading; colour is what separates them. */
|
|
555
|
+
--Alt-Display-Small-Font-Size: 34px;
|
|
556
|
+
--Alt-Display-Small-Font-Weight: 900;
|
|
557
|
+
--Alt-Display-Small-Line-Height: 41px;
|
|
558
|
+
--Alt-Display-Small-Letter-Spacing: 0px;
|
|
559
|
+
--Alt-Display-Medium-Font-Size: 40px;
|
|
560
|
+
--Alt-Display-Medium-Font-Weight: 900;
|
|
561
|
+
--Alt-Display-Medium-Line-Height: 48px;
|
|
562
|
+
--Alt-Display-Medium-Letter-Spacing: 0px;
|
|
563
|
+
--Alt-Display-Large-Font-Size: 48px;
|
|
564
|
+
--Alt-Display-Large-Font-Weight: 900;
|
|
565
|
+
--Alt-Display-Large-Line-Height: 58px;
|
|
566
|
+
--Alt-Display-Large-Letter-Spacing: 0px;
|
|
365
567
|
|
|
366
568
|
}
|
|
367
569
|
|
|
368
570
|
[data-platform="IOS-Tablet"] {
|
|
369
571
|
|
|
572
|
+
|
|
573
|
+
|
|
370
574
|
/* Display */
|
|
371
|
-
--Font-Family-Display: var(--Platform-Font-Families-Decorative);
|
|
372
|
-
--Display-Small-Font-Size:
|
|
575
|
+
--Font-Family-Display: var(--Set-Font-Family-Display, var(--Platform-Font-Families-Decorative, var(--Set-Font-Family-Decorative)));
|
|
576
|
+
--Display-Small-Font-Size: 34px;
|
|
373
577
|
--Display-Small-Font-Weight: 600;
|
|
374
|
-
--Display-Small-Line-Height:
|
|
578
|
+
--Display-Small-Line-Height: 41px;
|
|
375
579
|
--Display-Small-Letter-Spacing: 0px;
|
|
376
|
-
--Font-Family-Display: var(--Platform-Font-Families-
|
|
377
|
-
--Display-Medium-Font-Size:
|
|
580
|
+
--Font-Family-Display: var(--Set-Font-Family-Display, var(--Platform-Font-Families-Decorative, var(--Set-Font-Family-Decorative)));
|
|
581
|
+
--Display-Medium-Font-Size: 40px;
|
|
378
582
|
--Display-Medium-Font-Weight: 600;
|
|
379
|
-
--Display-Medium-Line-Height:
|
|
583
|
+
--Display-Medium-Line-Height: 48px;
|
|
380
584
|
--Display-Medium-Letter-Spacing: 0px;
|
|
381
|
-
--Font-Family-Display: var(--Platform-Font-Families-Decorative);
|
|
382
|
-
--Display-Large-Font-Size:
|
|
585
|
+
--Font-Family-Display: var(--Set-Font-Family-Display, var(--Platform-Font-Families-Decorative, var(--Set-Font-Family-Decorative)));
|
|
586
|
+
--Display-Large-Font-Size: 48px;
|
|
383
587
|
--Display-Large-Font-Weight: 600;
|
|
384
|
-
--Display-Large-Line-Height:
|
|
588
|
+
--Display-Large-Line-Height: 58px;
|
|
385
589
|
--Display-Large-Letter-Spacing: 0px;
|
|
386
590
|
|
|
387
591
|
/* Headers */
|
|
@@ -453,11 +657,42 @@
|
|
|
453
657
|
|
|
454
658
|
/* Caption */
|
|
455
659
|
--Font-Family-Body: var(--Platform-Font-Families-Body);
|
|
660
|
+
/* Leading here is the PLATFORM's, not the brand's 1.5 — Apple's Dynamic Type's own
|
|
661
|
+
table at 12 / 14 / 16. The Figma payload computes these same numbers for
|
|
662
|
+
every non-Desktop device (typographyPlatform.ts, "LINE HEIGHT is COMPUTED,
|
|
663
|
+
not read"), while this block declared a flat 21 at every size, so one
|
|
664
|
+
caption read 19 in the file and 21 in the stylesheet and nothing could
|
|
665
|
+
see it. Declared rather than left to compute so the two sides state the
|
|
666
|
+
same value instead of arriving at it separately.
|
|
667
|
+
|
|
668
|
+
EVERY property is restated, tracking included, because the payload's
|
|
669
|
+
device-floor merge replaces a style WHOLE — `{...desktopStyles, ...own}`
|
|
670
|
+
keys on the STYLE, not on the property — so a step this block declares
|
|
671
|
+
partially loses whatever it leaves out instead of inheriting it from
|
|
672
|
+
Desktop. That variable then exists on Desktop and nowhere else, and one
|
|
673
|
+
missing on six of seven devices resolves to nothing there, silently. The
|
|
674
|
+
CSS cascade would have carried it; the payload does not, and the payload
|
|
675
|
+
is the half that fails without a sound.
|
|
676
|
+
|
|
677
|
+
The 0px is this block's existing answer for Caption, extended to the two
|
|
678
|
+
new steps rather than importing Desktop's 0.1px nudge — which would leave
|
|
679
|
+
the ramp reading 0.0996 / 0 / 0.1008, three steps of one style disagreeing
|
|
680
|
+
about whether the brand tracks captions at all. Whether mobile SHOULD zero
|
|
681
|
+
it is a brand decision and still open; this only stops the ramp from
|
|
682
|
+
contradicting itself. */
|
|
683
|
+
--Caption-Small-Font-Size: 12px;
|
|
684
|
+
--Caption-Small-Font-Weight: 500;
|
|
685
|
+
--Caption-Small-Letter-Spacing: 0px;
|
|
686
|
+
--Caption-Small-Line-Height: 16px;
|
|
456
687
|
--Caption-Font-Size: 14px;
|
|
457
688
|
--Caption-Font-Weight: 500;
|
|
458
|
-
--Caption-Line-Height:
|
|
689
|
+
--Caption-Line-Height: 19px;
|
|
459
690
|
--Caption-Letter-Spacing: 0px;
|
|
460
691
|
--Caption-Bold-Font-Weight: 700;
|
|
692
|
+
--Caption-Large-Font-Size: 16px;
|
|
693
|
+
--Caption-Large-Font-Weight: 500;
|
|
694
|
+
--Caption-Large-Letter-Spacing: 0px;
|
|
695
|
+
--Caption-Large-Line-Height: 21px;
|
|
461
696
|
|
|
462
697
|
/* Label */
|
|
463
698
|
--Font-Family-Label: var(--Platform-Font-Families-Body);
|
|
@@ -481,6 +716,14 @@
|
|
|
481
716
|
--Label-Large-Line-Height: 27px;
|
|
482
717
|
--Label-Large-Letter-Spacing: 0px;
|
|
483
718
|
|
|
719
|
+
|
|
720
|
+
/* Mobile Nav Label — same as iPhone; the tab bar does not resize. */
|
|
721
|
+
--Font-Family-Mobile-Nav-Label: var(--Platform-Font-Families-Body);
|
|
722
|
+
--Mobile-Nav-Label-Font-Size: 10px;
|
|
723
|
+
--Mobile-Nav-Label-Font-Weight: 600;
|
|
724
|
+
--Mobile-Nav-Label-Line-Height: 10px;
|
|
725
|
+
--Mobile-Nav-Label-Letter-Spacing: 0px;
|
|
726
|
+
|
|
484
727
|
/* Legal */
|
|
485
728
|
--Font-Family-Body: var(--Platform-Font-Families-Body);
|
|
486
729
|
--Legal-Font-Size: 10px;
|
|
@@ -535,30 +778,53 @@
|
|
|
535
778
|
--Button-Small-Line-Height: 16px;
|
|
536
779
|
--Button-Small-Letter-Spacing: 0px;
|
|
537
780
|
--Font-Family-Button: var(--Platform-Font-Families-Body);
|
|
538
|
-
--Button-
|
|
539
|
-
--Button-
|
|
540
|
-
--Button-
|
|
541
|
-
--Button-
|
|
781
|
+
--Button-Medium-Font-Size: 16px;
|
|
782
|
+
--Button-Medium-Font-Weight: 600;
|
|
783
|
+
--Button-Medium-Line-Height: 16px;
|
|
784
|
+
--Button-Medium-Letter-Spacing: 0px;
|
|
785
|
+
/* was Button-Standard — kept so frozen stylesheets keep resolving. */
|
|
786
|
+
--Button-Standard-Font-Size: var(--Button-Medium-Font-Size);
|
|
787
|
+
--Button-Standard-Font-Weight: var(--Button-Medium-Font-Weight);
|
|
788
|
+
--Button-Standard-Line-Height: var(--Button-Medium-Line-Height);
|
|
789
|
+
--Button-Standard-Letter-Spacing: var(--Button-Medium-Letter-Spacing);
|
|
790
|
+
|
|
791
|
+
/* Alt Display — mirrors Display step for step. The pairing sets one word
|
|
792
|
+
on one baseline ("Omni" + "Design"), so the two must not diverge in
|
|
793
|
+
size or leading; colour is what separates them. */
|
|
794
|
+
--Alt-Display-Small-Font-Size: 34px;
|
|
795
|
+
--Alt-Display-Small-Font-Weight: 900;
|
|
796
|
+
--Alt-Display-Small-Line-Height: 41px;
|
|
797
|
+
--Alt-Display-Small-Letter-Spacing: 0px;
|
|
798
|
+
--Alt-Display-Medium-Font-Size: 40px;
|
|
799
|
+
--Alt-Display-Medium-Font-Weight: 900;
|
|
800
|
+
--Alt-Display-Medium-Line-Height: 48px;
|
|
801
|
+
--Alt-Display-Medium-Letter-Spacing: 0px;
|
|
802
|
+
--Alt-Display-Large-Font-Size: 48px;
|
|
803
|
+
--Alt-Display-Large-Font-Weight: 900;
|
|
804
|
+
--Alt-Display-Large-Line-Height: 58px;
|
|
805
|
+
--Alt-Display-Large-Letter-Spacing: 0px;
|
|
542
806
|
|
|
543
807
|
}
|
|
544
808
|
|
|
545
809
|
[data-platform="Android"] {
|
|
546
810
|
|
|
811
|
+
|
|
812
|
+
|
|
547
813
|
/* Display */
|
|
548
|
-
--Font-Family-Display: var(--Platform-Font-Families-Decorative);
|
|
549
|
-
--Display-Small-Font-Size:
|
|
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;
|
|
550
816
|
--Display-Small-Font-Weight: 600;
|
|
551
|
-
--Display-Small-Line-Height:
|
|
817
|
+
--Display-Small-Line-Height: 44px;
|
|
552
818
|
--Display-Small-Letter-Spacing: 0px;
|
|
553
|
-
--Font-Family-Display: var(--Platform-Font-Families-
|
|
554
|
-
--Display-Medium-Font-Size:
|
|
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;
|
|
555
821
|
--Display-Medium-Font-Weight: 600;
|
|
556
|
-
--Display-Medium-Line-Height:
|
|
822
|
+
--Display-Medium-Line-Height: 52px;
|
|
557
823
|
--Display-Medium-Letter-Spacing: 0px;
|
|
558
|
-
--Font-Family-Display: var(--Platform-Font-Families-Decorative);
|
|
559
|
-
--Display-Large-Font-Size:
|
|
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;
|
|
560
826
|
--Display-Large-Font-Weight: 600;
|
|
561
|
-
--Display-Large-Line-Height:
|
|
827
|
+
--Display-Large-Line-Height: 64px;
|
|
562
828
|
--Display-Large-Letter-Spacing: 0px;
|
|
563
829
|
|
|
564
830
|
/* Headers */
|
|
@@ -630,11 +896,42 @@
|
|
|
630
896
|
|
|
631
897
|
/* Caption */
|
|
632
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;
|
|
633
926
|
--Caption-Font-Size: 14px;
|
|
634
927
|
--Caption-Font-Weight: 500;
|
|
635
|
-
--Caption-Line-Height:
|
|
928
|
+
--Caption-Line-Height: 20px;
|
|
636
929
|
--Caption-Letter-Spacing: 0px;
|
|
637
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;
|
|
638
935
|
|
|
639
936
|
/* Label */
|
|
640
937
|
--Font-Family-Label: var(--Platform-Font-Families-Body);
|
|
@@ -658,6 +955,14 @@
|
|
|
658
955
|
--Label-Large-Line-Height: 27px;
|
|
659
956
|
--Label-Large-Letter-Spacing: 0px;
|
|
660
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
|
+
|
|
661
966
|
/* Legal */
|
|
662
967
|
--Font-Family-Body: var(--Platform-Font-Families-Body);
|
|
663
968
|
--Legal-Font-Size: 10px;
|
|
@@ -712,9 +1017,232 @@
|
|
|
712
1017
|
--Button-Small-Line-Height: 16px;
|
|
713
1018
|
--Button-Small-Letter-Spacing: 0px;
|
|
714
1019
|
--Font-Family-Button: var(--Platform-Font-Families-Body);
|
|
715
|
-
--Button-
|
|
716
|
-
--Button-
|
|
717
|
-
--Button-
|
|
718
|
-
--Button-
|
|
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
|
+
/* ── Platform button metrics ──────────────────────────────────────────────
|
|
1049
|
+
*
|
|
1050
|
+
* Apple's and Google's button sizes, overriding the brand's own on the touch
|
|
1051
|
+
* platforms. Desktop is absent on purpose: there the brand's heights ARE the
|
|
1052
|
+
* answer, and base.css already states them.
|
|
1053
|
+
*
|
|
1054
|
+
* :root[data-platform="…"], not the bare [data-platform="…"] the type ramps
|
|
1055
|
+
* above use, and the difference is load-bearing. --Button-Height is declared
|
|
1056
|
+
* at :root in base.css, which the provider injects at slot 5 — AFTER this file
|
|
1057
|
+
* at slot 3. A bare attribute selector ties with :root at (0,1,0), so the later
|
|
1058
|
+
* file would win and these overrides would do nothing, with no error anywhere.
|
|
1059
|
+
* :root[data-platform] scores (0,2,0) and wins on specificity instead, which
|
|
1060
|
+
* does not depend on anyone preserving the load order.
|
|
1061
|
+
*
|
|
1062
|
+
* The type ramps above can stay as they are: their :root counterpart is in
|
|
1063
|
+
* core.css at slot 2, so they already load later and win.
|
|
1064
|
+
*
|
|
1065
|
+
* --Small-/--Large-Button-Height are NOT restated. base.css declares them as
|
|
1066
|
+
* var(--Sm-Button-Height) / var(--Lg-Button-Height), and a var() in a custom
|
|
1067
|
+
* property resolves against the element it lands on — so the back-compat
|
|
1068
|
+
* spellings follow these overrides on their own.
|
|
1069
|
+
*/
|
|
1070
|
+
|
|
1071
|
+
:root[data-platform="IOS-Mobile"] {
|
|
1072
|
+
--Button-Height: 44px;
|
|
1073
|
+
--Sm-Button-Height: 32px;
|
|
1074
|
+
--Lg-Button-Height: 50px;
|
|
1075
|
+
--Button-Icon: 20px;
|
|
1076
|
+
--Sm-Button-Icon: 16px;
|
|
1077
|
+
--Lg-Button-Icon: 24px;
|
|
1078
|
+
}
|
|
1079
|
+
|
|
1080
|
+
:root[data-platform="IOS-Tablet"] {
|
|
1081
|
+
--Button-Height: 44px;
|
|
1082
|
+
--Sm-Button-Height: 32px;
|
|
1083
|
+
--Lg-Button-Height: 50px;
|
|
1084
|
+
--Button-Icon: 20px;
|
|
1085
|
+
--Sm-Button-Icon: 16px;
|
|
1086
|
+
--Lg-Button-Icon: 24px;
|
|
1087
|
+
}
|
|
1088
|
+
|
|
1089
|
+
:root[data-platform="Android"] {
|
|
1090
|
+
--Button-Height: 48px;
|
|
1091
|
+
--Sm-Button-Height: 32px;
|
|
1092
|
+
--Lg-Button-Height: 56px;
|
|
1093
|
+
--Button-Icon: 18px;
|
|
1094
|
+
--Sm-Button-Icon: 18px;
|
|
1095
|
+
--Lg-Button-Icon: 24px;
|
|
1096
|
+
}
|
|
1097
|
+
|
|
1098
|
+
|
|
1099
|
+
/* ---------------------------------------------------------------------------
|
|
1100
|
+
Face re-mapping
|
|
1101
|
+
Display renders in the Display face (it used to follow Header, which left the
|
|
1102
|
+
expressive face with nowhere to appear at size). Overline is the eyebrow spec
|
|
1103
|
+
now, on the Eyebrow face. The lib hard-codes both families, so they are
|
|
1104
|
+
corrected here rather than through a token.
|
|
1105
|
+
|
|
1106
|
+
Both read the face token, which is what keeps decorative mode working:
|
|
1107
|
+
core.css re-points --Font-Family-Eyebrow at the Display face inside
|
|
1108
|
+
[data-decorative], on a higher-specificity selector.
|
|
1109
|
+
--------------------------------------------------------------------------- */
|
|
1110
|
+
.typography.typography-display-large,
|
|
1111
|
+
.typography.typography-display-medium,
|
|
1112
|
+
.typography.typography-display-small {
|
|
1113
|
+
font-family: var(--Font-Family-Display);
|
|
1114
|
+
}
|
|
1115
|
+
|
|
1116
|
+
.typography.typography-overline,
|
|
1117
|
+
.typography.typography-overline-small,
|
|
1118
|
+
.typography.typography-overline-medium,
|
|
1119
|
+
.typography.typography-overline-large {
|
|
1120
|
+
font-family: var(--Font-Family-Eyebrow);
|
|
1121
|
+
}
|
|
1122
|
+
|
|
1123
|
+
/* ---------------------------------------------------------------------------
|
|
1124
|
+
Prose lists — opt in with .typography-list on the <ul> or <ol>.
|
|
1125
|
+
|
|
1126
|
+
The marker takes --Eyebrow: the accent that is already ROTATED off the
|
|
1127
|
+
surface's palette (Primary->Secondary, Secondary->Tertiary, and so on), so a
|
|
1128
|
+
list picks up the same accent as the eyebrow above it instead of the page
|
|
1129
|
+
inventing one. The list TEXT is untouched and stays on --Text; only the
|
|
1130
|
+
bullet or number is accented.
|
|
1131
|
+
|
|
1132
|
+
Opt-in, not a bare li::marker rule, for the same reason nothing else here
|
|
1133
|
+
styles bare elements: importing the CSS must not repaint lists in a
|
|
1134
|
+
consumer's app that never asked for it.
|
|
1135
|
+
|
|
1136
|
+
::marker only honours a short list of properties. color is one of them;
|
|
1137
|
+
background, padding and size are not, so a bullet that needs a custom size
|
|
1138
|
+
still needs the ::before technique.
|
|
1139
|
+
--------------------------------------------------------------------------- */
|
|
1140
|
+
.typography-list > li::marker {
|
|
1141
|
+
color: var(--Eyebrow);
|
|
1142
|
+
}
|
|
1143
|
+
|
|
1144
|
+
/* ---------------------------------------------------------------------------
|
|
1145
|
+
Alt Display colour — three variants, one pair of stops
|
|
1146
|
+
|
|
1147
|
+
Set data-alt-display on the element or any ancestor:
|
|
1148
|
+
default (or unset) the Alt reads as a heading
|
|
1149
|
+
colored a flat Alt colour
|
|
1150
|
+
gradient the two stops the theme publishes
|
|
1151
|
+
|
|
1152
|
+
The stops are re-published per theme and surface, so every variant follows
|
|
1153
|
+
data-surface without being restated.
|
|
1154
|
+
--------------------------------------------------------------------------- */
|
|
1155
|
+
:root,
|
|
1156
|
+
[data-alt-display="default"] {
|
|
1157
|
+
--Alt-Display-Color-Stop-1: var(--Header);
|
|
1158
|
+
--Alt-Display-Color-Stop-2: var(--Header);
|
|
1159
|
+
}
|
|
1160
|
+
|
|
1161
|
+
[data-alt-display="colored"] {
|
|
1162
|
+
--Alt-Display-Color-Stop-1: var(--Alt-Display-Color, var(--Header));
|
|
1163
|
+
--Alt-Display-Color-Stop-2: var(--Alt-Display-Color, var(--Header));
|
|
1164
|
+
}
|
|
1165
|
+
|
|
1166
|
+
[data-alt-display="gradient"] {
|
|
1167
|
+
--Alt-Display-Color-Stop-1: var(--Alt-Color-Gradient-Stop-1, var(--Alt-Display-Color, var(--Header)));
|
|
1168
|
+
--Alt-Display-Color-Stop-2: var(--Alt-Color-Gradient-Stop-2, var(--Alt-Display-Color, var(--Header)));
|
|
1169
|
+
}
|
|
1170
|
+
|
|
1171
|
+
.typography-alt-display-large,
|
|
1172
|
+
.typography-alt-display-medium,
|
|
1173
|
+
.typography-alt-display-small {
|
|
1174
|
+
/* Stop 1 alone: in the flat variants the two agree, and a plain colour keeps
|
|
1175
|
+
the selection highlight, print, and forced-colors working. */
|
|
1176
|
+
color: var(--Alt-Display-Color-Stop-1);
|
|
1177
|
+
}
|
|
1178
|
+
|
|
1179
|
+
.typography-alt-display-large[data-alt-display="gradient"],
|
|
1180
|
+
[data-alt-display="gradient"] .typography-alt-display-large,
|
|
1181
|
+
.typography-alt-display-medium[data-alt-display="gradient"],
|
|
1182
|
+
[data-alt-display="gradient"] .typography-alt-display-medium,
|
|
1183
|
+
.typography-alt-display-small[data-alt-display="gradient"],
|
|
1184
|
+
[data-alt-display="gradient"] .typography-alt-display-small {
|
|
1185
|
+
background-image: linear-gradient(
|
|
1186
|
+
90deg,
|
|
1187
|
+
var(--Alt-Display-Color-Stop-1),
|
|
1188
|
+
var(--Alt-Display-Color-Stop-2)
|
|
1189
|
+
);
|
|
1190
|
+
-webkit-background-clip: text;
|
|
1191
|
+
background-clip: text;
|
|
1192
|
+
color: transparent;
|
|
1193
|
+
/* The box carries the paint, not the glyphs, so keep it to the text's own
|
|
1194
|
+
box or a wrapped headline stretches the ramp across empty trailing space. */
|
|
1195
|
+
-webkit-box-decoration-break: clone;
|
|
1196
|
+
box-decoration-break: clone;
|
|
1197
|
+
}
|
|
1198
|
+
|
|
1199
|
+
@media (forced-colors: active) {
|
|
1200
|
+
.typography-alt-display-large[data-alt-display="gradient"],
|
|
1201
|
+
[data-alt-display="gradient"] .typography-alt-display-large,
|
|
1202
|
+
.typography-alt-display-medium[data-alt-display="gradient"],
|
|
1203
|
+
[data-alt-display="gradient"] .typography-alt-display-medium,
|
|
1204
|
+
.typography-alt-display-small[data-alt-display="gradient"],
|
|
1205
|
+
[data-alt-display="gradient"] .typography-alt-display-small {
|
|
1206
|
+
/* The UA drops background-image here, and transparent text would leave
|
|
1207
|
+
nothing on screen. Hand the glyphs back to the system colour. */
|
|
1208
|
+
background-image: none;
|
|
1209
|
+
-webkit-background-clip: border-box;
|
|
1210
|
+
background-clip: border-box;
|
|
1211
|
+
color: CanvasText;
|
|
1212
|
+
forced-color-adjust: auto;
|
|
1213
|
+
}
|
|
1214
|
+
}
|
|
1215
|
+
|
|
1216
|
+
/* ---------------------------------------------------------------------------
|
|
1217
|
+
Paragraph spacing — space only where one paragraph follows another, which is
|
|
1218
|
+
what the Figma token means.
|
|
1219
|
+
--------------------------------------------------------------------------- */
|
|
1220
|
+
.typography-caption-small + .typography-caption-small {
|
|
1221
|
+
margin-block-start: var(--Caption-Small-Paragraph-Spacing);
|
|
1222
|
+
}
|
|
1223
|
+
|
|
1224
|
+
.typography-caption + .typography-caption {
|
|
1225
|
+
margin-block-start: var(--Caption-Paragraph-Spacing);
|
|
1226
|
+
}
|
|
1227
|
+
|
|
1228
|
+
.typography-caption-large + .typography-caption-large {
|
|
1229
|
+
margin-block-start: var(--Caption-Large-Paragraph-Spacing);
|
|
1230
|
+
}
|
|
1231
|
+
|
|
1232
|
+
.typography-legal + .typography-legal {
|
|
1233
|
+
margin-block-start: var(--Legal-Paragraph-Spacing);
|
|
1234
|
+
}
|
|
719
1235
|
|
|
1236
|
+
/* ---------------------------------------------------------------------------
|
|
1237
|
+
Variable-font axes
|
|
1238
|
+
wght is deliberately absent — font-weight already carries it, and declaring
|
|
1239
|
+
it in both places lets the two disagree.
|
|
1240
|
+
--------------------------------------------------------------------------- */
|
|
1241
|
+
.typography-h1,
|
|
1242
|
+
.typography-h2,
|
|
1243
|
+
.typography-h3,
|
|
1244
|
+
.typography-h4,
|
|
1245
|
+
.typography-h5,
|
|
1246
|
+
.typography-h6 {
|
|
1247
|
+
font-variation-settings: var(--Font-Variation-Header);
|
|
720
1248
|
}
|