@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
package/styles/prose.css
CHANGED
|
@@ -15,179 +15,193 @@
|
|
|
15
15
|
re-skins everything within it. The @layer order is declared by the co-loaded
|
|
16
16
|
barrel (styles/index.css); this file only contributes to `context`. */
|
|
17
17
|
@layer context {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
18
|
+
[prose] {
|
|
19
|
+
/* ── Radius — prose register: rounder bounds (max 28px) than UI. ── */
|
|
20
|
+
--a-radius-min: 0.375rem; /* 6px */
|
|
21
|
+
--a-radius-max: 1.75rem; /* 28px */
|
|
22
|
+
--a-radius-sm: clamp(
|
|
23
|
+
var(--a-radius-min),
|
|
24
|
+
calc(var(--a-radius-k) * var(--a-radius-max) * var(--a-radius-sm-k)),
|
|
25
|
+
var(--a-radius-max)
|
|
26
|
+
);
|
|
27
|
+
--a-radius-md: clamp(
|
|
28
|
+
var(--a-radius-min),
|
|
29
|
+
calc(var(--a-radius-k) * var(--a-radius-max) * var(--a-radius-md-k)),
|
|
30
|
+
var(--a-radius-max)
|
|
31
|
+
);
|
|
32
|
+
--a-radius-lg: clamp(
|
|
33
|
+
var(--a-radius-min),
|
|
34
|
+
calc(var(--a-radius-k) * var(--a-radius-max) * var(--a-radius-lg-k)),
|
|
35
|
+
var(--a-radius-max)
|
|
36
|
+
);
|
|
37
|
+
--a-radius: var(--a-radius-md);
|
|
38
|
+
|
|
39
|
+
/* ── Inset — prose register (generous; sm/md/lg = 32/40/48). ── */
|
|
40
|
+
--a-inset-sm: var(--a-space-8); /* 32px */
|
|
41
|
+
--a-inset-md: var(--a-space-10); /* 40px */
|
|
42
|
+
--a-inset-lg: var(--a-space-12); /* 48px */
|
|
43
|
+
--a-inset: var(--a-inset-md);
|
|
44
|
+
|
|
45
|
+
/* ── Gaps — prose register (value × --a-gap-k), one rung up from regular.
|
|
46
|
+
At k=1: 12/16/20/24/28px. ── */
|
|
47
|
+
--a-gap-xs: calc(var(--a-space-3) * var(--a-gap-k)); /* 12px @k=1 */
|
|
48
|
+
--a-gap-sm: calc(var(--a-space-4) * var(--a-gap-k)); /* 16px @k=1 */
|
|
49
|
+
--a-gap-md: calc(var(--a-space-5) * var(--a-gap-k)); /* 20px @k=1 */
|
|
50
|
+
--a-gap-lg: calc(var(--a-space-6) * var(--a-gap-k)); /* 24px @k=1 */
|
|
51
|
+
--a-gap-xl: calc(var(--a-space-7) * var(--a-gap-k)); /* 28px @k=1 */
|
|
52
|
+
--a-gap: var(--a-gap-md);
|
|
53
|
+
|
|
54
|
+
/* ── Sizing — larger controls ── */
|
|
55
|
+
--a-size-sm: calc(var(--a-density) * 1.75rem);
|
|
56
|
+
--a-size-md: calc(var(--a-density) * 2.25rem);
|
|
57
|
+
--a-size-lg: calc(var(--a-density) * 2.75rem);
|
|
58
|
+
--a-size: var(--a-size-md);
|
|
59
|
+
|
|
60
|
+
/* ── Typography — override sm/md/lg tiers with prose sizes
|
|
48
61
|
Also set --a-*-size to -md (base typography defaults to -sm) ── */
|
|
49
62
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
[prose][size="lg"],
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
63
|
+
/* display */
|
|
64
|
+
--a-display-sm: clamp(24px, 20px + 1.5vw, 36px);
|
|
65
|
+
--a-display-md: clamp(32px, 24px + 3vw, 56px);
|
|
66
|
+
--a-display-lg: clamp(40px, 32px + 4vw, 80px);
|
|
67
|
+
--a-display-size: var(--a-display-md);
|
|
68
|
+
|
|
69
|
+
/* title */
|
|
70
|
+
--a-title-sm: clamp(18px, 16px + 0.75vw, 24px);
|
|
71
|
+
--a-title-md: clamp(24px, 20px + 1.5vw, 36px);
|
|
72
|
+
--a-title-lg: clamp(28px, 24px + 2vw, 48px);
|
|
73
|
+
--a-title-size: var(--a-title-md);
|
|
74
|
+
|
|
75
|
+
/* heading */
|
|
76
|
+
--a-heading-sm: 16px;
|
|
77
|
+
--a-heading-md: 20px;
|
|
78
|
+
--a-heading-lg: 24px;
|
|
79
|
+
--a-heading-size: var(--a-heading-md);
|
|
80
|
+
|
|
81
|
+
/* section */
|
|
82
|
+
--a-section-sm: 14px;
|
|
83
|
+
--a-section-md: 17px;
|
|
84
|
+
--a-section-lg: 20px;
|
|
85
|
+
--a-section-size: var(--a-section-md);
|
|
86
|
+
|
|
87
|
+
/* subsection */
|
|
88
|
+
--a-subsection-sm: 13px;
|
|
89
|
+
--a-subsection-md: 15px;
|
|
90
|
+
--a-subsection-lg: 17px;
|
|
91
|
+
--a-subsection-size: var(--a-subsection-md);
|
|
92
|
+
|
|
93
|
+
/* body */
|
|
94
|
+
--a-body-sm: 14px;
|
|
95
|
+
--a-body-md: 16px;
|
|
96
|
+
--a-body-lg: 18px;
|
|
97
|
+
--a-body-size: var(--a-body-md);
|
|
98
|
+
|
|
99
|
+
/* deck */
|
|
100
|
+
--a-deck-sm: 15px;
|
|
101
|
+
--a-deck-md: 18px;
|
|
102
|
+
--a-deck-lg: 20px;
|
|
103
|
+
--a-deck-size: var(--a-deck-md);
|
|
104
|
+
|
|
105
|
+
/* caption */
|
|
106
|
+
--a-caption-sm: 14px;
|
|
107
|
+
--a-caption-md: 15px;
|
|
108
|
+
--a-caption-lg: 16px;
|
|
109
|
+
--a-caption-size: var(--a-caption-md);
|
|
110
|
+
|
|
111
|
+
/* kicker */
|
|
112
|
+
--a-kicker-sm: 14px;
|
|
113
|
+
--a-kicker-md: 15px;
|
|
114
|
+
--a-kicker-lg: 16px;
|
|
115
|
+
--a-kicker-size: var(--a-kicker-md);
|
|
116
|
+
|
|
117
|
+
/* label */
|
|
118
|
+
--a-label-sm: 12px;
|
|
119
|
+
--a-label-md: 13px;
|
|
120
|
+
--a-label-lg: 14px;
|
|
121
|
+
--a-label-size: var(--a-label-md);
|
|
122
|
+
|
|
123
|
+
/* metric */
|
|
124
|
+
--a-metric-sm: clamp(20px, 16px + 1.5vw, 32px);
|
|
125
|
+
--a-metric-md: clamp(28px, 24px + 2vw, 48px);
|
|
126
|
+
--a-metric-lg: clamp(40px, 32px + 4vw, 72px);
|
|
127
|
+
--a-metric-size: var(--a-metric-md);
|
|
128
|
+
|
|
129
|
+
/* code */
|
|
130
|
+
--a-code-sm: 14px;
|
|
131
|
+
--a-code-md: 15px;
|
|
132
|
+
--a-code-lg: 16px;
|
|
133
|
+
--a-code-size: var(--a-code-md);
|
|
134
|
+
|
|
135
|
+
/* ── UI — scale up for content context ── */
|
|
136
|
+
--a-ui-px: var(--a-space-3);
|
|
137
|
+
--a-ui-py: var(--a-space-2);
|
|
138
|
+
--a-ui-sm: 14px;
|
|
139
|
+
--a-ui-md: 15px;
|
|
140
|
+
--a-ui-lg: 16px;
|
|
141
|
+
--a-ui-size: var(--a-ui-md);
|
|
142
|
+
|
|
143
|
+
--prose-max-width-sm: 55ch;
|
|
144
|
+
--prose-max-width-md: 65ch;
|
|
145
|
+
--prose-max-width-lg: 75ch;
|
|
146
|
+
--prose-max-width: var(--prose-max-width-md);
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
[prose][size="lg"],
|
|
150
|
+
[prose] [size="lg"] {
|
|
151
|
+
--a-inset: var(--a-inset-lg);
|
|
152
|
+
--a-gap: var(--a-gap-lg);
|
|
153
|
+
--a-size: var(--a-size-lg);
|
|
154
|
+
--a-radius: var(--a-radius-lg);
|
|
155
|
+
}
|
|
156
|
+
[prose][size="sm"],
|
|
157
|
+
[prose] [size="sm"] {
|
|
158
|
+
--a-inset: var(--a-inset-sm);
|
|
159
|
+
--a-gap: var(--a-gap-sm);
|
|
160
|
+
--a-size: var(--a-size-sm);
|
|
161
|
+
--a-radius: var(--a-radius-sm);
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
/* Max-width constraint on flow content */
|
|
165
|
+
[prose] > :is(p, ul, ol, blockquote, pre, table, dl) {
|
|
166
|
+
max-width: var(--prose-max-width);
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
/* ── Prose-enhanced native elements ── */
|
|
170
|
+
|
|
171
|
+
[prose] :is(ul, ol) {
|
|
172
|
+
padding-inline-start: 1.75em;
|
|
173
|
+
margin-block: 0.75em;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
[prose] li + li {
|
|
177
|
+
margin-block-start: 0.375em;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
[prose] blockquote {
|
|
181
|
+
padding: var(--a-space-4) var(--a-space-6);
|
|
182
|
+
border-inline-start-width: 4px;
|
|
183
|
+
font-size: var(--a-body-size);
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
[prose] hr {
|
|
187
|
+
margin-block: var(--a-space-6);
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
[prose] table {
|
|
191
|
+
border: 1px solid var(--a-border-subtle);
|
|
192
|
+
border-radius: var(--a-radius-md);
|
|
193
|
+
overflow: hidden;
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
[prose] th {
|
|
197
|
+
background: var(--a-bg-muted);
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
[prose] pre {
|
|
201
|
+
padding: var(--a-space-5);
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
[prose] img {
|
|
205
|
+
border-radius: var(--a-radius-lg);
|
|
206
|
+
}
|
|
193
207
|
}
|
package/styles/type/scale.css
CHANGED
|
@@ -19,6 +19,12 @@
|
|
|
19
19
|
--a-font-family-code: var(--a-font-family-mono);
|
|
20
20
|
--a-font-family-control: var(--a-font-family-mono);
|
|
21
21
|
--a-font-family: var(--a-font-family-sans);
|
|
22
|
+
/* Back-compat alias for the pre-ADR-0035 token name. DEPRECATED — prefer
|
|
23
|
+
--a-font-family. Kept so legacy `font-family: var(--a-font)` references
|
|
24
|
+
(demo scaffolds, external consumers, embedded apps) resolve to the sans
|
|
25
|
+
stack instead of going invalid-at-computed-value-time → inherit → UA
|
|
26
|
+
serif. Retire once the host.css migration removes the boilerplate. */
|
|
27
|
+
--a-font: var(--a-font-family);
|
|
22
28
|
|
|
23
29
|
/* ── Type scale ──
|
|
24
30
|
Ratio: ~1.25 (major third) with dramatic hero jump.
|
package/styles/typography.css
CHANGED
|
@@ -24,20 +24,25 @@
|
|
|
24
24
|
universal size token system in tokens.css shifts --a-*-size
|
|
25
25
|
tokens so every consuming component tracks the cascade.
|
|
26
26
|
|
|
27
|
-
|
|
27
|
+
THREE PUBLICATION REGISTERS (inset · gap · control · type · radius scale together)
|
|
28
|
+
[verse] — Dense product UI (inspectors, tables, toolbars, side rails).
|
|
29
|
+
Smallest scale: tight inset/gap, small controls + type, tight radius
|
|
30
|
+
(max 16px). Type SHIFTS with [size] (body 11/12/13). styles/verse.css.
|
|
31
|
+
|
|
28
32
|
Default (productive) — Product UI.
|
|
29
33
|
Static, compressed scale. Announce/Divide roles default to -sm
|
|
30
34
|
because product UI rarely needs hero-scale type. Everything else
|
|
31
35
|
defaults to -md. 1-2 px between tiers. No fluid clamps in UI chrome.
|
|
32
36
|
|
|
33
37
|
[prose] — Long-form content (articles, docs, marketing).
|
|
34
|
-
Dynamic scale. All roles default to -md
|
|
35
|
-
|
|
36
|
-
Reading measure (max-width) + generous insets.
|
|
38
|
+
Dynamic scale. All roles default to -md (type PINNED — doesn't shift
|
|
39
|
+
with [size]). Fluid clamps on display/title/metric respond to viewport.
|
|
40
|
+
Reading measure (max-width) + generous insets + rounder radius (max 28px).
|
|
37
41
|
|
|
38
42
|
TIERS
|
|
39
43
|
Base defaults to -sm. [size="md"] or [size="lg"] on containers shifts up.
|
|
40
|
-
[
|
|
44
|
+
[verse] keeps the base convention (type shifts with [size]); [prose]
|
|
45
|
+
overrides to -md defaults (pinned) with fluid viewport-responsive clamps.
|
|
41
46
|
|
|
42
47
|
FONTS
|
|
43
48
|
--a-font-family-sans — long-form, marketing body
|
package/styles/verse.css
ADDED
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
/* ═══════════════════════════════════════════════════════════════
|
|
2
|
+
VERSE — dense / compact context via [verse] attribute.
|
|
3
|
+
|
|
4
|
+
The third typographic register, sibling to [prose]. Where [prose]
|
|
5
|
+
shifts everything UP (long-form, generous), [verse] shifts everything
|
|
6
|
+
DOWN — tighter inset/gap, smaller controls, smaller type — for dense
|
|
7
|
+
product surfaces (inspectors, data tables, toolbars, side rails).
|
|
8
|
+
|
|
9
|
+
<aside verse>...</aside> — md (default)
|
|
10
|
+
<div verse size="sm">...</div> — extra-compact
|
|
11
|
+
<section verse size="lg">...</section> — relaxed-compact
|
|
12
|
+
|
|
13
|
+
Scale relationship (at density=1, --a-gap-k=1):
|
|
14
|
+
register inset sm/md/lg gap sm/md/lg body sm/md/lg
|
|
15
|
+
verse 10 / 12 / 14 10 / 12 / 14 11 / 12 / 13
|
|
16
|
+
regular 14 / 16 / 18 10 / 12 / 14 14 / 15 / 16
|
|
17
|
+
prose 32 / 40 / 48 16 / 20 / 24 14 / 16 / 18
|
|
18
|
+
|
|
19
|
+
TYPE SHIFTS WITH [size] (unlike [prose], which pins type at -md):
|
|
20
|
+
verse redefines the sm/md/lg type VALUES; the `-size` pointers are
|
|
21
|
+
re-declared under [verse]:not([size]) so a BARE verse resolves verse's
|
|
22
|
+
own md value (a pointer left at :root would resolve the BASE value —
|
|
23
|
+
custom props compute at their declaration site). The global [size]
|
|
24
|
+
rules then shift the pointer on [size]-bearing elements, resolving
|
|
25
|
+
verse's sm/lg values. Control-size (--a-size) needs explicit tier rules
|
|
26
|
+
because the global [size] rules set it to hardcoded base values, not via
|
|
27
|
+
--a-size-*.
|
|
28
|
+
|
|
29
|
+
NOTE: type sizes below the spacing anchors (body 11/12/13, control
|
|
30
|
+
18/20/24) are DEDUCED — proposed compact scale, tune to taste.
|
|
31
|
+
═══════════════════════════════════════════════════════════════ */
|
|
32
|
+
|
|
33
|
+
/* `context` layer (ADR-0038 step 7) — sits above utilities+components. */
|
|
34
|
+
@layer context {
|
|
35
|
+
[verse] {
|
|
36
|
+
/* ── Inset — tighter than regular ── */
|
|
37
|
+
--a-inset-sm: var(--a-space-2-5); /* 10px */
|
|
38
|
+
--a-inset-md: var(--a-space-3); /* 12px */
|
|
39
|
+
--a-inset-lg: var(--a-space-3-5); /* 14px */
|
|
40
|
+
--a-inset: var(--a-inset-md);
|
|
41
|
+
|
|
42
|
+
/* ── Gaps — parametric (value × --a-gap-k); k=1 = base value. ── */
|
|
43
|
+
--a-gap-xs: calc(var(--a-space-2) * var(--a-gap-k)); /* 8px @k=1 */
|
|
44
|
+
--a-gap-sm: calc(var(--a-space-2-5) * var(--a-gap-k)); /* 10px @k=1 */
|
|
45
|
+
--a-gap-md: calc(var(--a-space-3) * var(--a-gap-k)); /* 12px @k=1 */
|
|
46
|
+
--a-gap-lg: calc(var(--a-space-3-5) * var(--a-gap-k)); /* 14px @k=1 */
|
|
47
|
+
--a-gap-xl: calc(var(--a-space-4) * var(--a-gap-k)); /* 16px @k=1 */
|
|
48
|
+
--a-gap: var(--a-gap-md);
|
|
49
|
+
|
|
50
|
+
/* ── Radius — verse register: tighter bounds (max 16px). Re-declares the
|
|
51
|
+
clamps so they resolve verse's min/max (base clamps compute at :root). ── */
|
|
52
|
+
--a-radius-min: 0.25rem; /* 4px */
|
|
53
|
+
--a-radius-max: 1rem; /* 16px */
|
|
54
|
+
--a-radius-xs: clamp(var(--a-radius-min), calc(var(--a-radius-k) * var(--a-radius-max) * var(--a-radius-xs-k)), var(--a-radius-max));
|
|
55
|
+
--a-radius-sm: clamp(var(--a-radius-min), calc(var(--a-radius-k) * var(--a-radius-max) * var(--a-radius-sm-k)), var(--a-radius-max));
|
|
56
|
+
--a-radius-md: clamp(var(--a-radius-min), calc(var(--a-radius-k) * var(--a-radius-max) * var(--a-radius-md-k)), var(--a-radius-max));
|
|
57
|
+
--a-radius-lg: clamp(var(--a-radius-min), calc(var(--a-radius-k) * var(--a-radius-max) * var(--a-radius-lg-k)), var(--a-radius-max));
|
|
58
|
+
--a-radius: var(--a-radius-md);
|
|
59
|
+
|
|
60
|
+
/* ── Control sizing — smaller (explicit tier rules below) ── */
|
|
61
|
+
--a-size-sm: calc(var(--a-density) * 1.125rem); /* 18px */
|
|
62
|
+
--a-size-md: calc(var(--a-density) * 1.25rem); /* 20px */
|
|
63
|
+
--a-size-lg: calc(var(--a-density) * 1.5rem); /* 24px */
|
|
64
|
+
--a-size: var(--a-size-md);
|
|
65
|
+
|
|
66
|
+
/* ── Typography — compact register (deduced; static, no fluid clamps;
|
|
67
|
+
floored at 10px). VALUES only — pointers live under :not([size]). ── */
|
|
68
|
+
--a-display-sm: 18px; --a-display-md: 23px; --a-display-lg: 29px;
|
|
69
|
+
--a-title-sm: 16px; --a-title-md: 19px; --a-title-lg: 22px;
|
|
70
|
+
--a-heading-sm: 13px; --a-heading-md: 14px; --a-heading-lg: 15px;
|
|
71
|
+
--a-section-sm: 13px; --a-section-md: 14px; --a-section-lg: 16px;
|
|
72
|
+
--a-subsection-sm: 12px; --a-subsection-md: 13px; --a-subsection-lg: 14px;
|
|
73
|
+
--a-body-sm: 11px; --a-body-md: 12px; --a-body-lg: 13px;
|
|
74
|
+
--a-deck-sm: 14px; --a-deck-md: 15px; --a-deck-lg: 16px;
|
|
75
|
+
--a-caption-sm: 10px; --a-caption-md: 11px; --a-caption-lg: 12px;
|
|
76
|
+
--a-kicker-sm: 10px; --a-kicker-md: 10px; --a-kicker-lg: 11px;
|
|
77
|
+
--a-label-sm: 10px; --a-label-md: 10px; --a-label-lg: 11px;
|
|
78
|
+
--a-metric-sm: 19px; --a-metric-md: 25px; --a-metric-lg: 34px;
|
|
79
|
+
--a-code-sm: 11px; --a-code-md: 12px; --a-code-lg: 13px;
|
|
80
|
+
|
|
81
|
+
/* ── UI control text ── */
|
|
82
|
+
--a-ui-px: var(--a-space-2);
|
|
83
|
+
--a-ui-py: var(--a-space-1);
|
|
84
|
+
--a-ui-sm: 11px; --a-ui-md: 12px; --a-ui-lg: 13px;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
/* Bare-verse default tier — re-declares the `-size` pointers ON the verse
|
|
88
|
+
element so they resolve verse's values (base :root pointers would resolve
|
|
89
|
+
base values). Mirrors the base default-tier convention: announce/divide
|
|
90
|
+
roles → -sm, text/data roles → -md. The global [size] rules override these
|
|
91
|
+
on [size]-bearing elements (resolving verse's sm/lg token values). */
|
|
92
|
+
[verse]:not([size]) {
|
|
93
|
+
--a-display-size: var(--a-display-sm);
|
|
94
|
+
--a-title-size: var(--a-title-sm);
|
|
95
|
+
--a-heading-size: var(--a-heading-sm);
|
|
96
|
+
--a-section-size: var(--a-section-sm);
|
|
97
|
+
--a-subsection-size: var(--a-subsection-md);
|
|
98
|
+
--a-body-size: var(--a-body-md);
|
|
99
|
+
--a-deck-size: var(--a-deck-md);
|
|
100
|
+
--a-caption-size: var(--a-caption-md);
|
|
101
|
+
--a-kicker-size: var(--a-kicker-md);
|
|
102
|
+
--a-label-size: var(--a-label-md);
|
|
103
|
+
--a-metric-size: var(--a-metric-md);
|
|
104
|
+
--a-code-size: var(--a-code-md);
|
|
105
|
+
--a-ui-size: var(--a-ui-md);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
/* Tier shifts — inset/gap/control-size (typography shifts via global [size],
|
|
109
|
+
which resolves verse's token values). Mirrors the [prose] tier pattern. */
|
|
110
|
+
[verse][size="lg"],
|
|
111
|
+
[verse] [size="lg"] {
|
|
112
|
+
--a-inset: var(--a-inset-lg);
|
|
113
|
+
--a-gap: var(--a-gap-lg);
|
|
114
|
+
--a-size: var(--a-size-lg);
|
|
115
|
+
}
|
|
116
|
+
[verse][size="sm"],
|
|
117
|
+
[verse] [size="sm"] {
|
|
118
|
+
--a-inset: var(--a-inset-sm);
|
|
119
|
+
--a-gap: var(--a-gap-sm);
|
|
120
|
+
--a-size: var(--a-size-sm);
|
|
121
|
+
}
|
|
122
|
+
}
|