@fluid-theme/core 0.4.3 → 2.1.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/AGENTS.md +6 -29
- package/CHANGELOG.md +564 -2
- package/CLAUDE.md +201 -14
- package/GEMINI.md +6 -45
- package/README.md +17 -8
- package/assets/js/compare.js +77 -0
- package/assets/js/fit-text.js +103 -0
- package/assets/js/lightbox.js +153 -0
- package/assets/js/scroll-reveal.js +72 -0
- package/assets/js/toc-build.mjs +86 -0
- package/assets/js/toc.js +384 -0
- package/dist/fluid-1x.min.css +4 -0
- package/dist/fluid-fonts-archivo.min.css +2 -0
- package/dist/fluid-fonts-bodoni.min.css +2 -0
- package/dist/fluid-fonts.min.css +2 -0
- package/dist/fluid-legacy-1x.css +3 -0
- package/dist/fluid-nav.min.css +3 -0
- package/dist/fluid-toc.min.css +3 -0
- package/dist/fluid-zero.min.css +3 -0
- package/dist/fluid.min.css +3 -2
- package/dist/fonts/OFL-archivo.txt +93 -0
- package/dist/fonts/OFL-bodoni-moda.txt +93 -0
- package/dist/fonts/OFL-hanken-grotesk.txt +93 -0
- package/dist/fonts/OFL-newsreader.txt +93 -0
- package/dist/fonts/OFL-schibsted-grotesk.txt +93 -0
- package/dist/fonts/archivo-latin-wdth-italic.woff2 +0 -0
- package/dist/fonts/archivo-latin-wdth-normal.woff2 +0 -0
- package/dist/fonts/bodoni-moda-latin-opsz-italic.woff2 +0 -0
- package/dist/fonts/bodoni-moda-latin-opsz-normal.woff2 +0 -0
- package/dist/fonts/hanken-grotesk-latin-wght-italic.woff2 +0 -0
- package/dist/fonts/hanken-grotesk-latin-wght-normal.woff2 +0 -0
- package/dist/fonts/newsreader-latin-opsz-italic.woff2 +0 -0
- package/dist/fonts/newsreader-latin-opsz-normal.woff2 +0 -0
- package/dist/fonts/schibsted-grotesk-latin-wght-italic.woff2 +0 -0
- package/dist/fonts/schibsted-grotesk-latin-wght-normal.woff2 +0 -0
- package/fluid-agent-kit/README.md +1 -0
- package/fluid-agent-kit/skills/accessibility.md +3 -1
- package/fluid-agent-kit/skills/css-conventions.md +22 -5
- package/fluid-agent-kit/skills/image-optimization.md +2 -0
- package/fluid-agent-kit/skills/preset-composition.md +108 -0
- package/package.json +36 -11
- package/src/animations/scroll-reveal.css +75 -193
- package/src/components/accordion.css +6 -47
- package/src/components/alert.css +47 -88
- package/src/components/avatar.css +4 -20
- package/src/components/badge.css +25 -48
- package/src/components/button.css +69 -175
- package/src/components/card.css +146 -481
- package/src/components/chip.css +46 -12
- package/src/components/compare.css +234 -0
- package/src/components/dropdown.css +10 -67
- package/src/components/empty-state.css +4 -0
- package/src/components/form.css +113 -81
- package/src/components/gallery.css +252 -0
- package/src/components/hero.css +203 -88
- package/src/components/indicator.css +23 -117
- package/src/components/loading.css +7 -29
- package/src/components/modal.css +12 -65
- package/src/components/nav-modes.css +261 -0
- package/src/components/nav.css +324 -392
- package/src/components/search-input.css +4 -2
- package/src/components/step-indicator.css +26 -27
- package/src/components/table.css +64 -171
- package/src/components/toc.css +254 -0
- package/src/components/tooltip.css +5 -46
- package/src/core/base.css +393 -547
- package/src/core/reset.css +17 -5
- package/src/core/tokens.css +426 -2276
- package/src/fluid.css +258 -17
- package/src/fonts/OFL-newsreader.txt +93 -0
- package/src/fonts/OFL-schibsted-grotesk.txt +93 -0
- package/src/fonts/fluid-fonts.css +55 -0
- package/src/fonts/newsreader-latin-opsz-italic.woff2 +0 -0
- package/src/fonts/newsreader-latin-opsz-normal.woff2 +0 -0
- package/src/fonts/schibsted-grotesk-latin-wght-italic.woff2 +0 -0
- package/src/fonts/schibsted-grotesk-latin-wght-normal.woff2 +0 -0
- package/src/layouts/positioning.css +6 -3
- package/src/legacy-1x.css +61 -0
- package/src/sections/cta.css +33 -101
- package/src/sections/features.css +42 -219
- package/src/sections/footer.css +53 -134
- package/src/sections/stats.css +40 -153
- package/src/sections/team.css +24 -113
- package/src/sections/testimonials.css +34 -148
- package/src/zero/base.css +166 -0
- package/src/zero/tokens.css +64 -0
- package/src/zero.css +20 -0
- package/starters/workflows/README.md +40 -0
- package/starters/workflows/dependabot.yml +21 -0
- package/starters/workflows/update-fluid-theme.yml +296 -0
- package/themes/fonts/OFL-archivo.txt +93 -0
- package/themes/fonts/OFL-bodoni-moda.txt +93 -0
- package/themes/fonts/OFL-hanken-grotesk.txt +93 -0
- package/themes/fonts/archivo-latin-wdth-italic.woff2 +0 -0
- package/themes/fonts/archivo-latin-wdth-normal.woff2 +0 -0
- package/themes/fonts/archivo.css +20 -0
- package/themes/fonts/bodoni-moda-latin-opsz-italic.woff2 +0 -0
- package/themes/fonts/bodoni-moda-latin-opsz-normal.woff2 +0 -0
- package/themes/fonts/bodoni.css +35 -0
- package/themes/fonts/hanken-grotesk-latin-wght-italic.woff2 +0 -0
- package/themes/fonts/hanken-grotesk-latin-wght-normal.woff2 +0 -0
- package/themes/gallery.css +105 -0
- package/themes/swiss.css +53 -0
- package/src/components/scroll-progress.css +0 -104
- package/src/components/settings-panel.css +0 -603
- package/src/components/themed-images.css +0 -229
- package/src/components/version-badge.css +0 -70
package/src/components/alert.css
CHANGED
|
@@ -39,6 +39,8 @@
|
|
|
39
39
|
|
|
40
40
|
.alert {
|
|
41
41
|
--_alert-color: var(--color-info);
|
|
42
|
+
--_alert-fill: var(--color-info-fill);
|
|
43
|
+
--_alert-on: var(--color-info-on);
|
|
42
44
|
--_alert-bg: var(--color-info-subtle);
|
|
43
45
|
--_alert-border: var(--color-info);
|
|
44
46
|
|
|
@@ -46,16 +48,15 @@
|
|
|
46
48
|
align-items: flex-start;
|
|
47
49
|
gap: var(--space-3);
|
|
48
50
|
padding: var(--space-4) var(--space-5);
|
|
49
|
-
border-radius: var(--radius-
|
|
50
|
-
border-inline-start:
|
|
51
|
+
border-radius: var(--radius-card);
|
|
52
|
+
border-inline-start: var(--border-width-thick) solid var(--_alert-border);
|
|
51
53
|
background: var(--_alert-bg);
|
|
52
54
|
color: var(--color-text);
|
|
53
|
-
font-size: var(--
|
|
54
|
-
line-height:
|
|
55
|
-
|
|
55
|
+
font-size: var(--step--1);
|
|
56
|
+
line-height: 1.5;
|
|
56
57
|
transition:
|
|
57
58
|
opacity var(--duration-normal) var(--ease-fluid),
|
|
58
|
-
|
|
59
|
+
translate var(--duration-normal) var(--ease-settle);
|
|
59
60
|
}
|
|
60
61
|
|
|
61
62
|
|
|
@@ -65,24 +66,32 @@
|
|
|
65
66
|
|
|
66
67
|
.alert[data-status="success"] {
|
|
67
68
|
--_alert-color: var(--color-success);
|
|
69
|
+
--_alert-fill: var(--color-success-fill);
|
|
70
|
+
--_alert-on: var(--color-success-on);
|
|
68
71
|
--_alert-bg: var(--color-success-subtle);
|
|
69
72
|
--_alert-border: var(--color-success);
|
|
70
73
|
}
|
|
71
74
|
|
|
72
75
|
.alert[data-status="warning"] {
|
|
73
76
|
--_alert-color: var(--color-warning);
|
|
77
|
+
--_alert-fill: var(--color-warning-fill);
|
|
78
|
+
--_alert-on: var(--color-warning-on);
|
|
74
79
|
--_alert-bg: var(--color-warning-subtle);
|
|
75
80
|
--_alert-border: var(--color-warning);
|
|
76
81
|
}
|
|
77
82
|
|
|
78
83
|
.alert[data-status="error"] {
|
|
79
84
|
--_alert-color: var(--color-error);
|
|
85
|
+
--_alert-fill: var(--color-error-fill);
|
|
86
|
+
--_alert-on: var(--color-error-on);
|
|
80
87
|
--_alert-bg: var(--color-error-subtle);
|
|
81
88
|
--_alert-border: var(--color-error);
|
|
82
89
|
}
|
|
83
90
|
|
|
84
91
|
.alert[data-status="info"] {
|
|
85
92
|
--_alert-color: var(--color-info);
|
|
93
|
+
--_alert-fill: var(--color-info-fill);
|
|
94
|
+
--_alert-on: var(--color-info-on);
|
|
86
95
|
--_alert-bg: var(--color-info-subtle);
|
|
87
96
|
--_alert-border: var(--color-info);
|
|
88
97
|
}
|
|
@@ -94,8 +103,8 @@
|
|
|
94
103
|
|
|
95
104
|
/* Filled: solid background */
|
|
96
105
|
.alert[data-variant="filled"] {
|
|
97
|
-
background: var(--_alert-
|
|
98
|
-
color: var(--
|
|
106
|
+
background: var(--_alert-fill);
|
|
107
|
+
color: var(--_alert-on);
|
|
99
108
|
border-inline-start: none;
|
|
100
109
|
}
|
|
101
110
|
|
|
@@ -107,7 +116,7 @@
|
|
|
107
116
|
.alert[data-variant="outline"] {
|
|
108
117
|
background: transparent;
|
|
109
118
|
border: var(--border-width) solid var(--_alert-border);
|
|
110
|
-
border-inline-start-width:
|
|
119
|
+
border-inline-start-width: var(--border-width-thick);
|
|
111
120
|
}
|
|
112
121
|
|
|
113
122
|
|
|
@@ -130,7 +139,7 @@
|
|
|
130
139
|
}
|
|
131
140
|
|
|
132
141
|
.alert__title {
|
|
133
|
-
font-weight: var(--weight
|
|
142
|
+
font-weight: calc(700 + var(--_dark-weight));
|
|
134
143
|
color: var(--_alert-color);
|
|
135
144
|
margin-block-end: var(--space-1);
|
|
136
145
|
display: block;
|
|
@@ -142,7 +151,7 @@
|
|
|
142
151
|
|
|
143
152
|
.alert__close {
|
|
144
153
|
--_btn-bg: transparent;
|
|
145
|
-
--_btn-
|
|
154
|
+
--_btn-bg-hover: transparent;
|
|
146
155
|
|
|
147
156
|
position: relative;
|
|
148
157
|
flex-shrink: 0;
|
|
@@ -152,7 +161,6 @@
|
|
|
152
161
|
inline-size: 1.5rem;
|
|
153
162
|
block-size: 1.5rem;
|
|
154
163
|
padding: 0;
|
|
155
|
-
border-radius: var(--radius-sm);
|
|
156
164
|
font-size: var(--font-size-lg);
|
|
157
165
|
line-height: 1;
|
|
158
166
|
color: var(--color-text-muted);
|
|
@@ -174,9 +182,11 @@
|
|
|
174
182
|
/* Dismissing animation */
|
|
175
183
|
.alert[data-dismissing] {
|
|
176
184
|
opacity: 0;
|
|
177
|
-
|
|
185
|
+
translate: var(--space-4);
|
|
178
186
|
}
|
|
179
187
|
|
|
188
|
+
.alert[data-dismissing]:dir(rtl) { translate: calc(-1 * var(--space-4)); }
|
|
189
|
+
|
|
180
190
|
|
|
181
191
|
/* ========================================
|
|
182
192
|
TOAST CONTAINER
|
|
@@ -218,14 +228,14 @@
|
|
|
218
228
|
|
|
219
229
|
.toast-container[data-position="top-center"] {
|
|
220
230
|
inset-block-start: 0;
|
|
221
|
-
inset-inline
|
|
222
|
-
|
|
231
|
+
inset-inline: 0;
|
|
232
|
+
margin-inline: auto;
|
|
223
233
|
}
|
|
224
234
|
|
|
225
235
|
.toast-container[data-position="bottom-center"] {
|
|
226
236
|
inset-block-end: 0;
|
|
227
|
-
inset-inline
|
|
228
|
-
|
|
237
|
+
inset-inline: 0;
|
|
238
|
+
margin-inline: auto;
|
|
229
239
|
}
|
|
230
240
|
|
|
231
241
|
|
|
@@ -235,18 +245,19 @@
|
|
|
235
245
|
|
|
236
246
|
.toast {
|
|
237
247
|
--_toast-accent: var(--color-info);
|
|
238
|
-
|
|
248
|
+
--_toast-fill: var(--color-info-fill);
|
|
249
|
+
--_toast-on: var(--color-info-on);
|
|
250
|
+
--_toast-bg: var(--color-info-subtle);
|
|
251
|
+
--_dir: 1;
|
|
239
252
|
position: relative;
|
|
240
253
|
overflow: hidden;
|
|
241
254
|
display: flex;
|
|
242
255
|
align-items: flex-start;
|
|
243
256
|
gap: var(--space-3);
|
|
244
257
|
padding: var(--space-4);
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
border: var(--
|
|
248
|
-
border-radius: var(--radius-lg);
|
|
249
|
-
box-shadow: var(--shadow-lg);
|
|
258
|
+
background: var(--_toast-bg);
|
|
259
|
+
border-inline-start: var(--border-width-thick) solid var(--_toast-accent);
|
|
260
|
+
border-radius: var(--radius-card);
|
|
250
261
|
pointer-events: auto;
|
|
251
262
|
inline-size: 100%;
|
|
252
263
|
|
|
@@ -254,22 +265,12 @@
|
|
|
254
265
|
animation: toast-in var(--duration-normal) var(--ease-settle) both;
|
|
255
266
|
}
|
|
256
267
|
|
|
257
|
-
.toast[data-status="success"] { --_toast-accent: var(--color-success); }
|
|
258
|
-
.toast[data-status="warning"] { --_toast-accent: var(--color-warning); }
|
|
259
|
-
.toast[data-status="error"] { --_toast-accent: var(--color-error); }
|
|
260
|
-
.toast[data-status="info"] { --_toast-accent: var(--color-info); }
|
|
268
|
+
.toast[data-status="success"] { --_toast-accent: var(--color-success); --_toast-fill: var(--color-success-fill); --_toast-on: var(--color-success-on); --_toast-bg: var(--color-success-subtle); }
|
|
269
|
+
.toast[data-status="warning"] { --_toast-accent: var(--color-warning); --_toast-fill: var(--color-warning-fill); --_toast-on: var(--color-warning-on); --_toast-bg: var(--color-warning-subtle); }
|
|
270
|
+
.toast[data-status="error"] { --_toast-accent: var(--color-error); --_toast-fill: var(--color-error-fill); --_toast-on: var(--color-error-on); --_toast-bg: var(--color-error-subtle); }
|
|
271
|
+
.toast[data-status="info"] { --_toast-accent: var(--color-info); --_toast-fill: var(--color-info-fill); --_toast-on: var(--color-info-on); --_toast-bg: var(--color-info-subtle); }
|
|
261
272
|
|
|
262
|
-
|
|
263
|
-
.toast::before {
|
|
264
|
-
content: "";
|
|
265
|
-
position: absolute;
|
|
266
|
-
inset-block-start: 0;
|
|
267
|
-
inset-inline-start: 0;
|
|
268
|
-
inline-size: 3px;
|
|
269
|
-
block-size: 100%;
|
|
270
|
-
background: var(--_toast-accent);
|
|
271
|
-
border-radius: var(--radius-full) 0 0 var(--radius-full);
|
|
272
|
-
}
|
|
273
|
+
.toast:dir(rtl) { --_dir: -1; }
|
|
273
274
|
|
|
274
275
|
.toast__icon {
|
|
275
276
|
flex-shrink: 0;
|
|
@@ -286,7 +287,7 @@
|
|
|
286
287
|
|
|
287
288
|
.toast__content strong {
|
|
288
289
|
display: block;
|
|
289
|
-
font-weight: var(--weight
|
|
290
|
+
font-weight: calc(700 + var(--_dark-weight));
|
|
290
291
|
margin-block-end: var(--space-1);
|
|
291
292
|
}
|
|
292
293
|
|
|
@@ -298,7 +299,7 @@
|
|
|
298
299
|
|
|
299
300
|
.toast__close {
|
|
300
301
|
--_btn-bg: transparent;
|
|
301
|
-
--_btn-
|
|
302
|
+
--_btn-bg-hover: transparent;
|
|
302
303
|
|
|
303
304
|
position: relative;
|
|
304
305
|
flex-shrink: 0;
|
|
@@ -308,7 +309,6 @@
|
|
|
308
309
|
inline-size: 1.5rem;
|
|
309
310
|
block-size: 1.5rem;
|
|
310
311
|
padding: 0;
|
|
311
|
-
border-radius: var(--radius-sm);
|
|
312
312
|
font-size: var(--font-size-base);
|
|
313
313
|
color: var(--color-text-subtle);
|
|
314
314
|
cursor: pointer;
|
|
@@ -336,15 +336,15 @@
|
|
|
336
336
|
color: var(--_toast-accent);
|
|
337
337
|
background: transparent;
|
|
338
338
|
border: var(--border-width) solid var(--_toast-accent);
|
|
339
|
-
border-radius: var(--radius-
|
|
339
|
+
border-radius: var(--radius-control);
|
|
340
340
|
cursor: pointer;
|
|
341
341
|
text-decoration: none;
|
|
342
342
|
transition: background-color var(--duration-fast) var(--ease-fluid);
|
|
343
343
|
}
|
|
344
344
|
|
|
345
345
|
.toast__action:hover {
|
|
346
|
-
background: var(--_toast-
|
|
347
|
-
color: var(--
|
|
346
|
+
background: var(--_toast-fill);
|
|
347
|
+
color: var(--_toast-on);
|
|
348
348
|
}
|
|
349
349
|
|
|
350
350
|
/* Auto-dismiss progress bar */
|
|
@@ -373,50 +373,13 @@
|
|
|
373
373
|
TOAST ANIMATIONS
|
|
374
374
|
======================================== */
|
|
375
375
|
|
|
376
|
+
/* Logical: the toast slides from and to the inline end (:dir sets --_dir). */
|
|
376
377
|
@keyframes toast-in {
|
|
377
|
-
from {
|
|
378
|
-
opacity: 0;
|
|
379
|
-
transform: translateY(-8px) scale(0.96);
|
|
380
|
-
}
|
|
381
|
-
to {
|
|
382
|
-
opacity: 1;
|
|
383
|
-
transform: translateY(0) scale(1);
|
|
384
|
-
}
|
|
378
|
+
from { opacity: 0; translate: calc(var(--space-4) * var(--_dir)) 0; }
|
|
385
379
|
}
|
|
386
380
|
|
|
387
381
|
@keyframes toast-out {
|
|
388
|
-
to {
|
|
389
|
-
opacity: 0;
|
|
390
|
-
transform: translateX(100%) scale(0.96);
|
|
391
|
-
}
|
|
392
|
-
}
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
/* ========================================
|
|
396
|
-
THEME-SPECIFIC STYLES
|
|
397
|
-
======================================== */
|
|
398
|
-
|
|
399
|
-
/* Still: no animations */
|
|
400
|
-
[data-motion="still"] .toast {
|
|
401
|
-
animation: none;
|
|
402
|
-
}
|
|
403
|
-
|
|
404
|
-
/* Rapids: offset shadow */
|
|
405
|
-
[data-motion="rapids"] .toast {
|
|
406
|
-
box-shadow: var(--shadow-offset);
|
|
407
|
-
}
|
|
408
|
-
|
|
409
|
-
[data-motion="rapids"] .alert {
|
|
410
|
-
border-inline-start-width: 4px;
|
|
411
|
-
}
|
|
412
|
-
|
|
413
|
-
/* Tsunami: asymmetric */
|
|
414
|
-
[data-motion="tsunami"] .toast {
|
|
415
|
-
border-radius: var(--radius-asymmetric, 0 24px 0 0);
|
|
416
|
-
}
|
|
417
|
-
|
|
418
|
-
[data-motion="tsunami"] .alert {
|
|
419
|
-
border-radius: var(--radius-asymmetric, 0 24px 0 0);
|
|
382
|
+
to { opacity: 0; translate: calc(100% * var(--_dir)) 0; }
|
|
420
383
|
}
|
|
421
384
|
|
|
422
385
|
|
|
@@ -437,10 +400,6 @@
|
|
|
437
400
|
======================================== */
|
|
438
401
|
|
|
439
402
|
@media (prefers-reduced-motion: reduce) {
|
|
440
|
-
.alert {
|
|
441
|
-
transition: none;
|
|
442
|
-
}
|
|
443
|
-
|
|
444
403
|
.toast {
|
|
445
404
|
animation: none;
|
|
446
405
|
}
|
|
@@ -39,8 +39,8 @@
|
|
|
39
39
|
inline-size: var(--_avatar-size);
|
|
40
40
|
block-size: var(--_avatar-size);
|
|
41
41
|
border-radius: var(--radius-full);
|
|
42
|
-
background: color-mix(in
|
|
43
|
-
color: var(--accent);
|
|
42
|
+
background: color-mix(in oklab, var(--accent) 20%, var(--color-surface));
|
|
43
|
+
color: var(--accent-ink);
|
|
44
44
|
font-weight: var(--weight-semibold);
|
|
45
45
|
font-size: calc(var(--_avatar-size) * 0.4);
|
|
46
46
|
line-height: 1;
|
|
@@ -106,7 +106,7 @@
|
|
|
106
106
|
inline-size: calc(var(--_avatar-size) * 0.3);
|
|
107
107
|
block-size: calc(var(--_avatar-size) * 0.3);
|
|
108
108
|
border-radius: var(--radius-full);
|
|
109
|
-
border:
|
|
109
|
+
border: var(--border-width-thick) solid var(--color-background);
|
|
110
110
|
background: var(--color-text-subtle);
|
|
111
111
|
}
|
|
112
112
|
|
|
@@ -144,17 +144,13 @@
|
|
|
144
144
|
|
|
145
145
|
.avatar-group .avatar {
|
|
146
146
|
box-shadow: 0 0 0 2px var(--color-background);
|
|
147
|
-
transition: transform var(--duration-fast) var(--ease-settle);
|
|
148
147
|
}
|
|
149
148
|
|
|
150
149
|
.avatar-group .avatar + .avatar {
|
|
151
150
|
margin-inline-start: calc(var(--_avatar-size) * -0.3);
|
|
152
151
|
}
|
|
153
152
|
|
|
154
|
-
.avatar-group .avatar:hover {
|
|
155
|
-
z-index: var(--z-raised);
|
|
156
|
-
transform: scale(1.1);
|
|
157
|
-
}
|
|
153
|
+
.avatar-group .avatar:hover { z-index: var(--z-raised); }
|
|
158
154
|
|
|
159
155
|
/* Overflow counter: +5 more */
|
|
160
156
|
.avatar-group__overflow {
|
|
@@ -176,17 +172,5 @@
|
|
|
176
172
|
}
|
|
177
173
|
|
|
178
174
|
|
|
179
|
-
/* ========================================
|
|
180
|
-
THEME-SPECIFIC STYLES
|
|
181
|
-
======================================== */
|
|
182
|
-
|
|
183
|
-
/* Tsunami: asymmetric corners on square */
|
|
184
|
-
[data-motion="tsunami"] .avatar[data-shape="square"] {
|
|
185
|
-
border-radius: var(--radius-asymmetric, 0 12px 0 0);
|
|
186
|
-
}
|
|
187
175
|
|
|
188
|
-
/* Rapids: hard shadow on group */
|
|
189
|
-
[data-motion="rapids"] .avatar-group .avatar {
|
|
190
|
-
box-shadow: 2px 2px 0 oklch(0 0 0 / 0.1), 0 0 0 2px var(--color-background);
|
|
191
|
-
}
|
|
192
176
|
}
|
package/src/components/badge.css
CHANGED
|
@@ -21,23 +21,21 @@
|
|
|
21
21
|
BASE BADGE
|
|
22
22
|
======================================== */
|
|
23
23
|
|
|
24
|
+
/* The label voice in a 1px box: square (--radius-control), transparent. */
|
|
24
25
|
.badge {
|
|
25
26
|
display: inline-flex;
|
|
26
27
|
align-items: center;
|
|
27
28
|
gap: var(--space-1);
|
|
28
|
-
padding:
|
|
29
|
-
font
|
|
30
|
-
|
|
31
|
-
line-height: var(--leading-tight);
|
|
32
|
-
letter-spacing: var(--tracking-wide);
|
|
29
|
+
padding: 0.35em 0.6em;
|
|
30
|
+
font: calc(600 + var(--_dark-weight)) var(--step--2) / 1.2 var(--font-body);
|
|
31
|
+
letter-spacing: var(--tracking-caps);
|
|
33
32
|
text-transform: uppercase;
|
|
34
|
-
border
|
|
33
|
+
border: var(--border-width) solid currentColor;
|
|
34
|
+
border-radius: var(--radius-control);
|
|
35
35
|
white-space: nowrap;
|
|
36
36
|
vertical-align: middle;
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
color: var(--accent);
|
|
40
|
-
background: var(--accent-subtle);
|
|
37
|
+
color: var(--color-text);
|
|
38
|
+
background: transparent;
|
|
41
39
|
}
|
|
42
40
|
|
|
43
41
|
|
|
@@ -47,8 +45,9 @@
|
|
|
47
45
|
|
|
48
46
|
/* Filled - solid accent background */
|
|
49
47
|
.badge[data-variant="filled"] {
|
|
50
|
-
color: var(--
|
|
48
|
+
color: var(--on-accent);
|
|
51
49
|
background: var(--accent);
|
|
50
|
+
border-color: transparent;
|
|
52
51
|
}
|
|
53
52
|
|
|
54
53
|
/* Outline - border only */
|
|
@@ -61,6 +60,7 @@
|
|
|
61
60
|
.badge[data-variant="muted"] {
|
|
62
61
|
color: var(--color-text-muted);
|
|
63
62
|
background: var(--color-surface);
|
|
63
|
+
border-color: transparent;
|
|
64
64
|
}
|
|
65
65
|
|
|
66
66
|
|
|
@@ -69,6 +69,8 @@
|
|
|
69
69
|
Semantic states for indicators
|
|
70
70
|
======================================== */
|
|
71
71
|
|
|
72
|
+
/* The status colours are text colours (4.5:1 on their own tint in light
|
|
73
|
+
and dark); filled badges use the status fill and its on-colour. */
|
|
72
74
|
.badge[data-status="good"] {
|
|
73
75
|
color: var(--color-success);
|
|
74
76
|
background: var(--color-success-subtle);
|
|
@@ -89,25 +91,24 @@
|
|
|
89
91
|
background: var(--color-info-subtle);
|
|
90
92
|
}
|
|
91
93
|
|
|
92
|
-
/* Status + filled combo */
|
|
93
94
|
.badge[data-status="good"][data-variant="filled"] {
|
|
94
|
-
color: var(--
|
|
95
|
-
background: var(--color-success);
|
|
95
|
+
color: var(--color-success-on);
|
|
96
|
+
background: var(--color-success-fill);
|
|
96
97
|
}
|
|
97
98
|
|
|
98
99
|
.badge[data-status="warning"][data-variant="filled"] {
|
|
99
|
-
color: var(--
|
|
100
|
-
background: var(--color-warning);
|
|
100
|
+
color: var(--color-warning-on);
|
|
101
|
+
background: var(--color-warning-fill);
|
|
101
102
|
}
|
|
102
103
|
|
|
103
104
|
.badge[data-status="error"][data-variant="filled"] {
|
|
104
|
-
color: var(--
|
|
105
|
-
background: var(--color-error);
|
|
105
|
+
color: var(--color-error-on);
|
|
106
|
+
background: var(--color-error-fill);
|
|
106
107
|
}
|
|
107
108
|
|
|
108
109
|
.badge[data-status="info"][data-variant="filled"] {
|
|
109
|
-
color: var(--
|
|
110
|
-
background: var(--color-info);
|
|
110
|
+
color: var(--color-info-on);
|
|
111
|
+
background: var(--color-info-fill);
|
|
111
112
|
}
|
|
112
113
|
|
|
113
114
|
|
|
@@ -116,14 +117,13 @@
|
|
|
116
117
|
======================================== */
|
|
117
118
|
|
|
118
119
|
.badge[data-size="sm"] {
|
|
119
|
-
padding:
|
|
120
|
-
font-size:
|
|
121
|
-
letter-spacing: var(--tracking-wider);
|
|
120
|
+
padding: 0.2em 0.45em;
|
|
121
|
+
font-size: 0.6875rem;
|
|
122
122
|
}
|
|
123
123
|
|
|
124
124
|
.badge[data-size="lg"] {
|
|
125
|
-
padding:
|
|
126
|
-
font-size: var(--
|
|
125
|
+
padding: 0.5em 0.8em;
|
|
126
|
+
font-size: var(--step--1);
|
|
127
127
|
}
|
|
128
128
|
|
|
129
129
|
|
|
@@ -151,32 +151,9 @@
|
|
|
151
151
|
min-inline-size: 1.5rem;
|
|
152
152
|
justify-content: center;
|
|
153
153
|
padding: var(--space-1);
|
|
154
|
-
border-radius: var(--radius-full);
|
|
155
154
|
font-variant-numeric: tabular-nums;
|
|
156
155
|
}
|
|
157
156
|
|
|
158
157
|
|
|
159
|
-
/* ========================================
|
|
160
|
-
THEME-SPECIFIC STYLES
|
|
161
|
-
======================================== */
|
|
162
|
-
|
|
163
|
-
/* Still: square badges */
|
|
164
|
-
[data-motion="still"] .badge {
|
|
165
|
-
border-radius: 0;
|
|
166
|
-
letter-spacing: var(--tracking-wider);
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
/* Brutalist: hard edges, bold */
|
|
170
|
-
[data-motion="brutalist"] .badge {
|
|
171
|
-
border-radius: 0;
|
|
172
|
-
text-transform: uppercase;
|
|
173
|
-
font-weight: var(--weight-bold);
|
|
174
|
-
border: 2px solid currentColor;
|
|
175
|
-
background: transparent;
|
|
176
|
-
}
|
|
177
158
|
|
|
178
|
-
/* Tsunami: asymmetric corners */
|
|
179
|
-
[data-motion="tsunami"] .badge {
|
|
180
|
-
border-radius: var(--radius-asymmetric, 0 12px 0 0);
|
|
181
|
-
}
|
|
182
159
|
}
|