@deriv-web-design/ui 0.0.12 → 0.0.14

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/tokens.css CHANGED
@@ -5,157 +5,167 @@
5
5
  ============================================================ */
6
6
 
7
7
  :root {
8
- /* Color — Slate */
9
- --color-slate-50: #ffffff;
10
- --color-slate-75: #f6f7f8;
11
- --color-slate-100: #eceeef;
12
- --color-slate-200: #e0e3e5;
13
- --color-slate-300: #cfd4d8;
14
- --color-slate-400: #bfc6cc;
15
- --color-slate-500: #7b8a96;
16
- --color-slate-600: #5c6770;
17
- --color-slate-700: #414c52;
18
- --color-slate-800: #353c44;
19
- --color-slate-900: #30354f;
20
- --color-slate-1000: #232c3a;
21
- --color-slate-1100: #20242f;
22
- --color-slate-1200: #181c25;
23
- --color-slate-1300: #14141c;
24
- --color-slate-1400: #000000;
25
-
26
- /* Color — Coral */
27
- --color-coral-500: #ff444f;
28
- --color-coral-600: #e73c36;
29
- --color-coral-700: #dc1f28;
30
-
31
- /* Color — Emerald */
32
- --color-emerald-500: #4cd6c0;
33
- --color-emerald-600: #00b39a;
34
- --color-emerald-700: #00a286;
35
-
36
- /* Color — Yellow */
37
- --color-yellow-500: #ffb84d;
38
- --color-yellow-600: #e4a700;
39
-
40
- /* Color — Blue */
41
- --color-blue-500: #4da6ff;
42
- --color-blue-600: #2f77ff;
43
-
44
- /* Color — Cherry */
45
- --color-cherry-700: #dc0000;
46
- --color-cherry-800: #f50032;
47
- --color-cherry-900: #dc002c;
48
-
49
- /* Color — Green (field success) */
50
- --color-green-600: #007a22;
51
-
52
- /* Color — Red (field error) */
53
- --color-red-600: #c40000;
54
-
55
- /* Color — Opacity / Green */
56
- --color-opacity-green-8: rgba(0, 136, 50, 0.08);
57
- --color-opacity-green-16: rgba(0, 136, 50, 0.16);
58
- --color-opacity-green-72: rgba(0, 136, 50, 0.72);
59
- --color-opacity-green-88: rgba(0, 136, 50, 0.88);
60
-
61
- /* Color — Opacity / Red */
62
- --color-opacity-red-8: rgba(230, 25, 14, 0.08);
63
- --color-opacity-red-16: rgba(230, 25, 14, 0.16);
64
- --color-opacity-red-72: rgba(230, 25, 14, 0.72);
65
- --color-opacity-red-88: rgba(230, 25, 14, 0.88);
66
-
67
- /* Color — Opacity / Slate */
68
- --color-opacity-slate-4: rgba(24, 28, 37, 0.04);
69
- --color-opacity-slate-8: rgba(24, 28, 37, 0.08);
70
- --color-opacity-slate-16: rgba(24, 28, 37, 0.16);
71
- --color-opacity-slate-24: rgba(24, 28, 37, 0.24);
72
- --color-opacity-slate-48: rgba(24, 28, 37, 0.48);
73
- --color-opacity-slate-72: rgba(24, 28, 37, 0.72);
74
- --color-opacity-slate-88: rgba(24, 28, 37, 0.88);
75
-
76
- /* Color — Opacity / White */
77
- --color-opacity-white-4: rgba(255, 255, 255, 0.04);
78
- --color-opacity-white-8: rgba(255, 255, 255, 0.08);
79
- --color-opacity-white-16: rgba(255, 255, 255, 0.16);
80
- --color-opacity-white-24: rgba(255, 255, 255, 0.24);
81
- --color-opacity-white-48: rgba(255, 255, 255, 0.48);
82
- --color-opacity-white-72: rgba(255, 255, 255, 0.72);
83
- --color-opacity-white-88: rgba(255, 255, 255, 0.88);
84
-
85
- /* Spacing */
86
- --spacing-0: 0rem;
87
- --spacing-2: 0.125rem;
88
- --spacing-4: 0.25rem;
89
- --spacing-8: 0.5rem;
90
- --spacing-12: 0.75rem;
91
- --spacing-16: 1rem;
92
- --spacing-24: 1.5rem;
93
- --spacing-32: 2rem;
94
- --spacing-40: 2.5rem;
95
- --spacing-48: 3rem;
96
- --spacing-56: 3.5rem;
97
- --spacing-64: 4rem;
98
- --spacing-72: 4.5rem;
99
- --spacing-80: 5rem;
100
- --spacing-88: 5.5rem;
101
- --spacing-96: 6rem;
102
- --spacing-112: 7rem;
103
-
104
- /* Font Family */
105
- --font-family-base: Inter, sans-serif;
106
-
107
- /* Font Size — mobile (default)
8
+ /* Color — Slate */
9
+ --color-slate-50: #ffffff;
10
+ --color-slate-75: #f6f7f8;
11
+ --color-slate-100: #eceeef;
12
+ --color-slate-200: #e0e3e5;
13
+ --color-slate-300: #cfd4d8;
14
+ --color-slate-400: #bfc6cc;
15
+ --color-slate-500: #7b8a96;
16
+ --color-slate-600: #5c6770;
17
+ --color-slate-700: #414c52;
18
+ --color-slate-800: #353c44;
19
+ --color-slate-900: #30354f;
20
+ --color-slate-1000: #232c3a;
21
+ --color-slate-1100: #20242f;
22
+ --color-slate-1200: #181c25;
23
+ --color-slate-1300: #14141c;
24
+ --color-slate-1400: #000000;
25
+
26
+ /* Color — Coral */
27
+ --color-coral-500: #ff444f;
28
+ --color-coral-600: #e73c36;
29
+ --color-coral-700: #dc1f28;
30
+
31
+ /* Color — Emerald */
32
+ --color-emerald-500: #4cd6c0;
33
+ --color-emerald-600: #00b39a;
34
+ --color-emerald-700: #00a286;
35
+
36
+ /* Color — Yellow */
37
+ --color-yellow-500: #ffb84d;
38
+ --color-yellow-600: #e4a700;
39
+
40
+ /* Color — Blue */
41
+ --color-blue-500: #4da6ff;
42
+ --color-blue-600: #2f77ff;
43
+
44
+ /* Color — Cherry */
45
+ --color-cherry-700: #dc0000;
46
+ --color-cherry-800: #f50032;
47
+ --color-cherry-900: #dc002c;
48
+
49
+ /* Color — Green (field success) */
50
+ --color-green-600: #007a22;
51
+
52
+ /* Color — Red (field error) */
53
+ --color-red-600: #c40000;
54
+
55
+ /* Color — Opacity / Green */
56
+ --color-opacity-green-8: rgba(0, 136, 50, 0.08);
57
+ --color-opacity-green-16: rgba(0, 136, 50, 0.16);
58
+ --color-opacity-green-72: rgba(0, 136, 50, 0.72);
59
+ --color-opacity-green-88: rgba(0, 136, 50, 0.88);
60
+
61
+ /* Color — Opacity / Red */
62
+ --color-opacity-red-8: rgba(230, 25, 14, 0.08);
63
+ --color-opacity-red-16: rgba(230, 25, 14, 0.16);
64
+ --color-opacity-red-72: rgba(230, 25, 14, 0.72);
65
+ --color-opacity-red-88: rgba(230, 25, 14, 0.88);
66
+
67
+ /* Color — Opacity / Slate */
68
+ --color-opacity-slate-4: rgba(24, 28, 37, 0.04);
69
+ --color-opacity-slate-8: rgba(24, 28, 37, 0.08);
70
+ --color-opacity-slate-16: rgba(24, 28, 37, 0.16);
71
+ --color-opacity-slate-24: rgba(24, 28, 37, 0.24);
72
+ --color-opacity-slate-48: rgba(24, 28, 37, 0.48);
73
+ --color-opacity-slate-72: rgba(24, 28, 37, 0.72);
74
+ --color-opacity-slate-88: rgba(24, 28, 37, 0.88);
75
+
76
+ /* Color — Opacity / White */
77
+ --color-opacity-white-4: rgba(255, 255, 255, 0.04);
78
+ --color-opacity-white-8: rgba(255, 255, 255, 0.08);
79
+ --color-opacity-white-16: rgba(255, 255, 255, 0.16);
80
+ --color-opacity-white-24: rgba(255, 255, 255, 0.24);
81
+ --color-opacity-white-48: rgba(255, 255, 255, 0.48);
82
+ --color-opacity-white-72: rgba(255, 255, 255, 0.72);
83
+ --color-opacity-white-88: rgba(255, 255, 255, 0.88);
84
+
85
+ /* Spacing */
86
+ --spacing-0: 0rem;
87
+ --spacing-2: 0.125rem;
88
+ --spacing-4: 0.25rem;
89
+ --spacing-8: 0.5rem;
90
+ --spacing-12: 0.75rem;
91
+ --spacing-16: 1rem;
92
+ --spacing-24: 1.5rem;
93
+ --spacing-32: 2rem;
94
+ --spacing-40: 2.5rem;
95
+ --spacing-48: 3rem;
96
+ --spacing-56: 3.5rem;
97
+ --spacing-64: 4rem;
98
+ --spacing-72: 4.5rem;
99
+ --spacing-80: 5rem;
100
+ --spacing-88: 5.5rem;
101
+ --spacing-96: 6rem;
102
+ --spacing-112: 7rem;
103
+
104
+ /* Font Family */
105
+ --font-family-base: Inter, sans-serif;
106
+
107
+ /* Font Size — mobile (default)
108
108
  xs–lg are identical across viewports; xl–5xl scale up at tablet/desktop */
109
- --font-size-xs: 0.75rem;
110
- --font-size-sm: 0.875rem;
111
- --font-size-md: 1rem;
112
- --font-size-lg: 1.125rem;
113
- --font-size-xl: 1.25rem; /* mobile.xl */
114
- --font-size-2xl: 1.5rem; /* mobile.2xl */
115
- --font-size-3xl: 2rem; /* mobile.3xl */
116
- --font-size-4xl: 2.5rem; /* mobile.4xl */
117
- --font-size-5xl: 3rem; /* mobile.5xl */
118
-
119
- /* Font Weight */
120
- --font-weight-regular: 400;
121
- --font-weight-medium: 500;
122
- --font-weight-semi-bold: 600;
123
- --font-weight-extra-bold: 800;
124
-
125
- /* Line Height — ratio utilities (used for body/label text) */
126
- --line-height-tight: 1.2;
127
- --line-height-snug: 1.3;
128
- --line-height-normal: 1.5;
129
- --line-height-relaxed: 1.75;
130
-
131
- /* Line Height — absolute, mobile (default)
109
+ --font-size-xs: 0.75rem;
110
+ --font-size-sm: 0.875rem;
111
+ --font-size-md: 1rem;
112
+ --font-size-lg: 1.125rem;
113
+ --font-size-xl: 1.25rem;
114
+ /* mobile.xl */
115
+ --font-size-2xl: 1.5rem;
116
+ /* mobile.2xl */
117
+ --font-size-3xl: 2rem;
118
+ /* mobile.3xl */
119
+ --font-size-4xl: 2.5rem;
120
+ /* mobile.4xl */
121
+ --font-size-5xl: 3rem;
122
+ /* mobile.5xl */
123
+
124
+ /* Font Weight */
125
+ --font-weight-regular: 400;
126
+ --font-weight-medium: 500;
127
+ --font-weight-semi-bold: 600;
128
+ --font-weight-extra-bold: 800;
129
+
130
+ /* Line Height — ratio utilities (used for body/label text) */
131
+ --line-height-tight: 1.2;
132
+ --line-height-snug: 1.3;
133
+ --line-height-normal: 1.5;
134
+ --line-height-relaxed: 1.75;
135
+
136
+ /* Line Height — absolute, mobile (default)
132
137
  xs–lg are identical across viewports; xl–5xl scale up at tablet/desktop */
133
- --line-height-xs: 1.25rem;
134
- --line-height-sm: 1.5rem;
135
- --line-height-md: 1.5rem;
136
- --line-height-lg: 1.75rem;
137
- --line-height-xl: 1.75rem; /* mobile.xl */
138
- --line-height-2xl: 2rem; /* mobile.2xl */
139
- --line-height-3xl: 2.5rem; /* mobile.3xl */
140
- --line-height-4xl: 3rem; /* mobile.4xl */
141
- --line-height-5xl: 3.5rem; /* mobile.5xl */
142
-
143
- /* Border Radius */
144
- --radius-none: 0;
145
- --radius-xs: 0.125rem;
146
- --radius-sm: 0.25rem;
147
- --radius-md: 0.5rem;
148
- --radius-lg: 0.75rem;
149
- --radius-xl: 1rem;
150
- --radius-2xl: 1.5rem;
151
- --radius-full: 9999px;
152
-
153
- /* Shadow */
154
- --shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.04);
155
- --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.08);
156
- --shadow-md: 0 4px 8px rgba(0, 0, 0, 0.12);
157
- --shadow-lg: 0 8px 16px rgba(0, 0, 0, 0.16);
158
- --shadow-xl: 0 12px 24px rgba(0, 0, 0, 0.2);
138
+ --line-height-xs: 1.25rem;
139
+ --line-height-sm: 1.5rem;
140
+ --line-height-md: 1.5rem;
141
+ --line-height-lg: 1.75rem;
142
+ --line-height-xl: 1.75rem;
143
+ /* mobile.xl */
144
+ --line-height-2xl: 2rem;
145
+ /* mobile.2xl */
146
+ --line-height-3xl: 2.5rem;
147
+ /* mobile.3xl */
148
+ --line-height-4xl: 3rem;
149
+ /* mobile.4xl */
150
+ --line-height-5xl: 3.5rem;
151
+ /* mobile.5xl */
152
+
153
+ /* Border Radius */
154
+ --radius-none: 0;
155
+ --radius-xs: 0.125rem;
156
+ --radius-sm: 0.25rem;
157
+ --radius-md: 0.5rem;
158
+ --radius-lg: 0.75rem;
159
+ --radius-xl: 1rem;
160
+ --radius-2xl: 1.5rem;
161
+ --radius-full: 9999px;
162
+
163
+ /* Shadow */
164
+ --shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.04);
165
+ --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.08);
166
+ --shadow-md: 0 4px 8px rgba(0, 0, 0, 0.12);
167
+ --shadow-lg: 0 8px 16px rgba(0, 0, 0, 0.16);
168
+ --shadow-xl: 0 12px 24px rgba(0, 0, 0, 0.2);
159
169
  }
