opui-css 5.4.0 → 5.4.2
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/CHANGELOG.md +13 -1
- package/MIGRATING.md +5 -5
- package/README.md +4 -3
- package/components/AGENTS.md +4 -4
- package/components/Avatar/types.d.vue.ts +6 -5
- package/components/Badge/Badge.vue +4 -3
- package/components/Badge/types.d.vue.ts +2 -2
- package/components/Badge/types.ts +4 -0
- package/core/utils.css +2 -3
- package/css/components/accordion.css +7 -7
- package/css/components/badge.css +5 -5
- package/css/components/button-group.css +15 -29
- package/css/components/button.css +14 -30
- package/css/components/card.css +7 -6
- package/css/components/drawer.css +1 -3
- package/css/components/form.css +4 -5
- package/css/components/icon-button.css +12 -29
- package/css/components/range.css +8 -27
- package/css/components/select.css +8 -9
- package/css/components/toast.css +0 -3
- package/css/components/tooltip.css +6 -8
- package/css/components/typography.css +25 -30
- package/css/js/checkbox.js +1 -1
- package/css/theme.css +4 -5
- package/dist/opui.components.css +112 -191
- package/dist/opui.components.css.map +1 -1
- package/dist/opui.css +117 -198
- package/dist/opui.css.map +1 -1
- package/package.json +2 -2
package/dist/opui.components.css
CHANGED
|
@@ -16,23 +16,15 @@
|
|
|
16
16
|
--_accent-tonal: var(--_color-tonal);
|
|
17
17
|
--_accent-tonal-contrast: var(--_color);
|
|
18
18
|
|
|
19
|
-
--_default-hover-bg-color: light-dark(
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
)
|
|
27
|
-
|
|
28
|
-
--_filled-hover-bg-color: light-dark(
|
|
29
|
-
oklch(from var(--_accent) calc(l + 0.2) c h),
|
|
30
|
-
oklch(from var(--_accent) calc(l - 0.1) c h)
|
|
31
|
-
);
|
|
32
|
-
--_filled-active-bg-color: light-dark(
|
|
33
|
-
oklch(from var(--_accent) calc(l + 0.3) c h),
|
|
34
|
-
oklch(from var(--_accent) calc(l - 0.15) c h)
|
|
35
|
-
);
|
|
19
|
+
--_default-hover-bg-color: light-dark(oklch(from var(--_accent) l 0.01 h / 10%),
|
|
20
|
+
oklch(from var(--_accent) l 0.01 h / 20%));
|
|
21
|
+
--_default-active-bg-color: light-dark(oklch(from var(--_accent) l 0.06 h / 20%),
|
|
22
|
+
oklch(from var(--_accent) l 0.06 h / 30%));
|
|
23
|
+
|
|
24
|
+
--_filled-hover-bg-color: light-dark(oklch(from var(--_accent) calc(l + 0.2) c h),
|
|
25
|
+
oklch(from var(--_accent) calc(l - 0.1) c h));
|
|
26
|
+
--_filled-active-bg-color: light-dark(oklch(from var(--_accent) calc(l + 0.3) c h),
|
|
27
|
+
oklch(from var(--_accent) calc(l - 0.15) c h));
|
|
36
28
|
--_outlined-active-bg-color: var(--_filled-active-bg-color);
|
|
37
29
|
|
|
38
30
|
--_bg-color: transparent;
|
|
@@ -67,11 +59,6 @@
|
|
|
67
59
|
box-shadow calc(0.1s * var(--_motion)) ease;
|
|
68
60
|
user-select: none;
|
|
69
61
|
|
|
70
|
-
/* Colors — shared interaction model for critical and primary.
|
|
71
|
-
Each color modifier below only swaps --_color; the tonal surface,
|
|
72
|
-
contrast text, and hover/active strategy are identical.
|
|
73
|
-
The .critical scope class in theme.css redirects --palette-source so
|
|
74
|
-
--color-6 below becomes a tint of the active color. */
|
|
75
62
|
&.ui-critical,
|
|
76
63
|
&.ui-primary {
|
|
77
64
|
--_color-contrast: var(--gray-1);
|
|
@@ -97,11 +84,9 @@
|
|
|
97
84
|
|
|
98
85
|
/* Disabled */
|
|
99
86
|
&:where([disabled]) {
|
|
100
|
-
--_text-color: color-mix(
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
var(--surface-default)
|
|
104
|
-
);
|
|
87
|
+
--_text-color: color-mix(in oklch,
|
|
88
|
+
var(--text-muted) 50%,
|
|
89
|
+
var(--surface-default));
|
|
105
90
|
|
|
106
91
|
cursor: not-allowed;
|
|
107
92
|
opacity: 0.64;
|
|
@@ -139,8 +124,7 @@
|
|
|
139
124
|
line-height: 1.2;
|
|
140
125
|
}
|
|
141
126
|
|
|
142
|
-
/* Sizes
|
|
143
|
-
Override --button-size-* in a parent scope to resize an entire region. */
|
|
127
|
+
/* Sizes */
|
|
144
128
|
&.ui-x-small {
|
|
145
129
|
--_min-height: var(--button-size-x-small);
|
|
146
130
|
--_font-size: var(--font-size-0);
|
|
@@ -214,7 +198,7 @@
|
|
|
214
198
|
}
|
|
215
199
|
}
|
|
216
200
|
|
|
217
|
-
/*
|
|
201
|
+
/* File input */
|
|
218
202
|
:where(input[type="file"]) {
|
|
219
203
|
align-self: flex-start;
|
|
220
204
|
border: var(--border-size-1) solid var(--surface-filled);
|
|
@@ -357,22 +341,14 @@
|
|
|
357
341
|
--_accent-contrast: var(--_color-contrast);
|
|
358
342
|
--_accent-tonal: var(--_color-tonal);
|
|
359
343
|
--_accent-tonal-contrast: var(--_color);
|
|
360
|
-
--_default-hover-bg-color: light-dark(
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
--
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
--_filled-hover-bg-color: light-dark(
|
|
369
|
-
oklch(from var(--_accent) calc(l + 0.2) c h),
|
|
370
|
-
oklch(from var(--_accent) calc(l - 0.1) c h)
|
|
371
|
-
);
|
|
372
|
-
--_filled-active-bg-color: light-dark(
|
|
373
|
-
oklch(from var(--_accent) calc(l + 0.3) c h),
|
|
374
|
-
oklch(from var(--_accent) calc(l - 0.15) c h)
|
|
375
|
-
);
|
|
344
|
+
--_default-hover-bg-color: light-dark(oklch(from var(--_accent) l 0.01 h / 10%),
|
|
345
|
+
oklch(from var(--_accent) l 0.01 h / 20%));
|
|
346
|
+
--_default-active-bg-color: light-dark(oklch(from var(--_accent) l 0.06 h / 20%),
|
|
347
|
+
oklch(from var(--_accent) l 0.06 h / 30%));
|
|
348
|
+
--_filled-hover-bg-color: light-dark(oklch(from var(--_accent) calc(l + 0.2) c h),
|
|
349
|
+
oklch(from var(--_accent) calc(l - 0.1) c h));
|
|
350
|
+
--_filled-active-bg-color: light-dark(oklch(from var(--_accent) calc(l + 0.3) c h),
|
|
351
|
+
oklch(from var(--_accent) calc(l - 0.15) c h));
|
|
376
352
|
--_outlined-active-bg-color: var(--_filled-active-bg-color);
|
|
377
353
|
|
|
378
354
|
--_bg-color: transparent;
|
|
@@ -421,11 +397,6 @@
|
|
|
421
397
|
background-color calc(0.1s * var(--_motion)) ease;
|
|
422
398
|
}
|
|
423
399
|
|
|
424
|
-
/* Colors — shared interaction model for critical and primary.
|
|
425
|
-
Each color modifier below only swaps --_color; the tonal surface,
|
|
426
|
-
contrast text, and hover/active strategy are identical.
|
|
427
|
-
The .critical scope class in theme.css redirects --palette-source so
|
|
428
|
-
--color-6 below becomes a tint of the active color. */
|
|
429
400
|
&.ui-critical,
|
|
430
401
|
&.ui-primary {
|
|
431
402
|
--_color-contrast: var(--gray-1);
|
|
@@ -453,20 +424,16 @@
|
|
|
453
424
|
&:where(:not([disabled])) {
|
|
454
425
|
&:where(:not(:active):hover) {
|
|
455
426
|
&::before {
|
|
456
|
-
background-color: var(
|
|
457
|
-
|
|
458
|
-
var(--_default-hover-bg-color)
|
|
459
|
-
);
|
|
427
|
+
background-color: var(--_interaction-hover-color,
|
|
428
|
+
var(--_default-hover-bg-color));
|
|
460
429
|
}
|
|
461
430
|
}
|
|
462
431
|
|
|
463
432
|
&:where(:hover:active),
|
|
464
433
|
&[aria-current="page"] {
|
|
465
434
|
&::before {
|
|
466
|
-
background-color: var(
|
|
467
|
-
|
|
468
|
-
var(--_default-active-bg-color)
|
|
469
|
-
);
|
|
435
|
+
background-color: var(--_interaction-active-color,
|
|
436
|
+
var(--_default-active-bg-color));
|
|
470
437
|
}
|
|
471
438
|
}
|
|
472
439
|
}
|
|
@@ -888,7 +855,7 @@
|
|
|
888
855
|
--_card-border-width: 1px;
|
|
889
856
|
}
|
|
890
857
|
|
|
891
|
-
|
|
858
|
+
&> :where(hgroup, .ui-content) {
|
|
892
859
|
padding-inline: var(--size-3);
|
|
893
860
|
|
|
894
861
|
&:last-child {
|
|
@@ -897,11 +864,12 @@
|
|
|
897
864
|
}
|
|
898
865
|
|
|
899
866
|
/* Header */
|
|
900
|
-
|
|
867
|
+
&>hgroup {
|
|
901
868
|
padding-block: var(--size-3) 0;
|
|
902
869
|
|
|
903
870
|
/* Top paragraph */
|
|
904
|
-
|
|
871
|
+
&>p:first-of-type:first-child {
|
|
872
|
+
font-size: var(--font-size-0);
|
|
905
873
|
line-height: 1.3;
|
|
906
874
|
}
|
|
907
875
|
|
|
@@ -910,18 +878,18 @@
|
|
|
910
878
|
}
|
|
911
879
|
|
|
912
880
|
/* Bottom paragraph */
|
|
913
|
-
|
|
881
|
+
&>p:last-of-type:last-child:not(:first-child) {
|
|
914
882
|
font-size: var(--font-size-1);
|
|
915
883
|
}
|
|
916
884
|
}
|
|
917
885
|
|
|
918
886
|
/* Content */
|
|
919
|
-
|
|
887
|
+
&>.ui-content:where(:only-child, :first-child) {
|
|
920
888
|
padding-block: var(--size-3) var(--size-4);
|
|
921
889
|
}
|
|
922
890
|
|
|
923
891
|
/* Actions */
|
|
924
|
-
|
|
892
|
+
&>.ui-actions {
|
|
925
893
|
display: flex;
|
|
926
894
|
gap: var(--size-2);
|
|
927
895
|
margin-block: var(--size-2) 0;
|
|
@@ -1867,9 +1835,6 @@
|
|
|
1867
1835
|
--_motion: var(--motion, 1);
|
|
1868
1836
|
display: grid;
|
|
1869
1837
|
gap: var(--size-1) 0;
|
|
1870
|
-
/* Two-column base so the optional .value cell can sit next to the
|
|
1871
|
-
label on row 1. Children that span the full width keep using
|
|
1872
|
-
`grid-column: 1/-1`, so this is backwards compatible. */
|
|
1873
1838
|
grid-template-columns: 1fr auto;
|
|
1874
1839
|
position: relative;
|
|
1875
1840
|
|
|
@@ -1881,8 +1846,6 @@
|
|
|
1881
1846
|
grid-row: 1;
|
|
1882
1847
|
}
|
|
1883
1848
|
|
|
1884
|
-
/* Live current-value readout. Pairs with the <output> element
|
|
1885
|
-
rendered by the Range component (or hand-written .value markup). */
|
|
1886
1849
|
:where(.ui-value) {
|
|
1887
1850
|
color: var(--text-muted);
|
|
1888
1851
|
font-size: var(--font-size-0);
|
|
@@ -1921,7 +1884,7 @@
|
|
|
1921
1884
|
margin-top: calc(var(--size-1) * -1);
|
|
1922
1885
|
padding-inline: calc(3ex / 2);
|
|
1923
1886
|
|
|
1924
|
-
|
|
1887
|
+
&>option {
|
|
1925
1888
|
display: flex;
|
|
1926
1889
|
inline-size: 0;
|
|
1927
1890
|
justify-content: center;
|
|
@@ -1985,9 +1948,6 @@
|
|
|
1985
1948
|
min-inline-size: 25ch;
|
|
1986
1949
|
}
|
|
1987
1950
|
|
|
1988
|
-
/* In spread mode, the value sits below the slider in col 2
|
|
1989
|
-
(where end-text would normally land). When end-text is also
|
|
1990
|
-
present it shifts down a row to avoid collision. */
|
|
1991
1951
|
:where(.ui-value) {
|
|
1992
1952
|
grid-column: 2;
|
|
1993
1953
|
grid-row: 2;
|
|
@@ -2004,8 +1964,6 @@
|
|
|
2004
1964
|
grid-row: 2;
|
|
2005
1965
|
}
|
|
2006
1966
|
|
|
2007
|
-
/* When both datalist and end-text exist, push end-text below the datalist
|
|
2008
|
-
so they don't collide on the same grid cell. */
|
|
2009
1967
|
&:has(datalist) :where(.ui-end-text) {
|
|
2010
1968
|
grid-row: 3;
|
|
2011
1969
|
}
|
|
@@ -2029,9 +1987,6 @@
|
|
|
2029
1987
|
grid-row: 1;
|
|
2030
1988
|
}
|
|
2031
1989
|
|
|
2032
|
-
/* Share row 1 with the label: the label's text stays left-aligned
|
|
2033
|
-
in its full-width cell, while the value shrinks to fit and
|
|
2034
|
-
right-aligns. Visually reads as a "[name ........ value]" row. */
|
|
2035
1990
|
:where(.ui-value) {
|
|
2036
1991
|
grid-row: 1;
|
|
2037
1992
|
justify-self: end;
|
|
@@ -2102,11 +2057,9 @@
|
|
|
2102
2057
|
/* Track */
|
|
2103
2058
|
&::-webkit-slider-runnable-track {
|
|
2104
2059
|
appearance: none;
|
|
2105
|
-
background: linear-gradient(
|
|
2106
|
-
|
|
2107
|
-
|
|
2108
|
-
var(--_track-color) 0%
|
|
2109
|
-
);
|
|
2060
|
+
background: linear-gradient(to right,
|
|
2061
|
+
var(--_track-fill-color) var(--_track-fill, 0%),
|
|
2062
|
+
var(--_track-color) 0%);
|
|
2110
2063
|
block-size: var(--_track-height);
|
|
2111
2064
|
border-radius: var(--_track-radius);
|
|
2112
2065
|
}
|
|
@@ -2132,8 +2085,7 @@
|
|
|
2132
2085
|
block-size: var(--_thumb-size);
|
|
2133
2086
|
border: 3px solid var(--surface-default);
|
|
2134
2087
|
border-radius: 50%;
|
|
2135
|
-
box-shadow: 0 0 0 var(--_thumb-highlight-size)
|
|
2136
|
-
var(--_thumb-highlight-color);
|
|
2088
|
+
box-shadow: 0 0 0 var(--_thumb-highlight-size) var(--_thumb-highlight-color);
|
|
2137
2089
|
cursor: ew-resize;
|
|
2138
2090
|
inline-size: var(--_thumb-size);
|
|
2139
2091
|
margin-block-start: var(--_thumb-offset);
|
|
@@ -2151,8 +2103,7 @@
|
|
|
2151
2103
|
block-size: var(--_thumb-size);
|
|
2152
2104
|
border: 3px solid var(--surface-default);
|
|
2153
2105
|
border-radius: 50%;
|
|
2154
|
-
box-shadow: 0 0 0 var(--_thumb-highlight-size)
|
|
2155
|
-
var(--_thumb-highlight-color);
|
|
2106
|
+
box-shadow: 0 0 0 var(--_thumb-highlight-size) var(--_thumb-highlight-color);
|
|
2156
2107
|
cursor: ew-resize;
|
|
2157
2108
|
inline-size: var(--_thumb-size);
|
|
2158
2109
|
margin-block-start: var(--_thumb-offset);
|
|
@@ -2177,10 +2128,8 @@
|
|
|
2177
2128
|
|
|
2178
2129
|
&:active {
|
|
2179
2130
|
--_thumb-highlight-size: var(--size-2);
|
|
2180
|
-
--_track-color: light-dark(
|
|
2181
|
-
|
|
2182
|
-
oklch(from var(--field-border-color) calc(l * 1.1) c h)
|
|
2183
|
-
);
|
|
2131
|
+
--_track-color: light-dark(oklch(from var(--field-border-color) calc(l * 0.9) c h),
|
|
2132
|
+
oklch(from var(--field-border-color) calc(l * 1.1) c h));
|
|
2184
2133
|
}
|
|
2185
2134
|
}
|
|
2186
2135
|
|
|
@@ -2577,7 +2526,6 @@
|
|
|
2577
2526
|
}
|
|
2578
2527
|
}
|
|
2579
2528
|
|
|
2580
|
-
/* Severity icons via CSS data URIs — keeps icon assets out of JS strings. */
|
|
2581
2529
|
&[data-severity="success"] .ui-icon {
|
|
2582
2530
|
background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%2322c55e' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M22 11.08V12a10 10 0 1 1-5.93-9.14'/><path d='m9 11 3 3L22 4'/></svg>");
|
|
2583
2531
|
}
|
|
@@ -2607,8 +2555,6 @@
|
|
|
2607
2555
|
}
|
|
2608
2556
|
}
|
|
2609
2557
|
|
|
2610
|
-
/* Identity keyframe — only purpose is to delay the exit animation by the
|
|
2611
|
-
author-defined duration. */
|
|
2612
2558
|
@keyframes toast-hold {
|
|
2613
2559
|
from {
|
|
2614
2560
|
opacity: 1;
|
|
@@ -2689,10 +2635,8 @@
|
|
|
2689
2635
|
|
|
2690
2636
|
/** Overline */
|
|
2691
2637
|
:where(.ui-overline) {
|
|
2692
|
-
color: light-dark(
|
|
2693
|
-
|
|
2694
|
-
oklch(from var(--text-muted) calc(l * 0.75) c h)
|
|
2695
|
-
);
|
|
2638
|
+
color: light-dark(oklch(from var(--text-muted) calc(l * 1.25) c h),
|
|
2639
|
+
oklch(from var(--text-muted) calc(l * 0.75) c h));
|
|
2696
2640
|
font-size: var(--font-size-0);
|
|
2697
2641
|
font-weight: 500;
|
|
2698
2642
|
letter-spacing: 0.06em;
|
|
@@ -2700,20 +2644,18 @@
|
|
|
2700
2644
|
}
|
|
2701
2645
|
|
|
2702
2646
|
:where(.ui-hgroup) {
|
|
2703
|
-
|
|
2647
|
+
&>p {
|
|
2704
2648
|
margin: 0;
|
|
2705
2649
|
}
|
|
2706
2650
|
|
|
2707
|
-
|
|
2651
|
+
&> :where(h1, h2, h3, h4, h5, h6) {
|
|
2708
2652
|
margin-block: 0 0.4em;
|
|
2709
2653
|
}
|
|
2710
2654
|
|
|
2711
2655
|
/* First p element (overline) */
|
|
2712
|
-
|
|
2713
|
-
color: light-dark(
|
|
2714
|
-
|
|
2715
|
-
oklch(from var(--text-muted) calc(l * 0.75) c h)
|
|
2716
|
-
);
|
|
2656
|
+
&>p:first-of-type:first-child {
|
|
2657
|
+
color: light-dark(oklch(from var(--text-muted) calc(l * 1.25) c h),
|
|
2658
|
+
oklch(from var(--text-muted) calc(l * 0.75) c h));
|
|
2717
2659
|
font-size: var(--font-size-0);
|
|
2718
2660
|
font-weight: 500;
|
|
2719
2661
|
letter-spacing: 0.06em;
|
|
@@ -2721,13 +2663,13 @@
|
|
|
2721
2663
|
}
|
|
2722
2664
|
|
|
2723
2665
|
/* Body paragraphs after the heading */
|
|
2724
|
-
|
|
2666
|
+
&>p:not(:first-of-type:first-child) {
|
|
2725
2667
|
color: oklch(from currentColor l c h / 75%);
|
|
2726
2668
|
font-size: var(--font-size-3);
|
|
2727
2669
|
line-height: 1.6;
|
|
2728
2670
|
}
|
|
2729
2671
|
|
|
2730
|
-
|
|
2672
|
+
&>p+p {
|
|
2731
2673
|
margin-block-start: 0.75em;
|
|
2732
2674
|
}
|
|
2733
2675
|
}
|
|
@@ -2739,7 +2681,7 @@
|
|
|
2739
2681
|
line-height: 1.6;
|
|
2740
2682
|
}
|
|
2741
2683
|
|
|
2742
|
-
/* Inline text elements
|
|
2684
|
+
/* Inline text elements - class utilities */
|
|
2743
2685
|
:where(.ui-u, .ui-abbr, .ui-dfn) {
|
|
2744
2686
|
text-decoration: underline;
|
|
2745
2687
|
text-underline-offset: 1px;
|
|
@@ -2864,7 +2806,7 @@
|
|
|
2864
2806
|
scrollbar-width: thin;
|
|
2865
2807
|
white-space: pre;
|
|
2866
2808
|
|
|
2867
|
-
>
|
|
2809
|
+
>code {
|
|
2868
2810
|
background: none;
|
|
2869
2811
|
border-radius: 0;
|
|
2870
2812
|
color: inherit;
|
|
@@ -2891,6 +2833,7 @@
|
|
|
2891
2833
|
text-underline-offset: 2px;
|
|
2892
2834
|
|
|
2893
2835
|
&[href] {
|
|
2836
|
+
|
|
2894
2837
|
&:hover,
|
|
2895
2838
|
&:focus-visible {
|
|
2896
2839
|
color: var(--primary-light);
|
|
@@ -2940,7 +2883,7 @@
|
|
|
2940
2883
|
overflow-x: auto;
|
|
2941
2884
|
scrollbar-width: thin;
|
|
2942
2885
|
|
|
2943
|
-
>
|
|
2886
|
+
>code {
|
|
2944
2887
|
background: none;
|
|
2945
2888
|
border-radius: 0;
|
|
2946
2889
|
color: inherit;
|
|
@@ -2964,7 +2907,7 @@
|
|
|
2964
2907
|
font-weight: 700;
|
|
2965
2908
|
text-wrap: pretty;
|
|
2966
2909
|
|
|
2967
|
-
|
|
2910
|
+
&+*:not(&) {
|
|
2968
2911
|
margin-block-start: 0;
|
|
2969
2912
|
}
|
|
2970
2913
|
}
|
|
@@ -3011,10 +2954,8 @@
|
|
|
3011
2954
|
|
|
3012
2955
|
/** Overline */
|
|
3013
2956
|
:is(.ui-overline, hgroup p:first-of-type:first-child) {
|
|
3014
|
-
color: light-dark(
|
|
3015
|
-
|
|
3016
|
-
oklch(from var(--text-muted) calc(l * 0.75) c h)
|
|
3017
|
-
);
|
|
2957
|
+
color: light-dark(oklch(from var(--text-muted) calc(l * 1.25) c h),
|
|
2958
|
+
oklch(from var(--text-muted) calc(l * 0.75) c h));
|
|
3018
2959
|
font-size: var(--font-size-0);
|
|
3019
2960
|
font-weight: 500;
|
|
3020
2961
|
letter-spacing: 0.06em;
|
|
@@ -3022,26 +2963,26 @@
|
|
|
3022
2963
|
}
|
|
3023
2964
|
|
|
3024
2965
|
hgroup {
|
|
3025
|
-
|
|
2966
|
+
&>p {
|
|
3026
2967
|
margin: 0;
|
|
3027
2968
|
}
|
|
3028
2969
|
|
|
3029
|
-
|
|
2970
|
+
&> :where(h1, h2, h3, h4, h5, h6) {
|
|
3030
2971
|
margin-block: 0 0.4em;
|
|
3031
2972
|
}
|
|
3032
2973
|
|
|
3033
|
-
|
|
2974
|
+
&+* {
|
|
3034
2975
|
margin-block-start: 3em;
|
|
3035
2976
|
}
|
|
3036
2977
|
|
|
3037
2978
|
/* Body paragraphs after the heading */
|
|
3038
|
-
|
|
2979
|
+
&>p:not(:first-of-type:first-child) {
|
|
3039
2980
|
color: oklch(from currentColor l c h / 75%);
|
|
3040
2981
|
font-size: var(--font-size-3);
|
|
3041
2982
|
line-height: 1.6;
|
|
3042
2983
|
}
|
|
3043
2984
|
|
|
3044
|
-
|
|
2985
|
+
&>p+p {
|
|
3045
2986
|
margin-block-start: 0.75em;
|
|
3046
2987
|
}
|
|
3047
2988
|
}
|
|
@@ -3103,7 +3044,7 @@
|
|
|
3103
3044
|
margin-block: var(--size-7);
|
|
3104
3045
|
place-items: center;
|
|
3105
3046
|
|
|
3106
|
-
|
|
3047
|
+
&>* {
|
|
3107
3048
|
margin-block: 0;
|
|
3108
3049
|
}
|
|
3109
3050
|
|
|
@@ -3114,18 +3055,18 @@
|
|
|
3114
3055
|
}
|
|
3115
3056
|
|
|
3116
3057
|
/* Remove top margin from first child */
|
|
3117
|
-
|
|
3058
|
+
&> :first-child {
|
|
3118
3059
|
margin-block-start: 0;
|
|
3119
3060
|
}
|
|
3120
3061
|
|
|
3121
3062
|
/* Remove bottom margin from last child */
|
|
3122
|
-
|
|
3063
|
+
&> :last-child {
|
|
3123
3064
|
margin-block-end: 0;
|
|
3124
3065
|
}
|
|
3125
3066
|
|
|
3126
3067
|
/* Horizontal rules */
|
|
3127
3068
|
hr {
|
|
3128
|
-
|
|
3069
|
+
&+* {
|
|
3129
3070
|
margin-block-start: 0;
|
|
3130
3071
|
}
|
|
3131
3072
|
}
|
|
@@ -3240,21 +3181,21 @@
|
|
|
3240
3181
|
|
|
3241
3182
|
/* Floating wrapper: traditional inset-based positioning so this works
|
|
3242
3183
|
in browsers without position-area support (Firefox, older Safari). */
|
|
3243
|
-
|
|
3184
|
+
&>.ui-anchor-floating:not([popover]) {
|
|
3244
3185
|
inset: var(--_badge-inset);
|
|
3245
3186
|
position-anchor: auto;
|
|
3246
3187
|
position-area: none;
|
|
3247
3188
|
}
|
|
3248
3189
|
|
|
3249
3190
|
/* Indicator */
|
|
3250
|
-
|
|
3191
|
+
&>.ui-anchor-floating>.ui-badge-indicator {
|
|
3251
3192
|
background-color: var(--_bg-color);
|
|
3252
3193
|
block-size: var(--_size);
|
|
3253
3194
|
border: 2px solid var(--_border-color);
|
|
3254
3195
|
border-radius: var(--radius-round);
|
|
3255
3196
|
color: var(--_text-color);
|
|
3256
3197
|
display: grid;
|
|
3257
|
-
font-size:
|
|
3198
|
+
font-size: var(--font-size-0);
|
|
3258
3199
|
font-weight: 500;
|
|
3259
3200
|
inline-size: max-content;
|
|
3260
3201
|
line-height: normal;
|
|
@@ -3316,7 +3257,7 @@
|
|
|
3316
3257
|
--_anchor-ty: var(--_dot-size);
|
|
3317
3258
|
}
|
|
3318
3259
|
|
|
3319
|
-
&.ui-dot
|
|
3260
|
+
&.ui-dot>.ui-anchor-floating>.ui-badge-indicator {
|
|
3320
3261
|
block-size: var(--_dot-size);
|
|
3321
3262
|
inline-size: var(--_dot-size);
|
|
3322
3263
|
min-inline-size: var(--_dot-size);
|
|
@@ -3324,7 +3265,7 @@
|
|
|
3324
3265
|
}
|
|
3325
3266
|
|
|
3326
3267
|
/* Visibility */
|
|
3327
|
-
&.ui-invisible
|
|
3268
|
+
&.ui-invisible>.ui-anchor-floating>.ui-badge-indicator {
|
|
3328
3269
|
opacity: 0;
|
|
3329
3270
|
pointer-events: none;
|
|
3330
3271
|
}
|
|
@@ -3344,10 +3285,8 @@
|
|
|
3344
3285
|
border-radius: 0;
|
|
3345
3286
|
|
|
3346
3287
|
/* button.css > --_accent-tonal */
|
|
3347
|
-
--_divider-color: light-dark(
|
|
3348
|
-
|
|
3349
|
-
oklch(from var(--_accent-tonal) calc(l + 0.1) c h)
|
|
3350
|
-
);
|
|
3288
|
+
--_divider-color: light-dark(oklch(from var(--_accent-tonal) calc(l - 0.1) c h),
|
|
3289
|
+
oklch(from var(--_accent-tonal) calc(l + 0.1) c h));
|
|
3351
3290
|
|
|
3352
3291
|
&.ui-outlined {
|
|
3353
3292
|
--_divider-color: var(--_border-color);
|
|
@@ -3361,9 +3300,7 @@
|
|
|
3361
3300
|
outline-offset: -4px;
|
|
3362
3301
|
}
|
|
3363
3302
|
|
|
3364
|
-
/* Color
|
|
3365
|
-
The .critical scope class in theme.css redirects --palette-source so
|
|
3366
|
-
--color-6 below becomes a tint of the active color. */
|
|
3303
|
+
/* Color inherited from Button Group. */
|
|
3367
3304
|
:where(.ui-button-group.ui-critical, .ui-button-group.ui-primary) & {
|
|
3368
3305
|
--_color-contrast: var(--gray-1);
|
|
3369
3306
|
--_color-tonal: var(--color-6);
|
|
@@ -3371,12 +3308,8 @@
|
|
|
3371
3308
|
--_default-hover-bg-color: oklch(from var(--_accent) l c h / 15%);
|
|
3372
3309
|
--_default-active-bg-color: oklch(from var(--_accent) l c h / 25%);
|
|
3373
3310
|
--_filled-hover-bg-color: oklch(from var(--_accent) calc(l - 0.1) c h);
|
|
3374
|
-
--_filled-active-bg-color: oklch(
|
|
3375
|
-
|
|
3376
|
-
);
|
|
3377
|
-
--_outlined-active-bg-color: oklch(
|
|
3378
|
-
from var(--_accent) calc(l - 0.1) c h
|
|
3379
|
-
);
|
|
3311
|
+
--_filled-active-bg-color: oklch(from var(--_accent) calc(l - 0.15) c h);
|
|
3312
|
+
--_outlined-active-bg-color: oklch(from var(--_accent) calc(l - 0.1) c h);
|
|
3380
3313
|
}
|
|
3381
3314
|
|
|
3382
3315
|
:where(.ui-button-group.ui-critical) & {
|
|
@@ -3440,10 +3373,8 @@
|
|
|
3440
3373
|
--_divider-color: currentColor;
|
|
3441
3374
|
|
|
3442
3375
|
:where(.ui-button-group.ui-critical, .ui-button-group.ui-primary) & {
|
|
3443
|
-
--_divider-color: light-dark(
|
|
3444
|
-
|
|
3445
|
-
oklch(from var(--_accent) calc(l + 0.1) c h)
|
|
3446
|
-
);
|
|
3376
|
+
--_divider-color: light-dark(oklch(from var(--_accent) calc(l - 0.1) c h),
|
|
3377
|
+
oklch(from var(--_accent) calc(l + 0.1) c h));
|
|
3447
3378
|
}
|
|
3448
3379
|
|
|
3449
3380
|
&:where(:not([disabled])) {
|
|
@@ -3471,17 +3402,15 @@
|
|
|
3471
3402
|
}
|
|
3472
3403
|
|
|
3473
3404
|
/* Siblings */
|
|
3474
|
-
|
|
3405
|
+
&+& {
|
|
3475
3406
|
border-inline-start-color: var(--_divider-color);
|
|
3476
3407
|
border-inline-width: 1px;
|
|
3477
3408
|
margin-inline-start: -1px;
|
|
3478
3409
|
|
|
3479
3410
|
&[disabled] {
|
|
3480
|
-
border-inline-start-color: color-mix(
|
|
3481
|
-
|
|
3482
|
-
|
|
3483
|
-
transparent
|
|
3484
|
-
);
|
|
3411
|
+
border-inline-start-color: color-mix(in oklch,
|
|
3412
|
+
var(--_divider-color) 40%,
|
|
3413
|
+
transparent);
|
|
3485
3414
|
}
|
|
3486
3415
|
}
|
|
3487
3416
|
}
|
|
@@ -3508,16 +3437,14 @@
|
|
|
3508
3437
|
border-end-end-radius: var(--_border-radius);
|
|
3509
3438
|
}
|
|
3510
3439
|
|
|
3511
|
-
|
|
3440
|
+
&+& {
|
|
3512
3441
|
border-block-start: 1px solid var(--_divider-color);
|
|
3513
3442
|
margin-block-start: -1px;
|
|
3514
3443
|
|
|
3515
3444
|
&[disabled] {
|
|
3516
|
-
border-block-start-color: color-mix(
|
|
3517
|
-
|
|
3518
|
-
|
|
3519
|
-
transparent
|
|
3520
|
-
);
|
|
3445
|
+
border-block-start-color: color-mix(in oklch,
|
|
3446
|
+
var(--_divider-color) 40%,
|
|
3447
|
+
transparent);
|
|
3521
3448
|
}
|
|
3522
3449
|
}
|
|
3523
3450
|
}
|
|
@@ -3595,7 +3522,7 @@
|
|
|
3595
3522
|
}
|
|
3596
3523
|
|
|
3597
3524
|
/* Layout */
|
|
3598
|
-
|
|
3525
|
+
&>summary {
|
|
3599
3526
|
background-color: inherit;
|
|
3600
3527
|
cursor: pointer;
|
|
3601
3528
|
font-weight: 700;
|
|
@@ -3620,17 +3547,17 @@
|
|
|
3620
3547
|
}
|
|
3621
3548
|
}
|
|
3622
3549
|
|
|
3623
|
-
&[open]
|
|
3550
|
+
&[open]>summary svg {
|
|
3624
3551
|
rotate: 180deg;
|
|
3625
3552
|
}
|
|
3626
3553
|
|
|
3627
|
-
|
|
3554
|
+
&>.ui-content {
|
|
3628
3555
|
margin-block-start: 0;
|
|
3629
3556
|
padding-block: var(--_content-padding-block);
|
|
3630
3557
|
padding-inline: var(--_content-padding-inline);
|
|
3631
3558
|
}
|
|
3632
3559
|
|
|
3633
|
-
|
|
3560
|
+
&>.ui-actions {
|
|
3634
3561
|
display: flex;
|
|
3635
3562
|
gap: var(--_actions-gap);
|
|
3636
3563
|
justify-content: end;
|
|
@@ -3655,12 +3582,12 @@
|
|
|
3655
3582
|
}
|
|
3656
3583
|
}
|
|
3657
3584
|
|
|
3658
|
-
|
|
3585
|
+
&>.ui-content {
|
|
3659
3586
|
margin-block: 0;
|
|
3660
3587
|
padding: 0;
|
|
3661
3588
|
}
|
|
3662
3589
|
|
|
3663
|
-
|
|
3590
|
+
&>details.ui-accordion {
|
|
3664
3591
|
--_border-color: transparent;
|
|
3665
3592
|
--_border-width: 0;
|
|
3666
3593
|
--_margin-inline: 0;
|
|
@@ -3669,7 +3596,7 @@
|
|
|
3669
3596
|
--_summary-padding-inline: var(--_item-summary-padding-inline);
|
|
3670
3597
|
|
|
3671
3598
|
/* Border between accordion items */
|
|
3672
|
-
|
|
3599
|
+
&+& {
|
|
3673
3600
|
border-block-start: 1px solid var(--_gutter-color);
|
|
3674
3601
|
border-radius: 0;
|
|
3675
3602
|
}
|
|
@@ -4267,9 +4194,7 @@ Lists meant to be used stand-alone or as part of Select elements
|
|
|
4267
4194
|
}
|
|
4268
4195
|
}
|
|
4269
4196
|
|
|
4270
|
-
/* Scroll-lock is provided by the shared `.ui-scroll-lock` utility in core/utils.css.
|
|
4271
|
-
This carve-out re-enables page scrolling when a transparent-backdrop drawer is
|
|
4272
|
-
open on wide viewports (where the drawer doesn't visually cover the page). */
|
|
4197
|
+
/* Scroll-lock is provided by the shared `.ui-scroll-lock` utility in core/utils.css. */
|
|
4273
4198
|
html:has(dialog.ui-drawer.ui-scroll-lock[open].ui-backdrop-transparent) {
|
|
4274
4199
|
overflow: unset;
|
|
4275
4200
|
overscroll-behavior: auto;
|
|
@@ -4282,6 +4207,7 @@ Lists meant to be used stand-alone or as part of Select elements
|
|
|
4282
4207
|
}
|
|
4283
4208
|
|
|
4284
4209
|
@layer components.extended {
|
|
4210
|
+
|
|
4285
4211
|
/* Form */
|
|
4286
4212
|
:where(.ui-form) {
|
|
4287
4213
|
display: grid;
|
|
@@ -4395,9 +4321,7 @@ Lists meant to be used stand-alone or as part of Select elements
|
|
|
4395
4321
|
gap: var(--size-4);
|
|
4396
4322
|
|
|
4397
4323
|
/* If it only has checkboxes, radios, or switches */
|
|
4398
|
-
&:has(> :where(.ui-checkbox, .ui-radio, .ui-switch)):not(
|
|
4399
|
-
:has(> :not(.ui-checkbox, .ui-radio, .ui-switch))
|
|
4400
|
-
) {
|
|
4324
|
+
&:has(> :where(.ui-checkbox, .ui-radio, .ui-switch)):not( :has(> :not(.ui-checkbox, .ui-radio, .ui-switch))) {
|
|
4401
4325
|
gap: var(--size-2);
|
|
4402
4326
|
}
|
|
4403
4327
|
|
|
@@ -4407,13 +4331,13 @@ Lists meant to be used stand-alone or as part of Select elements
|
|
|
4407
4331
|
flex-direction: row;
|
|
4408
4332
|
gap: var(--size-2);
|
|
4409
4333
|
|
|
4410
|
-
/* If it's not
|
|
4334
|
+
/* If it's not preceded by an hr */
|
|
4411
4335
|
&:not(hr + &) {
|
|
4412
4336
|
margin-block-start: var(--size-4);
|
|
4413
4337
|
}
|
|
4414
4338
|
}
|
|
4415
4339
|
|
|
4416
|
-
|
|
4340
|
+
&+& {
|
|
4417
4341
|
margin-block-start: var(--size-5);
|
|
4418
4342
|
}
|
|
4419
4343
|
|
|
@@ -4919,11 +4843,10 @@ Lists meant to be used stand-alone or as part of Select elements
|
|
|
4919
4843
|
transform: scale(0.9);
|
|
4920
4844
|
}
|
|
4921
4845
|
|
|
4922
|
-
transition:
|
|
4923
|
-
|
|
4924
|
-
|
|
4925
|
-
|
|
4926
|
-
scale calc(0.2s * var(--_motion)) var(--ease-3);
|
|
4846
|
+
transition: display calc(0.2s * var(--_motion)) allow-discrete,
|
|
4847
|
+
opacity calc(0.2s * var(--_motion)) var(--ease-3),
|
|
4848
|
+
overlay calc(0.2s * var(--_motion)) allow-discrete,
|
|
4849
|
+
scale calc(0.2s * var(--_motion)) var(--ease-3);
|
|
4927
4850
|
}
|
|
4928
4851
|
|
|
4929
4852
|
/* Animation off-stage styles */
|
|
@@ -4956,10 +4879,8 @@ Lists meant to be used stand-alone or as part of Select elements
|
|
|
4956
4879
|
[role="group"] {
|
|
4957
4880
|
label {
|
|
4958
4881
|
background-color: light-dark(var(--gray-3), var(--gray-13));
|
|
4959
|
-
color: light-dark(
|
|
4960
|
-
|
|
4961
|
-
oklch(from var(--text-primary) calc(l * 1.25) c h)
|
|
4962
|
-
);
|
|
4882
|
+
color: light-dark(oklch(from var(--text-primary) calc(l * 0.75) c h),
|
|
4883
|
+
oklch(from var(--text-primary) calc(l * 1.25) c h));
|
|
4963
4884
|
font-weight: 500;
|
|
4964
4885
|
overflow: hidden;
|
|
4965
4886
|
padding-inline: var(--size-2);
|
|
@@ -4982,6 +4903,7 @@ Lists meant to be used stand-alone or as part of Select elements
|
|
|
4982
4903
|
|
|
4983
4904
|
/* Option */
|
|
4984
4905
|
option {
|
|
4906
|
+
|
|
4985
4907
|
/* Checkmark */
|
|
4986
4908
|
/* TODO - checkmark should be the final version of the checkmark API. Follow the development of this and remove redundant psuedo stuff. */
|
|
4987
4909
|
&::check {
|
|
@@ -5004,6 +4926,7 @@ Lists meant to be used stand-alone or as part of Select elements
|
|
|
5004
4926
|
}
|
|
5005
4927
|
|
|
5006
4928
|
:where(.ui-select:has(select)) {
|
|
4929
|
+
|
|
5007
4930
|
/* Size */
|
|
5008
4931
|
&.ui-small {
|
|
5009
4932
|
button {
|
|
@@ -5153,7 +5076,7 @@ Lists meant to be used stand-alone or as part of Select elements
|
|
|
5153
5076
|
--_tooltip-color: light-dark(var(--gray-1), var(--gray-15));
|
|
5154
5077
|
--_tooltip-offset: var(--size-2);
|
|
5155
5078
|
|
|
5156
|
-
|
|
5079
|
+
&>.ui-anchor-floating {
|
|
5157
5080
|
background-color: var(--_tooltip-bg);
|
|
5158
5081
|
border-radius: var(--radius-2);
|
|
5159
5082
|
color: var(--_tooltip-color);
|
|
@@ -5175,18 +5098,16 @@ Lists meant to be used stand-alone or as part of Select elements
|
|
|
5175
5098
|
text-wrap: pretty;
|
|
5176
5099
|
}
|
|
5177
5100
|
|
|
5178
|
-
/*
|
|
5179
|
-
Anchored to the same --anchor so it flips together with the
|
|
5180
|
-
tooltip when position-try-fallbacks kicks in. */
|
|
5101
|
+
/* Arrow */
|
|
5181
5102
|
&.ui-with-arrow {
|
|
5182
5103
|
--_arrow-size: var(--size-2);
|
|
5183
5104
|
|
|
5184
|
-
|
|
5185
|
-
/*
|
|
5105
|
+
&>.ui-anchor-floating {
|
|
5106
|
+
/* Offset so the arrow doesn't overlap the trigger. */
|
|
5186
5107
|
--_tooltip-offset: calc(var(--size-2) + var(--_arrow-size) / 2);
|
|
5187
5108
|
}
|
|
5188
5109
|
|
|
5189
|
-
|
|
5110
|
+
&>.ui-anchor-floating::before {
|
|
5190
5111
|
background-color: var(--_tooltip-bg);
|
|
5191
5112
|
block-size: var(--_arrow-size);
|
|
5192
5113
|
content: "";
|
|
@@ -5200,7 +5121,7 @@ Lists meant to be used stand-alone or as part of Select elements
|
|
|
5200
5121
|
}
|
|
5201
5122
|
|
|
5202
5123
|
/* Fade */
|
|
5203
|
-
|
|
5124
|
+
&>.ui-anchor-floating[popover] {
|
|
5204
5125
|
opacity: 0;
|
|
5205
5126
|
transition:
|
|
5206
5127
|
display 0.15s allow-discrete,
|