@adia-ai/web-components 0.7.3 → 0.7.4
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 +22 -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 +99 -100
- 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/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
|
@@ -2,83 +2,83 @@
|
|
|
2
2
|
(Flavor B — attribute-removal restyle) both fail inside `@scope`.
|
|
3
3
|
Selectors moved out. See docs/BROWSER-COMPAT.md §3a. */
|
|
4
4
|
option-card-ui:not([checked]):not([disabled]):hover {
|
|
5
|
-
background: var(--option-card-bg-hover
|
|
6
|
-
border-color: var(--option-card-border-hover
|
|
5
|
+
background: var(--option-card-bg-hover);
|
|
6
|
+
border-color: var(--option-card-border-hover);
|
|
7
7
|
}
|
|
8
8
|
option-card-ui[checked] > :not([slot]) {
|
|
9
9
|
display: block;
|
|
10
10
|
}
|
|
11
11
|
option-card-ui[checked] {
|
|
12
|
-
background: var(--option-card-bg-checked
|
|
13
|
-
border-color: var(--option-card-border-checked
|
|
12
|
+
background: var(--option-card-bg-checked);
|
|
13
|
+
border-color: var(--option-card-border-checked);
|
|
14
14
|
}
|
|
15
15
|
option-card-ui[checked]::before {
|
|
16
|
-
border-color: var(--option-card-radio-fill
|
|
16
|
+
border-color: var(--option-card-radio-fill);
|
|
17
17
|
background:
|
|
18
18
|
radial-gradient(
|
|
19
19
|
circle,
|
|
20
|
-
var(--option-card-radio-dot
|
|
21
|
-
var(--option-card-radio-fill
|
|
20
|
+
var(--option-card-radio-dot) 0 30%,
|
|
21
|
+
var(--option-card-radio-fill) 30% 100%
|
|
22
22
|
);
|
|
23
23
|
}
|
|
24
24
|
option-card-ui[checked] [slot="heading"] {
|
|
25
|
-
color: var(--option-card-heading-color-checked
|
|
25
|
+
color: var(--option-card-heading-color-checked);
|
|
26
26
|
}
|
|
27
27
|
option-card-ui[checked] [slot="icon"] {
|
|
28
|
-
color: var(--option-card-icon-color-checked
|
|
28
|
+
color: var(--option-card-icon-color-checked);
|
|
29
29
|
}
|
|
30
30
|
|
|
31
31
|
@scope (option-card-ui) {
|
|
32
32
|
:where(:scope) {
|
|
33
33
|
/* ── Container ── */
|
|
34
|
-
--option-card-padding-block
|
|
35
|
-
--option-card-padding-inline
|
|
36
|
-
--option-card-radius
|
|
37
|
-
--option-card-bg
|
|
38
|
-
--option-card-border
|
|
39
|
-
--option-card-gap-x
|
|
40
|
-
--option-card-gap-y
|
|
34
|
+
--option-card-padding-block: var(--a-space-3);
|
|
35
|
+
--option-card-padding-inline: var(--a-space-4);
|
|
36
|
+
--option-card-radius: var(--a-radius-md);
|
|
37
|
+
--option-card-bg: var(--a-bg);
|
|
38
|
+
--option-card-border: var(--a-border);
|
|
39
|
+
--option-card-gap-x: var(--a-space-3);
|
|
40
|
+
--option-card-gap-y: var(--a-space-1);
|
|
41
41
|
|
|
42
42
|
/* ── State: hover ── */
|
|
43
|
-
--option-card-bg-hover
|
|
44
|
-
--option-card-border-hover
|
|
43
|
+
--option-card-bg-hover: var(--a-bg-muted);
|
|
44
|
+
--option-card-border-hover: var(--a-fg-subtle);
|
|
45
45
|
|
|
46
46
|
/* ── State: checked ── */
|
|
47
|
-
--option-card-bg-checked
|
|
48
|
-
--option-card-border-checked
|
|
47
|
+
--option-card-bg-checked: var(--a-accent-muted);
|
|
48
|
+
--option-card-border-checked: var(--a-accent);
|
|
49
49
|
|
|
50
50
|
/* ── Indicator (CSS radio circle, same size + recipe as <radio-ui>). */
|
|
51
|
-
--option-card-radio-size
|
|
52
|
-
--option-card-radio-bg
|
|
53
|
-
--option-card-radio-border
|
|
54
|
-
--option-card-radio-fill
|
|
51
|
+
--option-card-radio-size: var(--a-toggle-size);
|
|
52
|
+
--option-card-radio-bg: var(--a-bg);
|
|
53
|
+
--option-card-radio-border: var(--a-border);
|
|
54
|
+
--option-card-radio-fill: var(--a-accent);
|
|
55
55
|
/* Mirror radio.css's --radio-fg-checked recipe: an always-light
|
|
56
56
|
token rather than --a-accent-fg, which can flip dark depending
|
|
57
57
|
on theme/scheme combos and produce a near-black inner dot
|
|
58
58
|
against the accent disc. */
|
|
59
|
-
--option-card-radio-dot
|
|
59
|
+
--option-card-radio-dot: var(--a-chrome-light);
|
|
60
60
|
|
|
61
61
|
/* ── Typography ── */
|
|
62
|
-
--option-card-heading-color
|
|
63
|
-
--option-card-heading-color-checked
|
|
64
|
-
--option-card-heading-weight
|
|
65
|
-
--option-card-heading-size
|
|
66
|
-
--option-card-desc-color
|
|
67
|
-
--option-card-desc-size
|
|
68
|
-
--option-card-desc-line-height
|
|
69
|
-
--option-card-icon-color
|
|
70
|
-
--option-card-icon-color-checked
|
|
71
|
-
--option-card-icon-size
|
|
62
|
+
--option-card-heading-color: var(--a-fg);
|
|
63
|
+
--option-card-heading-color-checked: var(--a-fg-strong);
|
|
64
|
+
--option-card-heading-weight: var(--a-weight-medium);
|
|
65
|
+
--option-card-heading-size: var(--a-ui-size);
|
|
66
|
+
--option-card-desc-color: var(--a-fg-muted);
|
|
67
|
+
--option-card-desc-size: var(--a-ui-sm);
|
|
68
|
+
--option-card-desc-line-height: 1.4;
|
|
69
|
+
--option-card-icon-color: var(--a-fg-subtle);
|
|
70
|
+
--option-card-icon-color-checked: var(--a-fg-strong);
|
|
71
|
+
--option-card-icon-size: 1.5rem;
|
|
72
72
|
|
|
73
73
|
/* ── State: disabled ── */
|
|
74
|
-
--option-card-disabled-opacity
|
|
74
|
+
--option-card-disabled-opacity: 0.6;
|
|
75
75
|
|
|
76
76
|
/* ── Focus ── */
|
|
77
|
-
--option-card-focus-ring
|
|
77
|
+
--option-card-focus-ring: var(--a-focus-ring);
|
|
78
78
|
|
|
79
79
|
/* ── Transitions ── */
|
|
80
|
-
--option-card-duration
|
|
81
|
-
--option-card-easing
|
|
80
|
+
--option-card-duration: var(--a-duration-fast);
|
|
81
|
+
--option-card-easing: var(--a-easing);
|
|
82
82
|
}
|
|
83
83
|
|
|
84
84
|
/* ── Base — grid: indicator | (heading + description). Optional icon
|
|
@@ -90,19 +90,19 @@ option-card-ui[checked] [slot="icon"] {
|
|
|
90
90
|
grid-template-areas:
|
|
91
91
|
"indicator heading"
|
|
92
92
|
"indicator description";
|
|
93
|
-
column-gap: var(--option-card-gap-x
|
|
94
|
-
row-gap: var(--option-card-gap-y
|
|
95
|
-
padding: var(--option-card-padding-block
|
|
96
|
-
border: 1px solid var(--option-card-border
|
|
97
|
-
border-radius: var(--option-card-radius
|
|
98
|
-
background: var(--option-card-bg
|
|
93
|
+
column-gap: var(--option-card-gap-x);
|
|
94
|
+
row-gap: var(--option-card-gap-y);
|
|
95
|
+
padding: var(--option-card-padding-block) var(--option-card-padding-inline);
|
|
96
|
+
border: 1px solid var(--option-card-border);
|
|
97
|
+
border-radius: var(--option-card-radius);
|
|
98
|
+
background: var(--option-card-bg);
|
|
99
99
|
cursor: pointer;
|
|
100
100
|
user-select: none;
|
|
101
101
|
outline: none;
|
|
102
102
|
transition:
|
|
103
|
-
background var(--option-card-duration
|
|
104
|
-
border-color var(--option-card-duration
|
|
105
|
-
box-shadow var(--option-card-duration
|
|
103
|
+
background var(--option-card-duration) var(--option-card-easing),
|
|
104
|
+
border-color var(--option-card-duration) var(--option-card-easing),
|
|
105
|
+
box-shadow var(--option-card-duration) var(--option-card-easing);
|
|
106
106
|
}
|
|
107
107
|
|
|
108
108
|
/* When an icon slot is present, insert a third column for it
|
|
@@ -116,41 +116,41 @@ option-card-ui[checked] [slot="icon"] {
|
|
|
116
116
|
:scope [slot="icon"] {
|
|
117
117
|
grid-area: icon;
|
|
118
118
|
align-self: start;
|
|
119
|
-
color: var(--option-card-icon-color
|
|
120
|
-
--a-icon-size: var(--option-card-icon-size
|
|
121
|
-
transition: color var(--option-card-duration
|
|
119
|
+
color: var(--option-card-icon-color);
|
|
120
|
+
--a-icon-size: var(--option-card-icon-size);
|
|
121
|
+
transition: color var(--option-card-duration) var(--option-card-easing);
|
|
122
122
|
}
|
|
123
123
|
|
|
124
124
|
/* ── Indicator — pure CSS radio circle, no separate <radio-ui>. */
|
|
125
125
|
:scope::before {
|
|
126
126
|
content: '';
|
|
127
127
|
grid-area: indicator;
|
|
128
|
-
width: var(--option-card-radio-size
|
|
129
|
-
height: var(--option-card-radio-size
|
|
130
|
-
border: 1.5px solid var(--option-card-radio-border
|
|
128
|
+
width: var(--option-card-radio-size);
|
|
129
|
+
height: var(--option-card-radio-size);
|
|
130
|
+
border: 1.5px solid var(--option-card-radio-border);
|
|
131
131
|
border-radius: var(--a-radius-full);
|
|
132
|
-
background: var(--option-card-radio-bg
|
|
132
|
+
background: var(--option-card-radio-bg);
|
|
133
133
|
align-self: start;
|
|
134
134
|
margin-block-start: 0.125rem;
|
|
135
135
|
flex-shrink: 0;
|
|
136
136
|
transition:
|
|
137
|
-
background var(--option-card-duration
|
|
138
|
-
border-color var(--option-card-duration
|
|
137
|
+
background var(--option-card-duration) var(--option-card-easing),
|
|
138
|
+
border-color var(--option-card-duration) var(--option-card-easing);
|
|
139
139
|
}
|
|
140
140
|
|
|
141
141
|
/* ── Slots — heading + description ── */
|
|
142
142
|
:scope [slot="heading"] {
|
|
143
143
|
grid-area: heading;
|
|
144
|
-
color: var(--option-card-heading-color
|
|
145
|
-
font-weight: var(--option-card-heading-weight
|
|
146
|
-
font-size: var(--option-card-heading-size
|
|
147
|
-
transition: color var(--option-card-duration
|
|
144
|
+
color: var(--option-card-heading-color);
|
|
145
|
+
font-weight: var(--option-card-heading-weight);
|
|
146
|
+
font-size: var(--option-card-heading-size);
|
|
147
|
+
transition: color var(--option-card-duration) var(--option-card-easing);
|
|
148
148
|
}
|
|
149
149
|
:scope [slot="description"] {
|
|
150
150
|
grid-area: description;
|
|
151
|
-
color: var(--option-card-desc-color
|
|
152
|
-
font-size: var(--option-card-desc-size
|
|
153
|
-
line-height: var(--option-card-desc-line-height
|
|
151
|
+
color: var(--option-card-desc-color);
|
|
152
|
+
font-size: var(--option-card-desc-size);
|
|
153
|
+
line-height: var(--option-card-desc-line-height);
|
|
154
154
|
}
|
|
155
155
|
|
|
156
156
|
/* ── Default slot — "spillover" content revealed when checked.
|
|
@@ -182,7 +182,7 @@ option-card-ui[checked] [slot="icon"] {
|
|
|
182
182
|
:scope[layout="tile"] {
|
|
183
183
|
display: flex;
|
|
184
184
|
flex-direction: column;
|
|
185
|
-
gap: var(--option-card-gap-y
|
|
185
|
+
gap: var(--option-card-gap-y);
|
|
186
186
|
position: relative;
|
|
187
187
|
/* padding inherited from base :scope (token-driven, --option-card-padding-*) */
|
|
188
188
|
}
|
|
@@ -195,8 +195,8 @@ option-card-ui[checked] [slot="icon"] {
|
|
|
195
195
|
:scope[layout="tile"]::before {
|
|
196
196
|
position: absolute;
|
|
197
197
|
grid-area: auto;
|
|
198
|
-
inset-block-start: var(--option-card-padding-block
|
|
199
|
-
inset-inline-end: var(--option-card-padding-inline
|
|
198
|
+
inset-block-start: var(--option-card-padding-block);
|
|
199
|
+
inset-inline-end: var(--option-card-padding-inline);
|
|
200
200
|
margin-block-start: 0;
|
|
201
201
|
}
|
|
202
202
|
/* Visual order is fixed via `order`, NOT DOM order: composites
|
|
@@ -206,7 +206,7 @@ option-card-ui[checked] [slot="icon"] {
|
|
|
206
206
|
:scope[layout="tile"] [slot="icon"] {
|
|
207
207
|
order: 1;
|
|
208
208
|
align-self: start;
|
|
209
|
-
--option-card-icon-size
|
|
209
|
+
--option-card-icon-size: 1.75rem;
|
|
210
210
|
}
|
|
211
211
|
:scope[layout="tile"] [slot="heading"] {
|
|
212
212
|
order: 2;
|
|
@@ -231,11 +231,11 @@ option-card-ui[checked] [slot="icon"] {
|
|
|
231
231
|
/* ── State: disabled ── */
|
|
232
232
|
:scope[disabled] {
|
|
233
233
|
cursor: not-allowed;
|
|
234
|
-
opacity: var(--option-card-disabled-opacity
|
|
234
|
+
opacity: var(--option-card-disabled-opacity);
|
|
235
235
|
}
|
|
236
236
|
|
|
237
237
|
/* ── Focus ── */
|
|
238
238
|
:scope:focus-visible {
|
|
239
|
-
box-shadow: var(--option-card-focus-ring
|
|
239
|
+
box-shadow: var(--option-card-focus-ring);
|
|
240
240
|
}
|
|
241
241
|
}
|
|
@@ -5,23 +5,23 @@
|
|
|
5
5
|
(~52px) so they read as comfortable single-digit boxes. Radius is the
|
|
6
6
|
plain --a-radius-lg token (no min()/clamp expression — radius patterns
|
|
7
7
|
stay simple). Scales with [size] + density (relative to --a-size). */
|
|
8
|
-
--otp-input-size
|
|
9
|
-
--otp-input-gap
|
|
10
|
-
--otp-input-radius
|
|
11
|
-
--otp-input-border
|
|
12
|
-
--otp-input-border-hover
|
|
13
|
-
--otp-input-border-focus
|
|
14
|
-
--otp-input-bg-disabled
|
|
15
|
-
--otp-input-fg-disabled
|
|
16
|
-
--otp-input-border-disabled
|
|
17
|
-
--otp-input-font
|
|
18
|
-
--otp-input-font-size
|
|
19
|
-
--otp-input-bg
|
|
20
|
-
--otp-input-fg
|
|
8
|
+
--otp-input-size: calc(var(--a-size) * 1.75);
|
|
9
|
+
--otp-input-gap: var(--a-space-2);
|
|
10
|
+
--otp-input-radius: var(--a-radius-lg);
|
|
11
|
+
--otp-input-border: var(--a-ui-border);
|
|
12
|
+
--otp-input-border-hover: var(--a-ui-border-hover);
|
|
13
|
+
--otp-input-border-focus: var(--a-accent);
|
|
14
|
+
--otp-input-bg-disabled: var(--a-ui-bg-disabled);
|
|
15
|
+
--otp-input-fg-disabled: var(--a-ui-text-disabled);
|
|
16
|
+
--otp-input-border-disabled: var(--a-ui-border-disabled);
|
|
17
|
+
--otp-input-font: var(--a-font-family-code);
|
|
18
|
+
--otp-input-font-size: var(--a-body-md);
|
|
19
|
+
--otp-input-bg: var(--a-ui-bg);
|
|
20
|
+
--otp-input-fg: var(--a-ui-text);
|
|
21
21
|
|
|
22
22
|
/* ── Transitions ── */
|
|
23
|
-
--otp-input-duration
|
|
24
|
-
--otp-input-easing
|
|
23
|
+
--otp-input-duration: var(--a-duration-fast);
|
|
24
|
+
--otp-input-easing: var(--a-easing);
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
:scope {
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
box-sizing: border-box;
|
|
30
30
|
display: flex;
|
|
31
31
|
justify-content: center;
|
|
32
|
-
gap: var(--otp-input-gap
|
|
32
|
+
gap: var(--otp-input-gap);
|
|
33
33
|
/* Fill the container (a block-level control per ADR-0037) so the digit
|
|
34
34
|
boxes grow to use the available width instead of sitting content-width
|
|
35
35
|
on the left. Boxes flex to fill up to their cap; once capped (very wide
|
|
@@ -47,18 +47,18 @@
|
|
|
47
47
|
box-sizing: border-box;
|
|
48
48
|
flex: 1 1 0;
|
|
49
49
|
min-width: 0;
|
|
50
|
-
max-width: var(--otp-input-size
|
|
50
|
+
max-width: var(--otp-input-size);
|
|
51
51
|
aspect-ratio: 1;
|
|
52
52
|
text-align: center;
|
|
53
|
-
border: 1px solid var(--otp-input-border
|
|
54
|
-
border-radius: var(--otp-input-radius
|
|
55
|
-
background: var(--otp-input-bg
|
|
56
|
-
color: var(--otp-input-fg
|
|
57
|
-
font-family: var(--otp-input-font
|
|
58
|
-
font-size: var(--otp-input-font-size
|
|
53
|
+
border: 1px solid var(--otp-input-border);
|
|
54
|
+
border-radius: var(--otp-input-radius);
|
|
55
|
+
background: var(--otp-input-bg);
|
|
56
|
+
color: var(--otp-input-fg);
|
|
57
|
+
font-family: var(--otp-input-font);
|
|
58
|
+
font-size: var(--otp-input-font-size);
|
|
59
59
|
line-height: 1;
|
|
60
60
|
outline: none;
|
|
61
|
-
transition: border-color var(--otp-input-duration
|
|
61
|
+
transition: border-color var(--otp-input-duration) var(--otp-input-easing);
|
|
62
62
|
/* Hide number spinner */
|
|
63
63
|
-moz-appearance: textfield;
|
|
64
64
|
}
|
|
@@ -69,11 +69,11 @@
|
|
|
69
69
|
}
|
|
70
70
|
|
|
71
71
|
[slot="digit"]:hover:not(:disabled) {
|
|
72
|
-
border-color: var(--otp-input-border-hover
|
|
72
|
+
border-color: var(--otp-input-border-hover);
|
|
73
73
|
}
|
|
74
74
|
|
|
75
75
|
[slot="digit"]:focus {
|
|
76
|
-
border-color: var(--otp-input-border-focus
|
|
76
|
+
border-color: var(--otp-input-border-focus);
|
|
77
77
|
}
|
|
78
78
|
|
|
79
79
|
/* ── Disabled ── */
|
|
@@ -81,13 +81,13 @@
|
|
|
81
81
|
pointer-events: none;
|
|
82
82
|
}
|
|
83
83
|
:scope[disabled] [slot="digit"] {
|
|
84
|
-
background: var(--otp-input-bg-disabled
|
|
85
|
-
color: var(--otp-input-fg-disabled
|
|
84
|
+
background: var(--otp-input-bg-disabled);
|
|
85
|
+
color: var(--otp-input-fg-disabled);
|
|
86
86
|
/* Native dashed border — it follows the box's border-radius (a rounded
|
|
87
87
|
dashed square, matching the enabled state). An SVG border-image would
|
|
88
88
|
give more uniform dashes but is clipped to a SQUARE — it ignores
|
|
89
89
|
border-radius — so the disabled corners wouldn't round. */
|
|
90
|
-
border: 1px dashed var(--otp-input-border-disabled
|
|
90
|
+
border: 1px dashed var(--otp-input-border-disabled);
|
|
91
91
|
cursor: not-allowed;
|
|
92
92
|
}
|
|
93
93
|
}
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
"default": ""
|
|
30
30
|
},
|
|
31
31
|
"padding": {
|
|
32
|
-
"description": "Page-padding scale from the spacing system. Accepts `0`–`8`\n(mapped to `--a-space-N`). Empty (no value) applies the\n`--page-padding
|
|
32
|
+
"description": "Page-padding scale from the spacing system. Accepts `0`–`8`\n(mapped to `--a-space-N`). Empty (no value) applies the\n`--page-padding` token; `0` removes padding.\n",
|
|
33
33
|
"type": "string",
|
|
34
34
|
"default": ""
|
|
35
35
|
},
|
package/components/page/page.css
CHANGED
|
@@ -1,31 +1,31 @@
|
|
|
1
1
|
@scope (page-ui) {
|
|
2
2
|
:where(:scope) {
|
|
3
3
|
/* ── Max-width clamps ── */
|
|
4
|
-
--page-max-width-prose
|
|
5
|
-
--page-max-width-narrow
|
|
6
|
-
--page-max-width-wide
|
|
7
|
-
--page-max-width-full
|
|
4
|
+
--page-max-width-prose: 65ch;
|
|
5
|
+
--page-max-width-narrow: 80ch;
|
|
6
|
+
--page-max-width-wide: 1080px;
|
|
7
|
+
--page-max-width-full: 100%;
|
|
8
8
|
|
|
9
9
|
/* ── Padding default (when [padding] is set without a value) ── */
|
|
10
|
-
--page-padding
|
|
10
|
+
--page-padding: var(--a-space-6);
|
|
11
11
|
|
|
12
12
|
/* ── Region rhythm — vertical gap between header / section / footer,
|
|
13
13
|
mirroring card-ui's section inset. The page [padding] supplies the
|
|
14
14
|
outer frame; this is the inter-region spacing. ── */
|
|
15
|
-
--page-inset
|
|
15
|
+
--page-inset: var(--a-space-5);
|
|
16
16
|
|
|
17
17
|
/* ── Padded-region sub-surface (a section[padding] inside the page) ── */
|
|
18
|
-
--page-region-bg
|
|
19
|
-
--page-region-radius
|
|
18
|
+
--page-region-bg: var(--a-bg-subtle);
|
|
19
|
+
--page-region-radius: var(--a-radius-md);
|
|
20
20
|
|
|
21
21
|
/* ── Surfaces ── */
|
|
22
|
-
--page-bg
|
|
23
|
-
--page-fg
|
|
22
|
+
--page-bg: var(--a-canvas-0);
|
|
23
|
+
--page-fg: var(--a-fg);
|
|
24
24
|
|
|
25
25
|
/* ── Sticky-header chrome (when [data-header-stuck]) ── */
|
|
26
|
-
--page-sticky-bg
|
|
27
|
-
--page-sticky-border
|
|
28
|
-
--page-sticky-shadow
|
|
26
|
+
--page-sticky-bg: var(--a-canvas-0);
|
|
27
|
+
--page-sticky-border: 1px solid var(--a-border-subtle);
|
|
28
|
+
--page-sticky-shadow: var(--a-shadow-sm);
|
|
29
29
|
}
|
|
30
30
|
|
|
31
31
|
:scope {
|
|
@@ -35,18 +35,18 @@
|
|
|
35
35
|
/* --page-pad carries the resolved [padding] value so the sticky header can
|
|
36
36
|
bleed back over it (card-ui pattern) — see the sticky-header rule. */
|
|
37
37
|
padding: var(--page-pad, 0);
|
|
38
|
-
background: var(--page-bg
|
|
39
|
-
color: var(--page-fg
|
|
38
|
+
background: var(--page-bg);
|
|
39
|
+
color: var(--page-fg);
|
|
40
40
|
}
|
|
41
41
|
|
|
42
42
|
/* ── max-width clamps ── */
|
|
43
|
-
:scope[max-width="prose"] { max-width: var(--page-max-width-prose
|
|
44
|
-
:scope[max-width="narrow"] { max-width: var(--page-max-width-narrow
|
|
45
|
-
:scope[max-width="wide"] { max-width: var(--page-max-width-wide
|
|
46
|
-
:scope[max-width="full"] { max-width: var(--page-max-width-full
|
|
43
|
+
:scope[max-width="prose"] { max-width: var(--page-max-width-prose); margin-inline: auto; }
|
|
44
|
+
:scope[max-width="narrow"] { max-width: var(--page-max-width-narrow); margin-inline: auto; }
|
|
45
|
+
:scope[max-width="wide"] { max-width: var(--page-max-width-wide); margin-inline: auto; }
|
|
46
|
+
:scope[max-width="full"] { max-width: var(--page-max-width-full); }
|
|
47
47
|
|
|
48
48
|
/* ── Padding scale (mirrors --a-space-N) — sets --page-pad, applied above ── */
|
|
49
|
-
:scope[padding=""] { --page-pad: var(--page-padding
|
|
49
|
+
:scope[padding=""] { --page-pad: var(--page-padding); }
|
|
50
50
|
:scope[padding="0"] { --page-pad: 0; }
|
|
51
51
|
:scope[padding="1"] { --page-pad: var(--a-space-1); }
|
|
52
52
|
:scope[padding="2"] { --page-pad: var(--a-space-2); }
|
|
@@ -69,7 +69,7 @@
|
|
|
69
69
|
padding edge). */
|
|
70
70
|
:scope > :where(header, header-ui, section, section-ui, footer, footer-ui)
|
|
71
71
|
~ :where(header, header-ui, section, section-ui, footer, footer-ui) {
|
|
72
|
-
margin-block-start: var(--page-inset
|
|
72
|
+
margin-block-start: var(--page-inset);
|
|
73
73
|
}
|
|
74
74
|
|
|
75
75
|
/* [bleed] — edge-to-edge region: cancel the page's inline [padding] so
|
|
@@ -82,9 +82,9 @@
|
|
|
82
82
|
/* [padding] on a region — a padded sub-surface with its own background +
|
|
83
83
|
radius, like card-ui's section[padding]. */
|
|
84
84
|
:scope > :where(section, section-ui)[padding] {
|
|
85
|
-
padding: var(--page-inset
|
|
86
|
-
background: var(--page-region-bg
|
|
87
|
-
border-radius: var(--page-region-radius
|
|
85
|
+
padding: var(--page-inset);
|
|
86
|
+
background: var(--page-region-bg);
|
|
87
|
+
border-radius: var(--page-region-radius);
|
|
88
88
|
}
|
|
89
89
|
|
|
90
90
|
/* ── Scroll container ── */
|
|
@@ -104,7 +104,7 @@
|
|
|
104
104
|
position: sticky;
|
|
105
105
|
top: 0;
|
|
106
106
|
z-index: 1;
|
|
107
|
-
background: var(--page-sticky-bg
|
|
107
|
+
background: var(--page-sticky-bg);
|
|
108
108
|
/* Bleed horizontally over the page's inline [padding] so the opaque band
|
|
109
109
|
spans the full scroll width, then re-inset the content so it stays
|
|
110
110
|
aligned with the body. Vertical = its own breathing room. Card-ui
|
|
@@ -115,7 +115,7 @@
|
|
|
115
115
|
}
|
|
116
116
|
|
|
117
117
|
:scope[data-header-stuck] > :where(header, header-ui) {
|
|
118
|
-
border-block-end: var(--page-sticky-border
|
|
119
|
-
box-shadow: var(--page-sticky-shadow
|
|
118
|
+
border-block-end: var(--page-sticky-border);
|
|
119
|
+
box-shadow: var(--page-sticky-shadow);
|
|
120
120
|
}
|
|
121
121
|
}
|
|
@@ -27,7 +27,7 @@ Centered horizontally via `margin-inline: auto`.
|
|
|
27
27
|
maxWidth: '' | 'prose' | 'narrow' | 'wide' | 'full';
|
|
28
28
|
/** Page-padding scale from the spacing system. Accepts `0`–`8`
|
|
29
29
|
(mapped to `--a-space-N`). Empty (no value) applies the
|
|
30
|
-
`--page-padding
|
|
30
|
+
`--page-padding` token; `0` removes padding.
|
|
31
31
|
*/
|
|
32
32
|
padding: string;
|
|
33
33
|
/** Sets the page as a scroll container. `overflow-y: auto`, full
|
|
@@ -44,7 +44,7 @@ props:
|
|
|
44
44
|
description: |
|
|
45
45
|
Page-padding scale from the spacing system. Accepts `0`–`8`
|
|
46
46
|
(mapped to `--a-space-N`). Empty (no value) applies the
|
|
47
|
-
`--page-padding
|
|
47
|
+
`--page-padding` token; `0` removes padding.
|
|
48
48
|
type: string
|
|
49
49
|
default: ""
|
|
50
50
|
reflect: true
|
|
@@ -12,11 +12,11 @@
|
|
|
12
12
|
@scope (pagination-ui) {
|
|
13
13
|
:where(:scope) {
|
|
14
14
|
/* ── Layout ── */
|
|
15
|
-
--pagination-gap
|
|
15
|
+
--pagination-gap: var(--a-space-1);
|
|
16
16
|
|
|
17
17
|
/* ── Ellipsis cell (the only piece pagination styles directly) ── */
|
|
18
|
-
--pagination-ellipsis-fg
|
|
19
|
-
--pagination-ellipsis-font
|
|
18
|
+
--pagination-ellipsis-fg: var(--a-fg-muted);
|
|
19
|
+
--pagination-ellipsis-font: var(--a-ui-size);
|
|
20
20
|
text-align: start; /* §text-align-reset — blocks inheritance from centered ancestors */
|
|
21
21
|
}
|
|
22
22
|
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
[slot="nav"] {
|
|
34
34
|
display: flex;
|
|
35
35
|
align-items: center;
|
|
36
|
-
gap: var(--pagination-gap
|
|
36
|
+
gap: var(--pagination-gap);
|
|
37
37
|
}
|
|
38
38
|
|
|
39
39
|
/* ── Nested button-ui sizing handoff ──
|
|
@@ -54,8 +54,8 @@
|
|
|
54
54
|
/* Match the height of the nested button-ui so the row baseline aligns */
|
|
55
55
|
min-width: var(--a-size);
|
|
56
56
|
height: var(--a-size);
|
|
57
|
-
color: var(--pagination-ellipsis-fg
|
|
58
|
-
font-size: var(--pagination-ellipsis-font
|
|
57
|
+
color: var(--pagination-ellipsis-fg);
|
|
58
|
+
font-size: var(--pagination-ellipsis-font);
|
|
59
59
|
pointer-events: none;
|
|
60
60
|
user-select: none;
|
|
61
61
|
line-height: 1;
|