160
170
 
161
171
 
@@ -165,35 +175,55 @@
165
175
  ============================================================ */
166
176
 
167
177
  @media (min-width: 768px) {
168
- :root {
169
- --font-size-xl: 1.5rem; /* tablet.xl */
170
- --font-size-2xl: 2rem; /* tablet.2xl */
171
- --font-size-3xl: 2.5rem; /* tablet.3xl */
172
- --font-size-4xl: 3rem; /* tablet.4xl */
173
- --font-size-5xl: 4rem; /* tablet.5xl */
174
-
175
- --line-height-xl: 2rem; /* tablet.xl */
176
- --line-height-2xl: 2.5rem; /* tablet.2xl */
177
- --line-height-3xl: 3rem; /* tablet.3xl */
178
- --line-height-4xl: 3.5rem; /* tablet.4xl */
179
- --line-height-5xl: 4rem; /* tablet.5xl */
180
- }
178
+ :root {
179
+ --font-size-xl: 1.5rem;
180
+ /* tablet.xl */
181
+ --font-size-2xl: 2rem;
182
+ /* tablet.2xl */
183
+ --font-size-3xl: 2.5rem;
184
+ /* tablet.3xl */
185
+ --font-size-4xl: 3rem;
186
+ /* tablet.4xl */
187
+ --font-size-5xl: 4rem;
188
+ /* tablet.5xl */
189
+
190
+ --line-height-xl: 2rem;
191
+ /* tablet.xl */
192
+ --line-height-2xl: 2.5rem;
193
+ /* tablet.2xl */
194
+ --line-height-3xl: 3rem;
195
+ /* tablet.3xl */
196
+ --line-height-4xl: 3.5rem;
197
+ /* tablet.4xl */
198
+ --line-height-5xl: 4rem;
199
+ /* tablet.5xl */
200
+ }
181
201
  }
