@adia-ai/web-components 0.7.3 → 0.7.5
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 +31 -0
- package/components/accordion/accordion.css +2 -2
- package/components/action-list/action-list.css +2 -2
- package/components/agent-artifact/agent-artifact.css +31 -31
- package/components/agent-feedback-bar/agent-feedback-bar.css +10 -10
- package/components/agent-questions/agent-questions.css +59 -57
- package/components/agent-reasoning/agent-reasoning.css +54 -54
- package/components/agent-suggestions/agent-suggestions.css +4 -4
- package/components/agent-trace/agent-trace.css +53 -53
- package/components/alert/alert.css +53 -53
- package/components/avatar/avatar.css +27 -27
- package/components/badge/badge.css +56 -53
- package/components/block/block.css +16 -16
- package/components/blockquote/blockquote.css +16 -16
- package/components/breadcrumb/breadcrumb.css +23 -23
- package/components/button/button.css +123 -101
- package/components/calendar-grid/calendar-grid.css +95 -92
- package/components/calendar-picker/calendar-picker.css +141 -139
- package/components/canvas/canvas.css +12 -12
- package/components/card/card.css +83 -83
- package/components/chart/chart.css +218 -218
- package/components/chart-legend/chart-legend.css +26 -26
- package/components/check/check.css +40 -40
- package/components/code/code.css +125 -125
- package/components/col/col.css +15 -15
- package/components/color-picker/color-picker.css +55 -55
- package/components/combobox/combobox.css +64 -62
- package/components/command/command.css +91 -91
- package/components/context-menu/context-menu.css +1 -1
- package/components/date-range-picker/date-range-picker.css +59 -59
- package/components/datetime-picker/datetime-picker.css +25 -25
- package/components/demo-toggle/demo-toggle.css +27 -27
- package/components/description-list/description-list.css +18 -18
- package/components/divider/divider.css +24 -24
- package/components/embed/embed.css +6 -6
- package/components/empty-state/empty-state.css +29 -29
- package/components/feed/feed.css +12 -12
- package/components/field/field.css +28 -28
- package/components/field/field.test.js +2 -2
- package/components/fields/fields.css +5 -5
- package/components/grid/grid.a2ui.json +10 -0
- package/components/grid/grid.css +23 -5
- package/components/grid/grid.d.ts +4 -0
- package/components/grid/grid.yaml +13 -0
- package/components/heatmap/heatmap.css +61 -61
- package/components/icon/icon.css +12 -12
- package/components/image/image.css +14 -14
- package/components/inline-edit/inline-edit.css +16 -16
- package/components/inline-message/inline-message.css +16 -16
- package/components/input/input.css +69 -66
- package/components/inspector/inspector.css +6 -6
- package/components/integration-card/integration-card.css +41 -41
- package/components/integration-card/integration-card.test.js +4 -4
- package/components/kbd/kbd.css +47 -40
- package/components/link/link.css +12 -12
- package/components/list/list.css +8 -8
- package/components/list-window/list-window.css +10 -10
- package/components/loading-overlay/loading-overlay.css +17 -18
- package/components/loading-overlay/loading-overlay.test.js +8 -8
- package/components/mark/mark.css +16 -16
- package/components/menu/menu.css +9 -9
- package/components/modal/modal.class.js +5 -9
- package/components/modal/modal.css +43 -43
- package/components/nav/nav.css +40 -40
- package/components/nav-group/nav-group.css +54 -54
- package/components/nav-item/nav-item.css +44 -44
- package/components/noodles/noodles.css +31 -31
- package/components/number-format/number-format.css +4 -4
- package/components/option-card/option-card.css +70 -70
- package/components/otp-input/otp-input.css +29 -29
- package/components/page/page.a2ui.json +1 -1
- package/components/page/page.css +27 -27
- package/components/page/page.d.ts +1 -1
- package/components/page/page.yaml +1 -1
- package/components/pagination/pagination.css +6 -6
- package/components/pane/pane.css +57 -57
- package/components/password-strength/password-strength.css +32 -32
- package/components/pipeline-status/pipeline-status.css +67 -67
- package/components/popover/popover.css +11 -11
- package/components/preview/preview.css +21 -21
- package/components/progress/progress.css +23 -23
- package/components/progress-row/progress-row.css +17 -17
- package/components/qr-code/qr-code.css +4 -4
- package/components/radio/radio.css +39 -39
- package/components/range/range.css +58 -55
- package/components/rating/rating.css +28 -28
- package/components/relative-time/relative-time.css +6 -6
- package/components/richtext/richtext.css +133 -133
- package/components/row/row.css +19 -19
- package/components/search/search.css +5 -5
- package/components/segment/segment.css +29 -24
- package/components/segmented/segmented.css +30 -25
- package/components/select/select.css +95 -93
- package/components/skeleton/skeleton.css +14 -14
- package/components/skip-nav/skip-nav.css +4 -4
- package/components/slider/slider.css +61 -61
- package/components/spinner/spinner.css +40 -40
- package/components/spinner/spinner.test.js +10 -12
- package/components/stack/stack.css +11 -11
- package/components/stat/stat.css +27 -27
- package/components/step-progress/step-progress.css +20 -20
- package/components/stepper/stepper.css +29 -29
- package/components/stream/stream.css +12 -12
- package/components/swatch/swatch.css +68 -68
- package/components/swiper/swiper.class.js +5 -12
- package/components/swiper/swiper.css +57 -57
- package/components/switch/switch.css +53 -53
- package/components/table/table.css +166 -163
- package/components/table-toolbar/table-toolbar.css +33 -33
- package/components/tabs/tabs.css +54 -51
- package/components/tag/tag.css +74 -71
- package/components/tag/tag.test.js +14 -14
- package/components/tags-input/tags-input.css +51 -49
- package/components/text/text.css +44 -44
- package/components/textarea/textarea.css +49 -46
- package/components/time-picker/time-picker.css +47 -47
- package/components/timeline/timeline.css +54 -54
- package/components/toast/toast.css +58 -58
- package/components/toc/toc.css +28 -28
- package/components/toggle-group/toggle-group.css +9 -6
- package/components/toggle-scheme/toggle-scheme.css +2 -2
- package/components/toolbar/toolbar.css +18 -18
- package/components/tooltip/tooltip.css +2 -2
- package/components/tour/tour.css +4 -4
- package/components/tree/tree.css +37 -37
- package/components/upload/upload.css +49 -49
- package/dist/host.min.css +1 -0
- package/dist/web-components.min.css +1 -1
- package/dist/web-components.min.js +2 -2
- package/package.json +1 -1
- package/styles/api/text.css +9 -2
- package/styles/foundation/space.css +19 -18
- package/styles/host.css +48 -0
- package/styles/prose.css +187 -173
- package/styles/type/scale.css +6 -0
- package/styles/typography.css +10 -5
- package/styles/verse.css +122 -0
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
@scope (table-toolbar-ui) {
|
|
2
2
|
:where(:scope) {
|
|
3
3
|
/* ── Layout ── */
|
|
4
|
-
--table-toolbar-gap
|
|
5
|
-
--table-toolbar-py
|
|
6
|
-
--table-toolbar-px
|
|
7
|
-
--table-toolbar-cluster-gap
|
|
4
|
+
--table-toolbar-gap: var(--a-space-3);
|
|
5
|
+
--table-toolbar-py: var(--a-space-2);
|
|
6
|
+
--table-toolbar-px: 0;
|
|
7
|
+
--table-toolbar-cluster-gap: var(--a-space-2);
|
|
8
8
|
|
|
9
9
|
/* ── Surface ── */
|
|
10
|
-
--table-toolbar-bg
|
|
11
|
-
--table-toolbar-border
|
|
12
|
-
--table-toolbar-border-width
|
|
13
|
-
--table-toolbar-radius
|
|
10
|
+
--table-toolbar-bg: transparent;
|
|
11
|
+
--table-toolbar-border: transparent;
|
|
12
|
+
--table-toolbar-border-width: 0;
|
|
13
|
+
--table-toolbar-radius: var(--a-radius-lg);
|
|
14
14
|
|
|
15
15
|
/* ── Title ── */
|
|
16
|
-
--table-toolbar-title-fg
|
|
17
|
-
--table-toolbar-title-size
|
|
18
|
-
--table-toolbar-title-weight
|
|
19
|
-
--table-toolbar-title-gap
|
|
16
|
+
--table-toolbar-title-fg: var(--a-fg-strong);
|
|
17
|
+
--table-toolbar-title-size: var(--a-ui-lg);
|
|
18
|
+
--table-toolbar-title-weight: var(--a-weight-medium);
|
|
19
|
+
--table-toolbar-title-gap: var(--a-space-2);
|
|
20
20
|
|
|
21
21
|
/* ── Search ── */
|
|
22
|
-
--table-toolbar-search-min
|
|
23
|
-
--table-toolbar-search-max
|
|
22
|
+
--table-toolbar-search-min: 14rem;
|
|
23
|
+
--table-toolbar-search-max: 22rem;
|
|
24
24
|
|
|
25
25
|
/* Popover tokens removed — popover escapes to top layer and
|
|
26
26
|
cannot inherit @scope tokens. Raw --a-* tokens are used
|
|
@@ -40,11 +40,11 @@
|
|
|
40
40
|
display: flex;
|
|
41
41
|
flex-direction: row;
|
|
42
42
|
align-items: center;
|
|
43
|
-
gap: var(--table-toolbar-gap
|
|
44
|
-
padding: var(--table-toolbar-py
|
|
45
|
-
background: var(--table-toolbar-bg
|
|
46
|
-
border: var(--table-toolbar-border-width
|
|
47
|
-
border-radius: var(--table-toolbar-radius
|
|
43
|
+
gap: var(--table-toolbar-gap);
|
|
44
|
+
padding: var(--table-toolbar-py) var(--table-toolbar-px);
|
|
45
|
+
background: var(--table-toolbar-bg);
|
|
46
|
+
border: var(--table-toolbar-border-width) solid var(--table-toolbar-border);
|
|
47
|
+
border-radius: var(--table-toolbar-radius);
|
|
48
48
|
min-width: 0;
|
|
49
49
|
}
|
|
50
50
|
|
|
@@ -54,11 +54,11 @@
|
|
|
54
54
|
base styles". */
|
|
55
55
|
|
|
56
56
|
:scope[variant="card"] {
|
|
57
|
-
--table-toolbar-bg
|
|
58
|
-
--table-toolbar-border
|
|
59
|
-
--table-toolbar-border-width
|
|
60
|
-
--table-toolbar-py
|
|
61
|
-
--table-toolbar-px
|
|
57
|
+
--table-toolbar-bg: var(--a-bg);
|
|
58
|
+
--table-toolbar-border: var(--a-border-subtle);
|
|
59
|
+
--table-toolbar-border-width: 1px;
|
|
60
|
+
--table-toolbar-py: var(--a-space-3);
|
|
61
|
+
--table-toolbar-px: var(--a-space-4);
|
|
62
62
|
}
|
|
63
63
|
|
|
64
64
|
/* ═══════ Title cluster ═══════ */
|
|
@@ -66,15 +66,15 @@
|
|
|
66
66
|
[data-title] {
|
|
67
67
|
display: inline-flex;
|
|
68
68
|
align-items: center;
|
|
69
|
-
gap: var(--table-toolbar-title-gap
|
|
69
|
+
gap: var(--table-toolbar-title-gap);
|
|
70
70
|
flex: 0 0 auto;
|
|
71
71
|
min-width: 0;
|
|
72
72
|
}
|
|
73
73
|
|
|
74
74
|
[data-heading] {
|
|
75
|
-
font-size: var(--table-toolbar-title-size
|
|
76
|
-
font-weight: var(--table-toolbar-title-weight
|
|
77
|
-
color: var(--table-toolbar-title-fg
|
|
75
|
+
font-size: var(--table-toolbar-title-size);
|
|
76
|
+
font-weight: var(--table-toolbar-title-weight);
|
|
77
|
+
color: var(--table-toolbar-title-fg);
|
|
78
78
|
line-height: 1.2;
|
|
79
79
|
}
|
|
80
80
|
|
|
@@ -85,7 +85,7 @@
|
|
|
85
85
|
[data-controls] {
|
|
86
86
|
display: inline-flex;
|
|
87
87
|
align-items: center;
|
|
88
|
-
gap: var(--table-toolbar-cluster-gap
|
|
88
|
+
gap: var(--table-toolbar-cluster-gap);
|
|
89
89
|
flex: 0 0 auto;
|
|
90
90
|
}
|
|
91
91
|
|
|
@@ -94,9 +94,9 @@
|
|
|
94
94
|
/* ═══════ Search ═══════ */
|
|
95
95
|
|
|
96
96
|
[data-search] {
|
|
97
|
-
flex: 1 1 var(--table-toolbar-search-min
|
|
97
|
+
flex: 1 1 var(--table-toolbar-search-min);
|
|
98
98
|
min-width: 0;
|
|
99
|
-
max-width: var(--table-toolbar-search-max
|
|
99
|
+
max-width: var(--table-toolbar-search-max);
|
|
100
100
|
margin-inline-start: auto;
|
|
101
101
|
}
|
|
102
102
|
|
|
@@ -107,7 +107,7 @@
|
|
|
107
107
|
[data-actions] {
|
|
108
108
|
display: inline-flex;
|
|
109
109
|
align-items: center;
|
|
110
|
-
gap: var(--table-toolbar-cluster-gap
|
|
110
|
+
gap: var(--table-toolbar-cluster-gap);
|
|
111
111
|
flex: 0 0 auto;
|
|
112
112
|
}
|
|
113
113
|
|
|
@@ -132,7 +132,7 @@
|
|
|
132
132
|
border-radius: var(--a-radius);
|
|
133
133
|
box-shadow: var(--a-shadow-lg);
|
|
134
134
|
min-width: 16rem;
|
|
135
|
-
font-family:
|
|
135
|
+
font-family: var(--table-toolbar-font-family, var(--a-font-family-ui));
|
|
136
136
|
font-size: var(--a-ui-size);
|
|
137
137
|
display: flex;
|
|
138
138
|
flex-direction: column;
|
package/components/tabs/tabs.css
CHANGED
|
@@ -1,38 +1,39 @@
|
|
|
1
1
|
@scope (tabs-ui) {
|
|
2
2
|
:where(:scope) {
|
|
3
3
|
/* ── Tokens ── */
|
|
4
|
-
--tabs-border
|
|
5
|
-
--tabs-bg
|
|
6
|
-
--tabs-radius
|
|
7
|
-
--tabs-button-height
|
|
8
|
-
--tabs-button-px
|
|
9
|
-
--tabs-font-size
|
|
10
|
-
--tabs-
|
|
11
|
-
--tabs-
|
|
12
|
-
--tabs-indicator-
|
|
13
|
-
--tabs-
|
|
14
|
-
--tabs-fg
|
|
15
|
-
--tabs-fg-
|
|
16
|
-
--tabs-fg-
|
|
4
|
+
--tabs-border: transparent;
|
|
5
|
+
--tabs-bg: transparent;
|
|
6
|
+
--tabs-radius: var(--a-radius-md);
|
|
7
|
+
--tabs-button-height: var(--a-size);
|
|
8
|
+
--tabs-button-px: var(--a-space-2);
|
|
9
|
+
--tabs-font-size: var(--a-ui-md);
|
|
10
|
+
--tabs-font-family: var(--a-font-family-ui);
|
|
11
|
+
--tabs-gap: var(--a-space-1);
|
|
12
|
+
--tabs-indicator-color: var(--a-primary);
|
|
13
|
+
--tabs-indicator-height: 2px;
|
|
14
|
+
--tabs-fg: var(--a-fg-subtle);
|
|
15
|
+
--tabs-fg-hover: var(--a-fg);
|
|
16
|
+
--tabs-fg-active: var(--a-fg-selected);
|
|
17
|
+
--tabs-fg-disabled: var(--a-ui-text-disabled);
|
|
17
18
|
|
|
18
19
|
/* ── Spacing ── */
|
|
19
|
-
--tabs-vertical-gap
|
|
20
|
-
--tabs-button-gap
|
|
20
|
+
--tabs-vertical-gap: var(--a-space-4);
|
|
21
|
+
--tabs-button-gap: var(--a-space-1);
|
|
21
22
|
|
|
22
23
|
/* ── Transitions ── */
|
|
23
|
-
--tabs-duration
|
|
24
|
-
--tabs-duration-fast
|
|
25
|
-
--tabs-easing
|
|
26
|
-
--tabs-easing-out
|
|
24
|
+
--tabs-duration: var(--a-duration);
|
|
25
|
+
--tabs-duration-fast: var(--a-duration-fast);
|
|
26
|
+
--tabs-easing: var(--a-easing);
|
|
27
|
+
--tabs-easing-out: var(--a-easing-out);
|
|
27
28
|
|
|
28
29
|
/* ── Focus ── */
|
|
29
|
-
--tabs-focus-ring
|
|
30
|
-
--tabs-focus-radius
|
|
30
|
+
--tabs-focus-ring: var(--a-focus-ring);
|
|
31
|
+
--tabs-focus-radius: var(--a-radius-sm);
|
|
31
32
|
|
|
32
33
|
/* ── Vertical strip min-width ── */
|
|
33
34
|
/* Component-intrinsic visual constant; no --a-space-* equivalent
|
|
34
35
|
(8.75rem ≈ 140px at 1rem=16px). */
|
|
35
|
-
--tabs-vertical-strip-min-width
|
|
36
|
+
--tabs-vertical-strip-min-width: 8.75rem;
|
|
36
37
|
}
|
|
37
38
|
|
|
38
39
|
:scope {
|
|
@@ -40,29 +41,29 @@
|
|
|
40
41
|
box-sizing: border-box;
|
|
41
42
|
display: flex;
|
|
42
43
|
flex-direction: column;
|
|
43
|
-
background: var(--tabs-bg
|
|
44
|
-
border-radius: var(--tabs-radius
|
|
44
|
+
background: var(--tabs-bg);
|
|
45
|
+
border-radius: var(--tabs-radius);
|
|
45
46
|
}
|
|
46
47
|
|
|
47
48
|
/* Bordered variant — baseline border under the tab strip.
|
|
48
49
|
The active indicator sits on top of the border for a clean join. */
|
|
49
|
-
:scope[variant="bordered"] { --tabs-border
|
|
50
|
-
:scope[divider] { --tabs-border
|
|
50
|
+
:scope[variant="bordered"] { --tabs-border: var(--a-border-subtle); }
|
|
51
|
+
:scope[divider] { --tabs-border: var(--a-border-subtle); }
|
|
51
52
|
|
|
52
53
|
/* Vertical orientation: strip on the left, panels on the right */
|
|
53
54
|
:scope[orientation="vertical"] {
|
|
54
55
|
flex-direction: row;
|
|
55
56
|
align-items: flex-start;
|
|
56
|
-
gap: var(--tabs-vertical-gap
|
|
57
|
+
gap: var(--tabs-vertical-gap);
|
|
57
58
|
}
|
|
58
59
|
|
|
59
60
|
/* ── Button strip ── */
|
|
60
61
|
[slot="strip"] {
|
|
61
62
|
box-sizing: border-box;
|
|
62
63
|
display: flex;
|
|
63
|
-
gap: var(--tabs-gap
|
|
64
|
-
height: var(--tabs-button-height
|
|
65
|
-
box-shadow: inset 0 -1px 0 var(--tabs-border
|
|
64
|
+
gap: var(--tabs-gap);
|
|
65
|
+
height: var(--tabs-button-height);
|
|
66
|
+
box-shadow: inset 0 -1px 0 var(--tabs-border);
|
|
66
67
|
position: relative;
|
|
67
68
|
}
|
|
68
69
|
|
|
@@ -70,9 +71,9 @@
|
|
|
70
71
|
flex-direction: column;
|
|
71
72
|
align-items: stretch;
|
|
72
73
|
height: auto;
|
|
73
|
-
box-shadow: inset 1px 0 0 var(--tabs-border
|
|
74
|
+
box-shadow: inset 1px 0 0 var(--tabs-border);
|
|
74
75
|
flex-shrink: 0;
|
|
75
|
-
min-width: var(--tabs-vertical-strip-min-width
|
|
76
|
+
min-width: var(--tabs-vertical-strip-min-width);
|
|
76
77
|
}
|
|
77
78
|
|
|
78
79
|
/* ── Sliding indicator ── */
|
|
@@ -80,24 +81,24 @@
|
|
|
80
81
|
position: absolute;
|
|
81
82
|
bottom: 0;
|
|
82
83
|
left: 0;
|
|
83
|
-
height: var(--tabs-indicator-height
|
|
84
|
-
background: var(--tabs-indicator-color
|
|
85
|
-
border-radius: var(--tabs-indicator-height
|
|
84
|
+
height: var(--tabs-indicator-height);
|
|
85
|
+
background: var(--tabs-indicator-color);
|
|
86
|
+
border-radius: var(--tabs-indicator-height);
|
|
86
87
|
pointer-events: none;
|
|
87
88
|
transition:
|
|
88
|
-
transform var(--tabs-duration
|
|
89
|
-
width var(--tabs-duration
|
|
89
|
+
transform var(--tabs-duration) var(--tabs-easing-out),
|
|
90
|
+
width var(--tabs-duration) var(--tabs-easing-out);
|
|
90
91
|
}
|
|
91
92
|
|
|
92
93
|
:scope[orientation="vertical"] [slot="indicator"] {
|
|
93
94
|
bottom: auto;
|
|
94
95
|
left: -1px;
|
|
95
96
|
top: 0;
|
|
96
|
-
width: var(--tabs-indicator-height
|
|
97
|
+
width: var(--tabs-indicator-height);
|
|
97
98
|
height: auto;
|
|
98
99
|
transition:
|
|
99
|
-
transform var(--tabs-duration
|
|
100
|
-
height var(--tabs-duration
|
|
100
|
+
transform var(--tabs-duration) var(--tabs-easing-out),
|
|
101
|
+
height var(--tabs-duration) var(--tabs-easing-out);
|
|
101
102
|
}
|
|
102
103
|
|
|
103
104
|
/* Vertical panel area takes remaining space */
|
|
@@ -111,19 +112,21 @@
|
|
|
111
112
|
box-sizing: border-box;
|
|
112
113
|
display: inline-flex;
|
|
113
114
|
align-items: center;
|
|
114
|
-
gap: var(--tabs-button-gap
|
|
115
|
-
height: var(--tabs-button-height
|
|
116
|
-
padding-inline: var(--tabs-button-px
|
|
115
|
+
gap: var(--tabs-button-gap);
|
|
116
|
+
height: var(--tabs-button-height);
|
|
117
|
+
padding-inline: var(--tabs-button-px);
|
|
117
118
|
border: none;
|
|
118
119
|
background: none;
|
|
119
|
-
color: var(--tabs-fg
|
|
120
|
+
color: var(--tabs-fg);
|
|
120
121
|
font: inherit;
|
|
121
|
-
|
|
122
|
+
/* font-family floor — see segment.css rationale. */
|
|
123
|
+
font-family: var(--tabs-font-family);
|
|
124
|
+
font-size: var(--tabs-font-size);
|
|
122
125
|
line-height: 1;
|
|
123
126
|
cursor: pointer;
|
|
124
127
|
user-select: none;
|
|
125
128
|
white-space: nowrap;
|
|
126
|
-
transition: color var(--tabs-duration-fast
|
|
129
|
+
transition: color var(--tabs-duration-fast) var(--tabs-easing);
|
|
127
130
|
}
|
|
128
131
|
|
|
129
132
|
:scope[orientation="vertical"] [slot="tab-button"] {
|
|
@@ -133,23 +136,23 @@
|
|
|
133
136
|
}
|
|
134
137
|
|
|
135
138
|
[slot="tab-button"]:not([disabled]):hover {
|
|
136
|
-
color: var(--tabs-fg-hover
|
|
139
|
+
color: var(--tabs-fg-hover);
|
|
137
140
|
}
|
|
138
141
|
|
|
139
142
|
[slot="tab-button"][data-active] {
|
|
140
|
-
color: var(--tabs-fg-active
|
|
143
|
+
color: var(--tabs-fg-active);
|
|
141
144
|
}
|
|
142
145
|
|
|
143
146
|
[slot="tab-button"][disabled] {
|
|
144
|
-
color: var(--tabs-fg-disabled
|
|
147
|
+
color: var(--tabs-fg-disabled);
|
|
145
148
|
cursor: not-allowed;
|
|
146
149
|
pointer-events: none;
|
|
147
150
|
}
|
|
148
151
|
|
|
149
152
|
[slot="tab-button"]:focus-visible {
|
|
150
153
|
outline: none;
|
|
151
|
-
box-shadow: var(--tabs-focus-ring
|
|
152
|
-
border-radius: var(--tabs-focus-radius
|
|
154
|
+
box-shadow: var(--tabs-focus-ring);
|
|
155
|
+
border-radius: var(--tabs-focus-radius);
|
|
153
156
|
}
|
|
154
157
|
|
|
155
158
|
/* ── Tab panels ── */
|
package/components/tag/tag.css
CHANGED
|
@@ -1,31 +1,32 @@
|
|
|
1
1
|
/* Safari 17.x bug: `:scope[attr]:hover` inside `@scope` doesn't match the
|
|
2
2
|
scope root. Plain selector outside works. See docs/BROWSER-COMPAT.md §3a. */
|
|
3
3
|
tag-ui[removable]:not([disabled]):hover {
|
|
4
|
-
--tag-bg
|
|
4
|
+
--tag-bg: var(--tag-bg-hover);
|
|
5
5
|
}
|
|
6
6
|
|
|
7
7
|
@scope (tag-ui) {
|
|
8
8
|
:where(:scope) {
|
|
9
9
|
/* ── Tokens ── */
|
|
10
|
-
--tag-bg
|
|
11
|
-
--tag-fg
|
|
12
|
-
--tag-border
|
|
13
|
-
--tag-radius
|
|
14
|
-
--tag-px
|
|
15
|
-
--tag-py
|
|
16
|
-
--tag-gap
|
|
17
|
-
--tag-font
|
|
18
|
-
--tag-
|
|
19
|
-
--tag-
|
|
20
|
-
--tag-bg-
|
|
21
|
-
--tag-
|
|
10
|
+
--tag-bg: var(--a-bg-muted);
|
|
11
|
+
--tag-fg: var(--a-fg);
|
|
12
|
+
--tag-border: transparent;
|
|
13
|
+
--tag-radius: var(--a-radius-full);
|
|
14
|
+
--tag-px: var(--a-space-2);
|
|
15
|
+
--tag-py: 0.125rem;
|
|
16
|
+
--tag-gap: var(--a-space-1);
|
|
17
|
+
--tag-font: var(--a-ui-sm);
|
|
18
|
+
--tag-font-family: var(--a-font-family-ui);
|
|
19
|
+
--tag-dismiss-size: 1rem;
|
|
20
|
+
--tag-bg-hover: var(--a-bg-hover);
|
|
21
|
+
--tag-bg-disabled: var(--a-ui-bg-disabled);
|
|
22
|
+
--tag-fg-disabled: var(--a-ui-text-disabled);
|
|
22
23
|
|
|
23
24
|
/* ── Focus ── */
|
|
24
|
-
--tag-focus-ring
|
|
25
|
+
--tag-focus-ring: var(--a-focus-ring);
|
|
25
26
|
|
|
26
27
|
/* ── Motion ── */
|
|
27
|
-
--tag-duration
|
|
28
|
-
--tag-easing
|
|
28
|
+
--tag-duration: var(--a-duration-fast);
|
|
29
|
+
--tag-easing: var(--a-easing);
|
|
29
30
|
|
|
30
31
|
/* ── Dismiss ──
|
|
31
32
|
Rest = inherit the host's text color at reduced opacity (so the X
|
|
@@ -37,11 +38,11 @@ tag-ui[removable]:not([disabled]):hover {
|
|
|
37
38
|
Pre-v0.6.36 used `--a-fg-muted` / `--a-fg` directly, which gave
|
|
38
39
|
a neutral-grey X on saturated solid pills — the X disappeared
|
|
39
40
|
against the variant bg. */
|
|
40
|
-
--tag-dismiss-radius
|
|
41
|
-
--tag-dismiss-fg
|
|
42
|
-
--tag-dismiss-opacity
|
|
43
|
-
--tag-dismiss-opacity-hover
|
|
44
|
-
--tag-dismiss-bg-hover
|
|
41
|
+
--tag-dismiss-radius: var(--a-radius-full);
|
|
42
|
+
--tag-dismiss-fg: currentColor;
|
|
43
|
+
--tag-dismiss-opacity: 0.85;
|
|
44
|
+
--tag-dismiss-opacity-hover: 1;
|
|
45
|
+
--tag-dismiss-bg-hover: color-mix(in oklch, currentColor 18%, transparent);
|
|
45
46
|
text-align: start; /* §text-align-reset — blocks inheritance from centered ancestors */
|
|
46
47
|
}
|
|
47
48
|
|
|
@@ -50,19 +51,21 @@ tag-ui[removable]:not([disabled]):hover {
|
|
|
50
51
|
box-sizing: border-box;
|
|
51
52
|
display: inline-flex;
|
|
52
53
|
align-items: center;
|
|
53
|
-
gap: var(--tag-gap
|
|
54
|
-
padding: var(--tag-py
|
|
55
|
-
border-radius: var(--tag-radius
|
|
56
|
-
border: 1px solid var(--tag-border
|
|
54
|
+
gap: var(--tag-gap);
|
|
55
|
+
padding: var(--tag-py) var(--tag-px);
|
|
56
|
+
border-radius: var(--tag-radius);
|
|
57
|
+
border: 1px solid var(--tag-border);
|
|
57
58
|
font: inherit;
|
|
58
|
-
font-
|
|
59
|
+
/* font-family floor — see segment.css rationale. */
|
|
60
|
+
font-family: var(--tag-font-family);
|
|
61
|
+
font-size: var(--tag-font);
|
|
59
62
|
font-weight: 500;
|
|
60
63
|
line-height: 1;
|
|
61
|
-
color: var(--tag-fg
|
|
62
|
-
background: var(--tag-bg
|
|
64
|
+
color: var(--tag-fg);
|
|
65
|
+
background: var(--tag-bg);
|
|
63
66
|
white-space: nowrap;
|
|
64
67
|
user-select: none;
|
|
65
|
-
transition: background var(--tag-duration
|
|
68
|
+
transition: background var(--tag-duration) var(--tag-easing), color var(--tag-duration) var(--tag-easing);
|
|
66
69
|
}
|
|
67
70
|
|
|
68
71
|
/* `[text]` attribute selector gates the ::after so consumers using
|
|
@@ -81,13 +84,13 @@ tag-ui[removable]:not([disabled]):hover {
|
|
|
81
84
|
where the chip IS the state. Opt out per-tag via [tone="muted"] for
|
|
82
85
|
metadata-chip surfaces in dense lists. */
|
|
83
86
|
:scope[variant="info"] {
|
|
84
|
-
--tag-bg
|
|
85
|
-
--tag-fg
|
|
87
|
+
--tag-bg: var(--a-info-bg);
|
|
88
|
+
--tag-fg: var(--a-info-fg);
|
|
86
89
|
}
|
|
87
90
|
|
|
88
91
|
:scope[variant="success"] {
|
|
89
|
-
--tag-bg
|
|
90
|
-
--tag-fg
|
|
92
|
+
--tag-bg: var(--a-success-bg);
|
|
93
|
+
--tag-fg: var(--a-success-fg);
|
|
91
94
|
}
|
|
92
95
|
|
|
93
96
|
/* `--a-warning-bg` is the bright-amber step (semantics.css L3 redirect
|
|
@@ -95,21 +98,21 @@ tag-ui[removable]:not([disabled]):hover {
|
|
|
95
98
|
canonical caution-tape pair. Pre-v0.6.36 this rule had a local
|
|
96
99
|
`-20-tint` override; that workaround moved to the token system. */
|
|
97
100
|
:scope[variant="warning"] {
|
|
98
|
-
--tag-bg
|
|
99
|
-
--tag-fg
|
|
101
|
+
--tag-bg: var(--a-warning-bg);
|
|
102
|
+
--tag-fg: var(--a-warning-fg);
|
|
100
103
|
}
|
|
101
104
|
|
|
102
105
|
:scope[variant="danger"] {
|
|
103
|
-
--tag-bg
|
|
104
|
-
--tag-fg
|
|
106
|
+
--tag-bg: var(--a-danger-bg);
|
|
107
|
+
--tag-fg: var(--a-danger-fg);
|
|
105
108
|
}
|
|
106
109
|
|
|
107
110
|
/* `default` (no family) stays as quiet chrome — a stark fg/bg-inverse
|
|
108
111
|
would be too loud for the no-variant case. Opt in to the inverse
|
|
109
112
|
stamp via `[tone="solid"]` when you want a high-contrast neutral pill. */
|
|
110
113
|
:scope[variant="default"] {
|
|
111
|
-
--tag-bg
|
|
112
|
-
--tag-fg
|
|
114
|
+
--tag-bg: var(--a-bg-muted);
|
|
115
|
+
--tag-fg: var(--a-fg);
|
|
113
116
|
}
|
|
114
117
|
|
|
115
118
|
/* ── Tone modifier — orthogonal to [variant] ──
|
|
@@ -119,28 +122,28 @@ tag-ui[removable]:not([disabled]):hover {
|
|
|
119
122
|
uses as its default. Use on metadata chips in dense lists where the
|
|
120
123
|
saturated default would compete for attention. */
|
|
121
124
|
:scope[tone="muted"][variant="info"] {
|
|
122
|
-
--tag-bg
|
|
123
|
-
--tag-fg
|
|
125
|
+
--tag-bg: var(--a-info-muted);
|
|
126
|
+
--tag-fg: var(--a-info-text);
|
|
124
127
|
}
|
|
125
128
|
:scope[tone="muted"][variant="success"] {
|
|
126
|
-
--tag-bg
|
|
127
|
-
--tag-fg
|
|
129
|
+
--tag-bg: var(--a-success-muted);
|
|
130
|
+
--tag-fg: var(--a-success-text);
|
|
128
131
|
}
|
|
129
132
|
:scope[tone="muted"][variant="warning"] {
|
|
130
|
-
--tag-bg
|
|
131
|
-
--tag-fg
|
|
133
|
+
--tag-bg: var(--a-warning-muted);
|
|
134
|
+
--tag-fg: var(--a-warning-text);
|
|
132
135
|
}
|
|
133
136
|
:scope[tone="muted"][variant="danger"] {
|
|
134
|
-
--tag-bg
|
|
135
|
-
--tag-fg
|
|
137
|
+
--tag-bg: var(--a-danger-muted);
|
|
138
|
+
--tag-fg: var(--a-danger-text);
|
|
136
139
|
}
|
|
137
140
|
|
|
138
141
|
/* `[tone="solid"]` on the neutral default (or no variant) inverts the
|
|
139
142
|
chrome — solid fg-color bg with bg-color text. High-contrast neutral
|
|
140
143
|
stamp. Explicit opt-in; the variant-less default stays quiet chrome. */
|
|
141
144
|
:scope[tone="solid"]:not([variant="info"]):not([variant="success"]):not([variant="warning"]):not([variant="danger"]) {
|
|
142
|
-
--tag-bg
|
|
143
|
-
--tag-fg
|
|
145
|
+
--tag-bg: var(--a-fg);
|
|
146
|
+
--tag-fg: var(--a-bg);
|
|
144
147
|
}
|
|
145
148
|
|
|
146
149
|
/* ── `[tone="outline"]` — transparent bg + family-colored border + text ──
|
|
@@ -149,28 +152,28 @@ tag-ui[removable]:not([disabled]):hover {
|
|
|
149
152
|
visual weight" — good in dense data tables, faceted filter rows,
|
|
150
153
|
or anywhere multiple chips would compete if filled. */
|
|
151
154
|
:scope[tone="outline"] {
|
|
152
|
-
--tag-bg
|
|
155
|
+
--tag-bg: transparent;
|
|
153
156
|
}
|
|
154
157
|
:scope[tone="outline"][variant="info"] {
|
|
155
|
-
--tag-fg
|
|
156
|
-
--tag-border
|
|
158
|
+
--tag-fg: var(--a-info-text);
|
|
159
|
+
--tag-border: var(--a-info-border);
|
|
157
160
|
}
|
|
158
161
|
:scope[tone="outline"][variant="success"] {
|
|
159
|
-
--tag-fg
|
|
160
|
-
--tag-border
|
|
162
|
+
--tag-fg: var(--a-success-text);
|
|
163
|
+
--tag-border: var(--a-success-border);
|
|
161
164
|
}
|
|
162
165
|
:scope[tone="outline"][variant="warning"] {
|
|
163
|
-
--tag-fg
|
|
164
|
-
--tag-border
|
|
166
|
+
--tag-fg: var(--a-warning-text);
|
|
167
|
+
--tag-border: var(--a-warning-border);
|
|
165
168
|
}
|
|
166
169
|
:scope[tone="outline"][variant="danger"] {
|
|
167
|
-
--tag-fg
|
|
168
|
-
--tag-border
|
|
170
|
+
--tag-fg: var(--a-danger-text);
|
|
171
|
+
--tag-border: var(--a-danger-border);
|
|
169
172
|
}
|
|
170
173
|
/* Outline on neutral (no family) — fg-muted text + subtle border. */
|
|
171
174
|
:scope[tone="outline"]:not([variant="info"]):not([variant="success"]):not([variant="warning"]):not([variant="danger"]) {
|
|
172
|
-
--tag-fg
|
|
173
|
-
--tag-border
|
|
175
|
+
--tag-fg: var(--a-fg-muted);
|
|
176
|
+
--tag-border: var(--a-border);
|
|
174
177
|
}
|
|
175
178
|
|
|
176
179
|
/* Size handled by universal [size] attribute system. */
|
|
@@ -180,7 +183,7 @@ tag-ui[removable]:not([disabled]):hover {
|
|
|
180
183
|
/* ── Focus ── */
|
|
181
184
|
:scope:focus-visible {
|
|
182
185
|
outline: none;
|
|
183
|
-
box-shadow: var(--tag-focus-ring
|
|
186
|
+
box-shadow: var(--tag-focus-ring);
|
|
184
187
|
}
|
|
185
188
|
|
|
186
189
|
/* ── Slotted icons (leading) ──
|
|
@@ -197,29 +200,29 @@ tag-ui[removable]:not([disabled]):hover {
|
|
|
197
200
|
display: inline-flex;
|
|
198
201
|
align-items: center;
|
|
199
202
|
justify-content: center;
|
|
200
|
-
width: var(--tag-dismiss-size
|
|
201
|
-
height: var(--tag-dismiss-size
|
|
203
|
+
width: var(--tag-dismiss-size);
|
|
204
|
+
height: var(--tag-dismiss-size);
|
|
202
205
|
padding: 0;
|
|
203
206
|
border: none;
|
|
204
207
|
background: none;
|
|
205
208
|
cursor: pointer;
|
|
206
|
-
border-radius: var(--tag-dismiss-radius
|
|
207
|
-
color: var(--tag-dismiss-fg
|
|
208
|
-
opacity: var(--tag-dismiss-opacity
|
|
209
|
+
border-radius: var(--tag-dismiss-radius);
|
|
210
|
+
color: var(--tag-dismiss-fg);
|
|
211
|
+
opacity: var(--tag-dismiss-opacity);
|
|
209
212
|
--a-icon-size: 0.875rem;
|
|
210
213
|
order: 1; /* push dismiss to end so layout reads [text] [×] */
|
|
211
|
-
transition: opacity var(--tag-duration
|
|
214
|
+
transition: opacity var(--tag-duration) var(--tag-easing), background var(--tag-duration) var(--tag-easing);
|
|
212
215
|
}
|
|
213
216
|
|
|
214
217
|
[slot="dismiss"]:hover {
|
|
215
|
-
opacity: var(--tag-dismiss-opacity-hover
|
|
216
|
-
background: var(--tag-dismiss-bg-hover
|
|
218
|
+
opacity: var(--tag-dismiss-opacity-hover);
|
|
219
|
+
background: var(--tag-dismiss-bg-hover);
|
|
217
220
|
}
|
|
218
221
|
|
|
219
222
|
/* ── Disabled ── */
|
|
220
223
|
:scope[disabled] {
|
|
221
|
-
--tag-bg
|
|
222
|
-
--tag-fg
|
|
224
|
+
--tag-bg: var(--tag-bg-disabled);
|
|
225
|
+
--tag-fg: var(--tag-fg-disabled);
|
|
223
226
|
pointer-events: none;
|
|
224
227
|
}
|
|
225
228
|
}
|