182
202
 
183
203
  @media (min-width: 992px) {
184
- :root {
185
- --font-size-xl: 1.75rem; /* desktop.xl */
186
- --font-size-2xl: 2.5rem; /* desktop.2xl */
187
- --font-size-3xl: 3rem; /* desktop.3xl */
188
- --font-size-4xl: 3.5rem; /* desktop.4xl */
189
- --font-size-5xl: 5rem; /* desktop.5xl */
190
-
191
- --line-height-xl: 2.25rem; /* desktop.xl */
192
- --line-height-2xl: 3rem; /* desktop.2xl */
193
- --line-height-3xl: 3.5rem; /* desktop.3xl */
194
- --line-height-4xl: 4rem; /* desktop.4xl */
195
- --line-height-5xl: 5.5rem; /* desktop.5xl */
196
- }
204
+ :root {
205
+ --font-size-xl: 1.75rem;
206
+ /* desktop.xl */
207
+ --font-size-2xl: 2.5rem;
208
+ /* desktop.2xl */
209
+ --font-size-3xl: 3rem;
210
+ /* desktop.3xl */
211
+ --font-size-4xl: 3.5rem;
212
+ /* desktop.4xl */
213
+ --font-size-5xl: 5rem;
214
+ /* desktop.5xl */
215
+
216
+ --line-height-xl: 2.25rem;
217
+ /* desktop.xl */
218
+ --line-height-2xl: 3rem;
219
+ /* desktop.2xl */
220
+ --line-height-3xl: 3.5rem;
221
+ /* desktop.3xl */
222
+ --line-height-4xl: 4rem;
223
+ /* desktop.4xl */
224
+ --line-height-5xl: 5.5rem;
225
+ /* desktop.5xl */
226
+ }
197
227
  }
198
228
 
199
229
  /* ============================================================
@@ -202,180 +232,311 @@
202
232
  ============================================================ */
203
233
 
204
234
  :root {
205
- /* Button — Primary */
206
- --button-primary-background: var(--color-coral-700);
207
- --button-primary-background-hover: var(--color-coral-600);
208
- --button-primary-background-active: var(--color-coral-500);
209
- --button-primary-text: var(--color-slate-50);
210
- --button-primary-border: var(--color-coral-700);
211
-
212
- /* Button — Secondary */
213
- --button-secondary-background: var(--color-slate-50);
214
- --button-secondary-background-hover: var(--color-slate-75);
215
- --button-secondary-background-active: var(--color-slate-100);
216
- --button-secondary-text: var(--color-slate-1200);
217
- --button-secondary-border: var(--color-slate-300);
218
-
219
- /* Button — Ghost */
220
- --button-ghost-background: var(--color-opacity-white-4);
221
- --button-ghost-background-hover: var(--color-opacity-white-8);
222
- --button-ghost-background-active: var(--color-opacity-white-16);
223
- --button-ghost-text: var(--color-slate-1200);
224
- --button-ghost-border: var(--color-opacity-white-4);
225
-
226
- /* Button — Danger */
227
- --button-danger-background: var(--color-cherry-700);
228
- --button-danger-background-hover: var(--color-cherry-800);
229
- --button-danger-background-active: var(--color-cherry-900);
230
- --button-danger-text: var(--color-slate-50);
231
- --button-danger-border: var(--color-cherry-700);
232
-
233
- /* Button — Disabled */
234
- --button-disabled-background: var(--color-slate-200);
235
- --button-disabled-text: var(--color-slate-500);
236
- --button-disabled-border: var(--color-slate-200);
237
-
238
- /* Link — Coral scheme */
239
- --link-coral-color: var(--color-coral-500);
240
-
241
- /* Link — Black scheme */
242
- --link-black-color: var(--color-slate-1300);
243
-
244
- /* Link — White scheme */
245
- --link-white-color: var(--color-slate-50);
246
-
247
- /* Link — Shared */
248
- --link-disabled-opacity: 0.24;
249
-
250
- /* Tag */
251
- --tag-fill-background: var(--color-opacity-slate-4);
252
- --tag-outline-border: var(--color-opacity-slate-8);
253
- --tag-text-color: var(--color-opacity-slate-72);
254
-
255
- /* Chip */
256
- --chip-border-color: var(--color-opacity-slate-8);
257
- --chip-text-color: var(--color-opacity-slate-72);
258
- --chip-hover-background: var(--color-opacity-slate-8);
259
- --chip-active-background: var(--color-opacity-slate-16);
260
- --chip-selected-background: var(--color-slate-1200);
261
- --chip-selected-text: var(--color-slate-50);
262
- --chip-disabled-text: var(--color-opacity-slate-24);
263
- --chip-focus-ring-color: var(--color-blue-600);
264
-
265
- /* Accordion */
266
- --accordion-divider-color: var(--color-opacity-slate-8);
267
- --accordion-title-color: var(--color-slate-1200);
268
- --accordion-body-color: var(--color-slate-1200);
269
- --accordion-chevron-color: var(--color-opacity-slate-72);
270
- --accordion-focus-ring-color: var(--color-blue-600);
271
-
272
- /* TextField — Surface */
273
- --field-surface-outline: var(--color-slate-50);
274
- --field-surface-fill: var(--color-opacity-slate-4);
275
- --field-surface-fill-hover: var(--color-opacity-slate-8);
276
- --field-surface-fail: var(--color-opacity-red-8);
277
- --field-surface-fail-hover: var(--color-opacity-red-16);
278
- --field-surface-success: var(--color-opacity-green-8);
279
- --field-surface-success-hover: var(--color-opacity-green-16);
280
-
281
- /* TextField — Border */
282
- --field-border-default: var(--color-opacity-slate-8);
283
- --field-border-hover: var(--color-opacity-slate-16);
284
- --field-border-focus: var(--color-slate-1300);
285
- --field-border-fail-default: var(--color-opacity-red-72);
286
- --field-border-fail-hover: var(--color-opacity-red-88);
287
- --field-border-fail-focus: var(--color-red-600);
288
- --field-border-success-default: var(--color-opacity-green-72);
289
- --field-border-success-hover: var(--color-opacity-green-88);
290
- --field-border-success-focus: var(--color-green-600);
291
-
292
- /* TextField — Text */
293
- --field-text-default: var(--color-opacity-slate-72);
294
- --field-text-focus: var(--color-slate-1300);
295
- --field-text-placeholder: var(--color-opacity-slate-24);
296
- --field-text-disabled: var(--color-opacity-slate-24);
297
- --field-text-subtle: var(--color-opacity-slate-48);
298
- --field-text-fail: var(--color-red-600);
299
- --field-text-success: var(--color-green-600);
300
-
301
- /* TextField — Icon */
302
- --field-icon-default: var(--color-opacity-slate-72);
303
- --field-icon-disabled: var(--color-opacity-slate-24);
304
- --field-icon-subtle: var(--color-opacity-slate-48);
305
-
306
- /* Breadcrumb */
307
- --breadcrumb-text-color: var(--color-opacity-slate-72);
308
- --breadcrumb-text-current-color: var(--color-opacity-slate-48);
309
- --breadcrumb-separator-color: var(--color-opacity-slate-48);
310
- --breadcrumb-focus-ring-color: var(--color-blue-600);
311
-
312
- /* Chip Dropdown — List panel */
313
- --chip-dropdown-list-bg: var(--color-slate-50);
314
- --chip-dropdown-list-border: var(--color-opacity-slate-4);
315
- --chip-dropdown-list-shadow: 0 16px 24px rgba(0, 0, 0, 0.04), 0 16px 24px rgba(0, 0, 0, 0.02);
316
-
317
- /* Chip Dropdown — List item */
318
- --chip-dropdown-item-text: var(--color-opacity-slate-72);
319
- --chip-dropdown-item-hover-bg: var(--color-opacity-slate-8);
320
- --chip-dropdown-item-active-bg: var(--color-opacity-slate-16);
321
- --chip-dropdown-item-selected-check: var(--color-opacity-slate-72);
322
-
323
- /* Typography — H5
324
- font-size and line-height are responsive because --font-size-xl
325
- and --line-height-xl override at each breakpoint in the core section above */
326
- --typography-h5-font-family: var(--font-family-base);
327
- --typography-h5-font-size: var(--font-size-xl); /* mobile: 1.25rem → tablet: 1.5rem → desktop: 1.75rem */
328
- --typography-h5-font-weight: var(--font-weight-extra-bold); /* 800 — all viewports */
329
- --typography-h5-line-height: var(--line-height-xl); /* mobile: 1.75rem → tablet: 2rem → desktop: 2.25rem */
330
-
331
- /* Typography — body-md (semantic/typography.json → body-md)
332
- md is identical across all viewports — no responsive overrides needed */
333
- --typography-body-md-font-family: var(--font-family-base);
334
- --typography-body-md-font-size: var(--font-size-md); /* {font-size.*.md} = 1rem */
335
- --typography-body-md-font-weight: var(--font-weight-regular); /* 400 */
336
- --typography-body-md-line-height: var(--line-height-md); /* {line-height.*.md} = 1.5rem */
337
-
338
- /* Pagination — Page */
339
- --pagination-page-radius: var(--radius-full);
340
- --pagination-page-text: var(--color-opacity-slate-72);
341
- --pagination-page-selected-bg: var(--color-slate-1400);
342
- --pagination-page-selected-text: var(--color-slate-50);
343
- --pagination-page-ellipsis-text: var(--color-opacity-slate-24);
344
-
345
- /* Pagination — Nav */
346
- --pagination-nav-icon: var(--color-slate-1400);
347
- --pagination-nav-icon-disabled: var(--color-opacity-slate-24);
348
-
349
- /* Bottom Sheet */
350
- --bottom-sheet-overlay-bg: var(--color-opacity-slate-72);
351
- --bottom-sheet-bg: var(--color-slate-50);
352
- --bottom-sheet-handle-color: var(--color-opacity-slate-24);
353
- --bottom-sheet-title-color: var(--color-slate-1200);
354
- --bottom-sheet-close-icon-color: var(--color-slate-1200);
355
- --bottom-sheet-close-hover-bg: var(--color-opacity-slate-8);
356
- --bottom-sheet-close-active-bg: var(--color-opacity-slate-16);
357
- --bottom-sheet-focus-ring-color: var(--color-blue-600);
358
- --bottom-sheet-shadow: var(--shadow-lg);
359
- --bottom-sheet-action-primary-bg: var(--color-slate-1200);
360
- --bottom-sheet-action-primary-bg-hover: var(--color-slate-1100);
361
- --bottom-sheet-action-primary-bg-active: var(--color-slate-1000);
362
- --bottom-sheet-action-primary-text: var(--color-slate-50);
363
- --bottom-sheet-action-secondary-border: var(--color-slate-1200);
364
- --bottom-sheet-action-secondary-text: var(--color-slate-1200);
365
- --bottom-sheet-action-secondary-hover-bg: var(--color-opacity-slate-8);
366
- --bottom-sheet-action-secondary-active-bg:var(--color-opacity-slate-16);
367
- --bottom-sheet-list-item-border: var(--color-opacity-slate-8);
368
-
369
- /* Footer */
370
- --footer-background: var(--color-slate-1200);
371
- --footer-surface: var(--color-slate-1100);
372
- --footer-header-divider: var(--color-slate-1100);
373
- --footer-divider-desktop: var(--color-opacity-slate-24);
374
- --footer-nav-title-color: var(--color-opacity-white-88);
375
- --footer-nav-link-color: var(--color-slate-200);
376
- --footer-social-icon-color: var(--color-slate-200);
377
- --footer-legal-text-color: var(--color-opacity-white-48);
378
- --footer-accordion-text-color: var(--color-slate-50);
379
- --footer-accordion-chevron-color: var(--color-slate-50);
380
- --footer-app-badge-border: var(--color-opacity-white-8);
381
- }
235
+ /* Button — Primary */
236
+ --button-primary-background: var(--color-coral-700);
237
+ --button-primary-background-hover: var(--color-coral-600);
238
+ --button-primary-background-active: var(--color-coral-500);
239
+ --button-primary-text: var(--color-slate-50);
240
+ --button-primary-border: var(--color-coral-700);
241
+
242
+ /* Button — Secondary */
243
+ --button-secondary-background: var(--color-slate-50);
244
+ --button-secondary-background-hover: var(--color-slate-75);
245
+ --button-secondary-background-active: var(--color-slate-100);
246
+ --button-secondary-text: var(--color-slate-1200);
247
+ --button-secondary-border: var(--color-slate-300);
248
+
249
+ /* Button — Ghost */
250
+ --button-ghost-background: var(--color-opacity-white-4);
251
+ --button-ghost-background-hover: var(--color-opacity-white-8);
252
+ --button-ghost-background-active: var(--color-opacity-white-16);
253
+ --button-ghost-text: var(--color-slate-1200);
254
+ --button-ghost-border: var(--color-opacity-white-4);
255
+
256
+ /* Button — Danger */
257
+ --button-danger-background: var(--color-cherry-700);
258
+ --button-danger-background-hover: var(--color-cherry-800);
259
+ --button-danger-background-active: var(--color-cherry-900);
260
+ --button-danger-text: var(--color-slate-50);
261
+ --button-danger-border: var(--color-cherry-700);
262
+
263
+ /* Button — Disabled */
264
+ --button-disabled-background: var(--color-slate-200);
265
+ --button-disabled-text: var(--color-slate-500);
266
+ --button-disabled-border: var(--color-slate-200);
267
+
268
+ /* Link — Coral scheme */
269
+ --link-coral-color: var(--color-coral-500);
270
+
271
+ /* Link — Black scheme */
272
+ --link-black-color: var(--color-slate-1300);
273
+
274
+ /* Link — White scheme */
275
+ --link-white-color: var(--color-slate-50);
276
+
277
+ /* Link — Shared */
278
+ --link-disabled-opacity: 0.24;
279
+
280
+ /* Tag */
281
+ --tag-fill-background: var(--color-opacity-slate-4);
282
+ --tag-outline-border: var(--color-opacity-slate-8);
283
+ --tag-text-color: var(--color-opacity-slate-72);
284
+
285
+ /* Chip */
286
+ --chip-border-color: var(--color-opacity-slate-16);
287
+ --chip-border-width: 1px;
288
+ --chip-text-color: var(--color-slate-1200);
289
+ --chip-hover-background: var(--color-opacity-slate-8);
290
+ --chip-active-background: var(--color-opacity-slate-16);
291
+ --chip-selected-background: var(--color-opacity-slate-8);
292
+ --chip-selected-border: var(--color-slate-1200);
293
+ --chip-selected-border-width: 1.5px;
294
+ --chip-selected-text: var(--color-slate-1200);
295
+ --chip-disabled-border: var(--color-opacity-slate-8);
296
+ --chip-disabled-text: var(--color-opacity-slate-16);
297
+ --chip-focus-ring-color: var(--color-blue-600);
298
+
299
+ /* Accordion */
300
+ --accordion-divider-color: var(--color-opacity-slate-8);
301
+ --accordion-title-color: var(--color-slate-1200);
302
+ --accordion-body-color: var(--color-slate-1200);
303
+ --accordion-chevron-color: var(--color-opacity-slate-72);
304
+ --accordion-focus-ring-color: var(--color-blue-600);
305
+
306
+ /* TextField — Surface */
307
+ --field-surface-outline: var(--color-slate-50);
308
+ --field-surface-fill: var(--color-opacity-slate-4);
309
+ --field-surface-fill-hover: var(--color-opacity-slate-8);
310
+ --field-surface-fail: var(--color-opacity-red-8);
311
+ --field-surface-fail-hover: var(--color-opacity-red-16);
312
+ --field-surface-success: var(--color-opacity-green-8);
313
+ --field-surface-success-hover: var(--color-opacity-green-16);
314
+
315
+ /* TextField — Border */
316
+ --field-border-default: var(--color-opacity-slate-8);
317
+ --field-border-hover: var(--color-opacity-slate-16);
318
+ --field-border-focus: var(--color-slate-1300);
319
+ --field-border-fail-default: var(--color-opacity-red-72);
320
+ --field-border-fail-hover: var(--color-opacity-red-88);
321
+ --field-border-fail-focus: var(--color-red-600);
322
+ --field-border-success-default: var(--color-opacity-green-72);
323
+ --field-border-success-hover: var(--color-opacity-green-88);
324
+ --field-border-success-focus: var(--color-green-600);
325
+
326
+ /* TextField — Text */
327
+ --field-text-default: var(--color-opacity-slate-72);
328
+ --field-text-focus: var(--color-slate-1300);
329
+ --field-text-placeholder: var(--color-opacity-slate-24);
330
+ --field-text-disabled: var(--color-opacity-slate-24);
331
+ --field-text-subtle: var(--color-opacity-slate-48);
332
+ --field-text-fail: var(--color-red-600);
333
+ --field-text-success: var(--color-green-600);
334
+
335
+ /* TextField — Icon */
336
+ --field-icon-default: var(--color-opacity-slate-72);
337
+ --field-icon-disabled: var(--color-opacity-slate-24);
338
+ --field-icon-subtle: var(--color-opacity-slate-48);
339
+
340
+ /* Breadcrumb */
341
+ --breadcrumb-text-color: var(--color-opacity-slate-72);
342
+ --breadcrumb-text-current-color: var(--color-opacity-slate-48);
343
+ --breadcrumb-separator-color: var(--color-opacity-slate-48);
344
+ --breadcrumb-focus-ring-color: var(--color-blue-600);
345
+
346
+ /* Chip Dropdown — List panel */
347
+ --chip-dropdown-list-bg: var(--color-slate-50);
348
+ --chip-dropdown-list-border: var(--color-opacity-slate-4);
349
+ --chip-dropdown-list-shadow: 0 16px 24px rgba(0, 0, 0, 0.04), 0 16px 24px rgba(0, 0, 0, 0.02);
350
+
351
+ /* Chip Dropdown — List item */
352
+ --chip-dropdown-item-text: var(--color-opacity-slate-72);
353
+ --chip-dropdown-item-hover-bg: var(--color-opacity-slate-8);
354
+ --chip-dropdown-item-active-bg: var(--color-opacity-slate-16);
355
+ --chip-dropdown-item-selected-check: var(--color-opacity-slate-72);
356
+
357
+ /* ── Typography — Headings ──────────────────────────────────
358
+ font-size and line-height are responsive because the core
359
+ --font-size-* / --line-height-* vars override at each
360
+ breakpoint in the core section above.
361
+ ────────────────────────────────────────────────────────── */
362
+
363
+ /* Typography — H1 */
364
+ --typography-h1-font-family: var(--font-family-base);
365
+ --typography-h1-font-size: var(--font-size-5xl);
366
+ /* mobile: 3rem → tablet: 4rem → desktop: 5rem */
367
+ --typography-h1-font-weight: var(--font-weight-extra-bold);
368
+ /* 800 — all viewports */
369
+ --typography-h1-line-height: var(--line-height-5xl);
370
+ /* mobile: 3.5rem → tablet: 4rem → desktop: 5.5rem */
371
+
372
+ /* Typography — H2 */
373
+ --typography-h2-font-family: var(--font-family-base);
374
+ --typography-h2-font-size: var(--font-size-4xl);
375
+ /* mobile: 2.5rem → tablet: 3rem → desktop: 3.5rem */
376
+ --typography-h2-font-weight: var(--font-weight-extra-bold);
377
+ /* 800 — all viewports */
378
+ --typography-h2-line-height: var(--line-height-4xl);
379
+ /* mobile: 3rem → tablet: 3.5rem → desktop: 4rem */
380
+
381
+ /* Typography — H3 */
382
+ --typography-h3-font-family: var(--font-family-base);
383
+ --typography-h3-font-size: var(--font-size-3xl);
384
+ /* mobile: 2rem → tablet: 2.5rem → desktop: 3rem */
385
+ --typography-h3-font-weight: var(--font-weight-extra-bold);
386
+ /* 800 — all viewports */
387
+ --typography-h3-line-height: var(--line-height-3xl);
388
+ /* mobile: 2.5rem → tablet: 3rem → desktop: 3.5rem */
389
+
390
+ /* Typography — H4 */
391
+ --typography-h4-font-family: var(--font-family-base);
392
+ --typography-h4-font-size: var(--font-size-2xl);
393
+ /* mobile: 1.5rem → tablet: 2rem → desktop: 2.5rem */
394
+ --typography-h4-font-weight: var(--font-weight-extra-bold);
395
+ /* 800 — all viewports */
396
+ --typography-h4-line-height: var(--line-height-2xl);
397
+ /* mobile: 2rem → tablet: 2.5rem → desktop: 3rem */
398
+
399
+ /* Typography — H5 */
400
+ --typography-h5-font-family: var(--font-family-base);
401
+ --typography-h5-font-size: var(--font-size-xl);
402
+ /* mobile: 1.25rem → tablet: 1.5rem → desktop: 1.75rem */
403
+ --typography-h5-font-weight: var(--font-weight-extra-bold);
404
+ /* 800 — all viewports */
405
+ --typography-h5-line-height: var(--line-height-xl);
406
+ /* mobile: 1.75rem → tablet: 2rem → desktop: 2.25rem */
407
+
408
+ /* ── Typography — Body ──────────────────────────────────────
409
+ xs–lg are identical across all viewports — no responsive
410
+ overrides needed.
411
+ ────────────────────────────────────────────────────────── */
412
+
413
+ /* Typography — body-lg */
414
+ --typography-body-lg-font-family: var(--font-family-base);
415
+ --typography-body-lg-font-size: var(--font-size-lg);
416
+ /* 1.125rem (18px) — all viewports */
417
+ --typography-body-lg-font-weight: var(--font-weight-regular);
418
+ /* 400 */
419
+ --typography-body-lg-line-height: var(--line-height-lg);
420
+ /* 1.75rem (28px) — all viewports */
421
+
422
+ /* Typography — body-md */
423
+ --typography-body-md-font-family: var(--font-family-base);
424
+ --typography-body-md-font-size: var(--font-size-md);
425
+ /* 1rem (16px) — all viewports */
426
+ --typography-body-md-font-weight: var(--font-weight-regular);
427
+ /* 400 */
428
+ --typography-body-md-line-height: var(--line-height-md);
429
+ /* 1.5rem (24px) — all viewports */
430
+
431
+ /* Typography — body-sm */
432
+ --typography-body-sm-font-family: var(--font-family-base);
433
+ --typography-body-sm-font-size: var(--font-size-sm);
434
+ /* 0.875rem (14px) — all viewports */
435
+ --typography-body-sm-font-weight: var(--font-weight-regular);
436
+ /* 400 */
437
+ --typography-body-sm-line-height: var(--line-height-sm);
438
+ /* 1.5rem (24px) — all viewports */
439
+
440
+ /* Typography — body-xs */
441
+ --typography-body-xs-font-family: var(--font-family-base);
442
+ --typography-body-xs-font-size: var(--font-size-xs);
443
+ /* 0.75rem (12px) — all viewports */
444
+ --typography-body-xs-font-weight: var(--font-weight-regular);
445
+ /* 400 */
446
+ --typography-body-xs-line-height: var(--line-height-xs);
447
+ /* 1.25rem (20px) — all viewports */
448
+
449
+ /* ── Typography — Labels ────────────────────────────────────
450
+ ────────────────────────────────────────────────────────── */
451
+
452
+ /* Typography — label-lg */
453
+ --typography-label-lg-font-family: var(--font-family-base);
454
+ --typography-label-lg-font-size: var(--font-size-lg);
455
+ /* 1.125rem (18px) */
456
+ --typography-label-lg-font-weight: var(--font-weight-regular);
457
+ /* 400 */
458
+ --typography-label-lg-line-height: var(--line-height-lg);
459
+ /* 1.75rem (28px) */
460
+
461
+ /* Typography — label-md */
462
+ --typography-label-md-font-family: var(--font-family-base);
463
+ --typography-label-md-font-size: var(--font-size-md);
464
+ /* 1rem (16px) */
465
+ --typography-label-md-font-weight: var(--font-weight-regular);
466
+ /* 400 */
467
+ --typography-label-md-line-height: var(--line-height-md);
468
+ /* 1.5rem (24px) */
469
+
470
+ /* Typography — label-sm */
471
+ --typography-label-sm-font-family: var(--font-family-base);
472
+ --typography-label-sm-font-size: var(--font-size-xs);
473
+ /* 0.75rem (12px) */
474
+ --typography-label-sm-font-weight: var(--font-weight-regular);
475
+ /* 400 */
476
+ --typography-label-sm-line-height: var(--line-height-xs);
477
+ /* 1.25rem (20px) */
478
+
479
+ /* ── Typography — Caption ───────────────────────────────────
480
+ ────────────────────────────────────────────────────────── */
481
+ --typography-caption-font-family: var(--font-family-base);
482
+ --typography-caption-font-size: var(--font-size-xs);
483
+ /* 0.75rem (12px) */
484
+ --typography-caption-font-weight: var(--font-weight-regular);
485
+ /* 400 */
486
+ --typography-caption-line-height: var(--line-height-xs);
487
+ /* 1.25rem (20px) */
488
+
489
+ /* ── Typography — Link ──────────────────────────────────────
490
+ ────────────────────────────────────────────────────────── */
491
+ --typography-link-md-font-family: var(--font-family-base);
492
+ --typography-link-md-font-size: var(--font-size-md);
493
+ /* 1rem (16px) */
494
+ --typography-link-md-font-weight: var(--font-weight-semi-bold);
495
+ /* 600 */
496
+ --typography-link-md-line-height: var(--line-height-md);
497
+ /* 1.5rem (24px) */
498
+
499
+ /* Pagination — Page */
500
+ --pagination-page-radius: var(--radius-full);
501
+ --pagination-page-text: var(--color-opacity-slate-72);
502
+ --pagination-page-selected-bg: var(--color-slate-1400);
503
+ --pagination-page-selected-text: var(--color-slate-50);
504
+ --pagination-page-ellipsis-text: var(--color-opacity-slate-24);
505
+
506
+ /* Pagination — Nav */
507
+ --pagination-nav-icon: var(--color-slate-1400);
508
+ --pagination-nav-icon-disabled: var(--color-opacity-slate-24);
509
+
510
+ /* Bottom Sheet */
511
+ --bottom-sheet-overlay-bg: var(--color-opacity-slate-72);
512
+ --bottom-sheet-bg: var(--color-slate-50);
513
+ --bottom-sheet-handle-color: var(--color-opacity-slate-24);
514
+ --bottom-sheet-title-color: var(--color-slate-1200);
515
+ --bottom-sheet-close-icon-color: var(--color-slate-1200);
516
+ --bottom-sheet-close-hover-bg: var(--color-opacity-slate-8);
517
+ --bottom-sheet-close-active-bg: var(--color-opacity-slate-16);
518
+ --bottom-sheet-focus-ring-color: var(--color-blue-600);
519
+ --bottom-sheet-shadow: var(--shadow-lg);
520
+ --bottom-sheet-action-primary-bg: var(--color-slate-1200);
521
+ --bottom-sheet-action-primary-bg-hover: var(--color-slate-1100);
522
+ --bottom-sheet-action-primary-bg-active: var(--color-slate-1000);
523
+ --bottom-sheet-action-primary-text: var(--color-slate-50);
524
+ --bottom-sheet-action-secondary-border: var(--color-slate-1200);
525
+ --bottom-sheet-action-secondary-text: var(--color-slate-1200);
526
+ --bottom-sheet-action-secondary-hover-bg: var(--color-opacity-slate-8);
527
+ --bottom-sheet-action-secondary-active-bg: var(--color-opacity-slate-16);
528
+ --bottom-sheet-list-item-border: var(--color-opacity-slate-8);
529
+
530
+ /* Footer */
531
+ --footer-background: var(--color-slate-1200);
532
+ --footer-surface: var(--color-slate-1100);
533
+ --footer-header-divider: var(--color-slate-1100);
534
+ --footer-divider-desktop: var(--color-opacity-slate-24);
535
+ --footer-nav-title-color: var(--color-opacity-white-88);
536
+ --footer-nav-link-color: var(--color-slate-200);
537
+ --footer-social-icon-color: var(--color-slate-200);
538
+ --footer-legal-text-color: var(--color-opacity-white-48);
539
+ --footer-accordion-text-color: var(--color-slate-50);
540
+ --footer-accordion-chevron-color: var(--color-slate-50);
541
+ --footer-app-badge-border: var(--color-opacity-white-8);
542
+ }