@adia-ai/web-components 0.8.9 → 0.8.11

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.
Files changed (89) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/MIGRATION.md +58 -0
  3. package/USAGE.md +5 -7
  4. package/components/adia-mark/adia-mark.a2ui.json +6 -6
  5. package/components/adia-mark/adia-mark.class.js +1 -1
  6. package/components/adia-mark/adia-mark.css +3 -4
  7. package/components/adia-mark/adia-mark.d.ts +1 -1
  8. package/components/adia-mark/adia-mark.examples.md +0 -2
  9. package/components/adia-mark/adia-mark.test.js +3 -3
  10. package/components/adia-mark/adia-mark.yaml +5 -4
  11. package/components/adia-wordmark/adia-wordmark.a2ui.json +108 -0
  12. package/components/adia-wordmark/adia-wordmark.class.js +60 -0
  13. package/components/adia-wordmark/adia-wordmark.css +45 -0
  14. package/components/adia-wordmark/adia-wordmark.d.ts +20 -0
  15. package/components/adia-wordmark/adia-wordmark.examples.md +23 -0
  16. package/components/adia-wordmark/adia-wordmark.js +17 -0
  17. package/components/adia-wordmark/adia-wordmark.test.js +69 -0
  18. package/components/adia-wordmark/adia-wordmark.yaml +102 -0
  19. package/components/avatar/avatar-group.a2ui.json +1 -1
  20. package/components/avatar/avatar-group.yaml +1 -1
  21. package/components/avatar/avatar.a2ui.json +2 -4
  22. package/components/avatar/avatar.css +16 -12
  23. package/components/avatar/avatar.d.ts +3 -3
  24. package/components/avatar/avatar.examples.md +1 -1
  25. package/components/avatar/avatar.yaml +1 -3
  26. package/components/badge/badge.a2ui.json +2 -4
  27. package/components/badge/badge.d.ts +2 -2
  28. package/components/badge/badge.yaml +1 -3
  29. package/components/button/button.a2ui.json +2 -4
  30. package/components/button/button.d.ts +2 -2
  31. package/components/button/button.yaml +1 -3
  32. package/components/calendar-grid/calendar-grid.class.js +44 -27
  33. package/components/calendar-grid/calendar-grid.css +1 -1
  34. package/components/calendar-picker/calendar-picker.class.js +2 -2
  35. package/components/calendar-picker/calendar-picker.css +1 -1
  36. package/components/card/card.css +1 -1
  37. package/components/chat-thread/chat-input.css +1 -1
  38. package/components/combobox/combobox.class.js +1 -1
  39. package/components/combobox/combobox.css +1 -1
  40. package/components/icon/icon.a2ui.json +1 -1
  41. package/components/icon/icon.class.js +5 -5
  42. package/components/icon/icon.css +7 -15
  43. package/components/icon/icon.d.ts +1 -1
  44. package/components/icon/icon.examples.md +1 -1
  45. package/components/icon/icon.yaml +10 -10
  46. package/components/index.js +1 -0
  47. package/components/input/input.class.js +2 -2
  48. package/components/modal/modal.a2ui.json +2 -3
  49. package/components/modal/modal.d.ts +2 -2
  50. package/components/modal/modal.yaml +1 -2
  51. package/components/select/select.class.js +4 -4
  52. package/components/select/select.css +12 -3
  53. package/components/swatch/swatch.css +1 -1
  54. package/components/switch/switch.a2ui.json +2 -4
  55. package/components/switch/switch.yaml +1 -3
  56. package/components/table/table.yaml +9 -3
  57. package/components/tag/tag.a2ui.json +2 -1
  58. package/components/tag/tag.class.js +1 -1
  59. package/components/tag/tag.css +31 -5
  60. package/components/tag/tag.d.ts +2 -2
  61. package/components/tag/tag.yaml +5 -1
  62. package/components/theme-provider/theme-provider.a2ui.json +11 -1
  63. package/components/theme-provider/theme-provider.class.js +27 -7
  64. package/components/theme-provider/theme-provider.d.ts +2 -2
  65. package/components/theme-provider/theme-provider.yaml +10 -1
  66. package/components/timeline/timeline.css +1 -1
  67. package/components/toggle-scheme/toggle-scheme.a2ui.json +2 -4
  68. package/components/toggle-scheme/toggle-scheme.d.ts +2 -2
  69. package/components/toggle-scheme/toggle-scheme.yaml +1 -3
  70. package/dist/host.min.css +1 -1
  71. package/dist/host.sheet.js +1 -1
  72. package/dist/scale.min.css +1 -0
  73. package/dist/scale.sheet.js +11 -0
  74. package/dist/theme-provider.min.js +8 -8
  75. package/dist/web-components.min.css +1 -1
  76. package/dist/web-components.min.js +94 -86
  77. package/dist/web-components.sheet.js +1 -1
  78. package/package.json +1 -1
  79. package/patterns/comments-and-collaboration/comments-and-collaboration.examples.html +4 -4
  80. package/patterns/kanban-board/kanban-board.examples.html +8 -8
  81. package/patterns/notifications-bell-and-digest/notifications-bell-and-digest.examples.html +2 -2
  82. package/patterns/profile-public-and-verification/profile-public-and-verification.examples.html +1 -1
  83. package/patterns/search-discovery/search-discovery.examples.html +4 -4
  84. package/styles/colors/semantics/aliases.css +16 -3
  85. package/styles/colors/semantics/features.css +10 -0
  86. package/styles/components.css +1 -0
  87. package/styles/prose.css +4 -0
  88. package/styles/scale.css +683 -0
  89. package/styles/verse.css +4 -0
@@ -0,0 +1,683 @@
1
+ /* ═══════════════════════════════════════════════════════════════
2
+ SCALE — the ancestor sizing context via [scale] attribute.
3
+
4
+ Six explicit tiers across two bands. Each tier is a HAND-TABLED
5
+ lookup (never a multiplier — multipliers drift height/font/icon
6
+ off coherent rows; agent-ui ADR-0038 precedent):
7
+
8
+ [scale="ui-sm"] dense product UI (≡ legacy [verse])
9
+ [scale="ui-md"] the base register (≡ :root defaults)
10
+ [scale="ui-lg"] touch/presentation UI
11
+ [scale="content-sm"] compact article
12
+ [scale="content-md"] long-form default (≡ legacy [prose])
13
+ [scale="content-lg"] hero / marketing
14
+
15
+ Control-band overlap: content-sm ≡ ui-md and content-md ≡ ui-lg
16
+ in the control row — six names, four distinct control registers.
17
+ The bands differ by RHYTHM (gap/inset ramp) and type register.
18
+
19
+ Scale picks the TABLE, [size] picks the ROW: every tier re-tables
20
+ the full *-sm/md/lg families, so the universal [size] attribute
21
+ keeps working on and below a scaled element. Tokens compute at
22
+ their declaration site, so each tier RE-DECLARES every pointer it
23
+ shifts (the [verse]/[prose] gotcha), and carries explicit
24
+ [size] tier rules — this context layer shadows the utilities-layer
25
+ global [size] rules for any token the tier pins.
26
+
27
+ Selector shape: [scale][scale="X"] (0-2-0) so a tier
28
+ deterministically beats the legacy [verse]/[prose] attributes
29
+ (0-1-0) regardless of stylesheet adoption order. Never a bare
30
+ [scale] selector — heatmap-ui reflects scale="linear|log" and
31
+ legacy theme-provider reflects scale="verse|prose".
32
+
33
+ [verse]/[prose] are DEPRECATED in favor of ui-sm / content-md and
34
+ are removed at v1.0. Do not combine verse|prose with [scale] on
35
+ one element.
36
+
37
+ ui-sm, ui-md and content-md are byte-derived from verse.css,
38
+ :root and prose.css respectively — an unscaled page and a
39
+ [scale="ui-md"] page render identically. ui-lg, content-sm and
40
+ content-lg are DEDUCED rows (one-step shifts of their neighbors)
41
+ — proposed, tune to taste.
42
+
43
+ --a-density is orthogonal and composes: every spacing value rides
44
+ the --a-space-* rungs and every control row multiplies
45
+ var(--a-density), exactly like the base tables.
46
+ ═══════════════════════════════════════════════════════════════ */
47
+
48
+ /* `context` layer (ADR-0038 step 7) — sits above utilities+components. */
49
+ @layer context {
50
+ /* ═══════════════ ui-sm — dense product UI (≡ verse) ═══════════════ */
51
+ [scale][scale="ui-sm"] {
52
+ --a-inset-sm: var(--a-space-2-5); /* 10px */
53
+ --a-inset-md: var(--a-space-3); /* 12px */
54
+ --a-inset-lg: var(--a-space-3-5); /* 14px */
55
+ --a-inset: var(--a-inset-md);
56
+
57
+ /* ui band shares the base gap ramp (rhythm is band-constant) */
58
+ --a-gap-xs: calc(var(--a-space-2) * var(--a-gap-k)); /* 8px @k=1 */
59
+ --a-gap-sm: calc(var(--a-space-2-5) * var(--a-gap-k)); /* 10px @k=1 */
60
+ --a-gap-md: calc(var(--a-space-3) * var(--a-gap-k)); /* 12px @k=1 */
61
+ --a-gap-lg: calc(var(--a-space-3-5) * var(--a-gap-k)); /* 14px @k=1 */
62
+ --a-gap-xl: calc(var(--a-space-4) * var(--a-gap-k)); /* 16px @k=1 */
63
+ --a-gap: var(--a-gap-md);
64
+
65
+ /* tighter radius bounds (verse register) */
66
+ --a-radius-min: 0.25rem; /* 4px */
67
+ --a-radius-max: 0.75rem; /* 12px */
68
+ --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));
69
+ --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));
70
+ --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));
71
+ --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));
72
+ --a-radius: var(--a-radius-md);
73
+
74
+ --a-size-sm: calc(var(--a-density) * 1.250rem); /* 20px */
75
+ --a-size-md: calc(var(--a-density) * 1.500rem); /* 24px */
76
+ --a-size-lg: calc(var(--a-density) * 1.750rem); /* 28px */
77
+ --a-size: var(--a-size-md);
78
+
79
+ --a-icon-size: 16px;
80
+ --a-caret-size: 14px;
81
+ --a-toggle-size: var(--a-space-5); /* 20px @d=1 — md */
82
+
83
+ /* compact type register (static, floored at 10px) */
84
+ --a-display-sm: 18px; --a-display-md: 23px; --a-display-lg: 29px;
85
+ --a-title-sm: 16px; --a-title-md: 19px; --a-title-lg: 22px;
86
+ --a-heading-sm: 13px; --a-heading-md: 14px; --a-heading-lg: 15px;
87
+ --a-section-sm: 13px; --a-section-md: 14px; --a-section-lg: 16px;
88
+ --a-subsection-sm: 12px; --a-subsection-md: 13px; --a-subsection-lg: 14px;
89
+ --a-body-sm: 11px; --a-body-md: 12px; --a-body-lg: 13px;
90
+ --a-deck-sm: 14px; --a-deck-md: 15px; --a-deck-lg: 16px;
91
+ --a-caption-sm: 10px; --a-caption-md: 11px; --a-caption-lg: 12px;
92
+ --a-kicker-sm: 10px; --a-kicker-md: 10px; --a-kicker-lg: 11px;
93
+ --a-label-sm: 10px; --a-label-md: 10px; --a-label-lg: 11px;
94
+ --a-metric-sm: 19px; --a-metric-md: 25px; --a-metric-lg: 34px;
95
+ --a-code-sm: 11px; --a-code-md: 12px; --a-code-lg: 13px;
96
+
97
+ --a-ui-px: var(--a-space-2);
98
+ --a-ui-py: var(--a-space-1);
99
+ --a-ui-sm: 11px; --a-ui-md: 12px; --a-ui-lg: 13px;
100
+ }
101
+
102
+ /* ═══════════════ ui-md — the base register (reset tier) ═══════════════
103
+ A FULL byte-copy of the :root tables, not a no-op: scale="ui-md"
104
+ inside a scaled region resets its subtree to base. */
105
+ [scale][scale="ui-md"] {
106
+ --a-inset-sm: var(--a-space-3-5); /* 14px */
107
+ --a-inset-md: var(--a-space-4); /* 16px */
108
+ --a-inset-lg: var(--a-space-4-5); /* 18px */
109
+ --a-inset: var(--a-inset-md);
110
+
111
+ --a-gap-xs: calc(var(--a-space-2) * var(--a-gap-k)); /* 8px @k=1 */
112
+ --a-gap-sm: calc(var(--a-space-2-5) * var(--a-gap-k)); /* 10px @k=1 */
113
+ --a-gap-md: calc(var(--a-space-3) * var(--a-gap-k)); /* 12px @k=1 */
114
+ --a-gap-lg: calc(var(--a-space-3-5) * var(--a-gap-k)); /* 14px @k=1 */
115
+ --a-gap-xl: calc(var(--a-space-4) * var(--a-gap-k)); /* 16px @k=1 */
116
+ --a-gap: var(--a-gap-md);
117
+
118
+ --a-radius-min: 0.25rem;
119
+ --a-radius-max: 1.25rem;
120
+ --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));
121
+ --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));
122
+ --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));
123
+ --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));
124
+ --a-radius: var(--a-radius-md);
125
+
126
+ --a-size-sm: calc(var(--a-density) * 1.5rem); /* 24px */
127
+ --a-size-md: calc(var(--a-density) * 1.875rem); /* 30px */
128
+ --a-size-lg: calc(var(--a-density) * 2.25rem); /* 36px */
129
+ --a-size: var(--a-size-md);
130
+
131
+ --a-icon-size: 1rem;
132
+ --a-caret-size: 0.875rem;
133
+ --a-toggle-size: calc(var(--a-size-sm) - var(--a-space-1)); /* 20px @d=1 — md */
134
+
135
+ /* base type register (roles.css byte-values) */
136
+ --a-display-sm: clamp(22px, 20px + 1vw, 31px);
137
+ --a-display-md: clamp(29px, 24px + 1.5vw, 39px);
138
+ --a-display-lg: clamp(37px, 31px + 2vw, 52px);
139
+ --a-title-sm: clamp(20px, 18px + 0.375vw, 28px);
140
+ --a-title-md: clamp(24px, 20px + 0.5vw, 32px);
141
+ --a-title-lg: clamp(28px, 24px + 1vw, 36px);
142
+ --a-heading-sm: 16px; --a-heading-md: 17px; --a-heading-lg: 18px;
143
+ --a-section-sm: 16px; --a-section-md: 17px; --a-section-lg: 19px;
144
+ --a-subsection-sm: 15px; --a-subsection-md: 16px; --a-subsection-lg: 17px;
145
+ --a-body-sm: 13px; --a-body-md: 14px; --a-body-lg: 15px;
146
+ --a-deck-sm: 17px; --a-deck-md: 18px; --a-deck-lg: 20px;
147
+ --a-caption-sm: 13px; --a-caption-md: 14px; --a-caption-lg: 15px;
148
+ --a-kicker-sm: 11px; --a-kicker-md: 12px; --a-kicker-lg: 13px;
149
+ --a-label-sm: 11px; --a-label-md: 12px; --a-label-lg: 13px;
150
+ --a-metric-sm: clamp(24px, 22px + 1vw, 34px);
151
+ --a-metric-md: clamp(32px, 28px + 1.5vw, 48px);
152
+ --a-metric-lg: clamp(44px, 38px + 2vw, 64px);
153
+ --a-code-sm: 13px; --a-code-md: 14px; --a-code-lg: 15px;
154
+
155
+ --a-ui-px: var(--a-space-2);
156
+ --a-ui-py: var(--a-space-2);
157
+ --a-ui-sm: 12px; --a-ui-md: 13px; --a-ui-lg: 14px;
158
+ }
159
+
160
+ /* ═══════════════ ui-lg — touch / presentation UI (deduced) ═══════════════ */
161
+ [scale][scale="ui-lg"] {
162
+ --a-inset-sm: var(--a-space-4); /* 16px */
163
+ --a-inset-md: var(--a-space-4-5); /* 18px */
164
+ --a-inset-lg: var(--a-space-5); /* 20px */
165
+ --a-inset: var(--a-inset-md);
166
+
167
+ --a-gap-xs: calc(var(--a-space-2) * var(--a-gap-k)); /* 8px @k=1 */
168
+ --a-gap-sm: calc(var(--a-space-2-5) * var(--a-gap-k)); /* 10px @k=1 */
169
+ --a-gap-md: calc(var(--a-space-3) * var(--a-gap-k)); /* 12px @k=1 */
170
+ --a-gap-lg: calc(var(--a-space-3-5) * var(--a-gap-k)); /* 14px @k=1 */
171
+ --a-gap-xl: calc(var(--a-space-4) * var(--a-gap-k)); /* 16px @k=1 */
172
+ --a-gap: var(--a-gap-md);
173
+
174
+ --a-radius-min: 0.25rem;
175
+ --a-radius-max: 1.25rem;
176
+ --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));
177
+ --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));
178
+ --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));
179
+ --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));
180
+ --a-radius: var(--a-radius-md);
181
+
182
+ --a-size-sm: calc(var(--a-density) * 1.75rem); /* 28px */
183
+ --a-size-md: calc(var(--a-density) * 2.25rem); /* 36px */
184
+ --a-size-lg: calc(var(--a-density) * 2.75rem); /* 44px */
185
+ --a-size: var(--a-size-md);
186
+
187
+ --a-icon-size: 20px;
188
+ --a-caret-size: 16px;
189
+ --a-toggle-size: var(--a-space-6); /* 24px @d=1 — md */
190
+
191
+ /* base register shifted up one row; lg extrapolated */
192
+ --a-display-sm: clamp(29px, 24px + 1.5vw, 39px);
193
+ --a-display-md: clamp(37px, 31px + 2vw, 52px);
194
+ --a-display-lg: clamp(44px, 38px + 2.5vw, 64px);
195
+ --a-title-sm: clamp(24px, 20px + 0.5vw, 32px);
196
+ --a-title-md: clamp(28px, 24px + 1vw, 36px);
197
+ --a-title-lg: clamp(32px, 28px + 1.5vw, 44px);
198
+ --a-heading-sm: 17px; --a-heading-md: 18px; --a-heading-lg: 19px;
199
+ --a-section-sm: 17px; --a-section-md: 19px; --a-section-lg: 21px;
200
+ --a-subsection-sm: 16px; --a-subsection-md: 17px; --a-subsection-lg: 18px;
201
+ --a-body-sm: 14px; --a-body-md: 15px; --a-body-lg: 16px;
202
+ --a-deck-sm: 18px; --a-deck-md: 20px; --a-deck-lg: 22px;
203
+ --a-caption-sm: 14px; --a-caption-md: 15px; --a-caption-lg: 16px;
204
+ --a-kicker-sm: 12px; --a-kicker-md: 13px; --a-kicker-lg: 14px;
205
+ --a-label-sm: 12px; --a-label-md: 13px; --a-label-lg: 14px;
206
+ --a-metric-sm: clamp(32px, 28px + 1.5vw, 48px);
207
+ --a-metric-md: clamp(44px, 38px + 2vw, 64px);
208
+ --a-metric-lg: clamp(52px, 44px + 2.5vw, 76px);
209
+ --a-code-sm: 14px; --a-code-md: 15px; --a-code-lg: 16px;
210
+
211
+ --a-ui-px: var(--a-space-3);
212
+ --a-ui-py: var(--a-space-2);
213
+ --a-ui-sm: 13px; --a-ui-md: 14px; --a-ui-lg: 16px;
214
+ }
215
+
216
+ /* ═══════════════ content-sm — compact article (deduced) ═══════════════
217
+ Control band ≡ ui-md; rhythm and type run on the content ramp.
218
+ Icon/caret/toggle stay unpinned (prose parity) — the universal
219
+ [size] rules and the base values serve them. */
220
+ [scale][scale="content-sm"] {
221
+ --a-inset-sm: var(--a-space-6); /* 24px */
222
+ --a-inset-md: var(--a-space-8); /* 32px */
223
+ --a-inset-lg: var(--a-space-10); /* 40px */
224
+ --a-inset: var(--a-inset-md);
225
+
226
+ /* content band shares the prose gap ramp (one rung up) */
227
+ --a-gap-xs: calc(var(--a-space-3) * var(--a-gap-k)); /* 12px @k=1 */
228
+ --a-gap-sm: calc(var(--a-space-4) * var(--a-gap-k)); /* 16px @k=1 */
229
+ --a-gap-md: calc(var(--a-space-5) * var(--a-gap-k)); /* 20px @k=1 */
230
+ --a-gap-lg: calc(var(--a-space-6) * var(--a-gap-k)); /* 24px @k=1 */
231
+ --a-gap-xl: calc(var(--a-space-7) * var(--a-gap-k)); /* 28px @k=1 */
232
+ --a-gap: var(--a-gap-md);
233
+
234
+ /* rounder radius bounds (content register) */
235
+ --a-radius-min: 0.375rem; /* 6px */
236
+ --a-radius-max: 1.75rem; /* 28px */
237
+ --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));
238
+ --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));
239
+ --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));
240
+ --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));
241
+ --a-radius: var(--a-radius-md);
242
+
243
+ --a-size-sm: calc(var(--a-density) * 1.5rem); /* 24px */
244
+ --a-size-md: calc(var(--a-density) * 1.875rem); /* 30px */
245
+ --a-size-lg: calc(var(--a-density) * 2.25rem); /* 36px */
246
+ --a-size: var(--a-size-md);
247
+
248
+ /* prose register shifted down one row; sm extrapolated */
249
+ --a-display-sm: clamp(20px, 18px + 1vw, 30px);
250
+ --a-display-md: clamp(24px, 20px + 1.5vw, 36px);
251
+ --a-display-lg: clamp(32px, 24px + 3vw, 56px);
252
+ --a-title-sm: clamp(16px, 15px + 0.5vw, 20px);
253
+ --a-title-md: clamp(18px, 16px + 0.75vw, 24px);
254
+ --a-title-lg: clamp(24px, 20px + 1.5vw, 36px);
255
+ --a-heading-sm: 14px; --a-heading-md: 16px; --a-heading-lg: 20px;
256
+ --a-section-sm: 13px; --a-section-md: 14px; --a-section-lg: 17px;
257
+ --a-subsection-sm: 12px; --a-subsection-md: 13px; --a-subsection-lg: 15px;
258
+ --a-body-sm: 13px; --a-body-md: 14px; --a-body-lg: 16px;
259
+ --a-deck-sm: 14px; --a-deck-md: 15px; --a-deck-lg: 18px;
260
+ --a-caption-sm: 13px; --a-caption-md: 14px; --a-caption-lg: 15px;
261
+ --a-kicker-sm: 13px; --a-kicker-md: 14px; --a-kicker-lg: 15px;
262
+ --a-label-sm: 11px; --a-label-md: 12px; --a-label-lg: 13px;
263
+ --a-metric-sm: clamp(16px, 14px + 1vw, 26px);
264
+ --a-metric-md: clamp(20px, 16px + 1.5vw, 32px);
265
+ --a-metric-lg: clamp(28px, 24px + 2vw, 48px);
266
+ --a-code-sm: 13px; --a-code-md: 14px; --a-code-lg: 15px;
267
+
268
+ --a-ui-px: var(--a-space-3);
269
+ --a-ui-py: var(--a-space-2);
270
+ --a-ui-sm: 13px; --a-ui-md: 14px; --a-ui-lg: 15px;
271
+
272
+ --prose-max-width-sm: 55ch;
273
+ --prose-max-width-md: 65ch;
274
+ --prose-max-width-lg: 75ch;
275
+ --prose-max-width: var(--prose-max-width-md);
276
+ }
277
+
278
+ /* ═══════════════ content-md — long-form default (≡ prose) ═══════════════ */
279
+ [scale][scale="content-md"] {
280
+ --a-inset-sm: var(--a-space-8); /* 32px */
281
+ --a-inset-md: var(--a-space-10); /* 40px */
282
+ --a-inset-lg: var(--a-space-12); /* 48px */
283
+ --a-inset: var(--a-inset-md);
284
+
285
+ --a-gap-xs: calc(var(--a-space-3) * var(--a-gap-k)); /* 12px @k=1 */
286
+ --a-gap-sm: calc(var(--a-space-4) * var(--a-gap-k)); /* 16px @k=1 */
287
+ --a-gap-md: calc(var(--a-space-5) * var(--a-gap-k)); /* 20px @k=1 */
288
+ --a-gap-lg: calc(var(--a-space-6) * var(--a-gap-k)); /* 24px @k=1 */
289
+ --a-gap-xl: calc(var(--a-space-7) * var(--a-gap-k)); /* 28px @k=1 */
290
+ --a-gap: var(--a-gap-md);
291
+
292
+ --a-radius-min: 0.375rem; /* 6px */
293
+ --a-radius-max: 1.75rem; /* 28px */
294
+ --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));
295
+ --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));
296
+ --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));
297
+ --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));
298
+ --a-radius: var(--a-radius-md);
299
+
300
+ --a-size-sm: calc(var(--a-density) * 1.75rem); /* 28px */
301
+ --a-size-md: calc(var(--a-density) * 2.25rem); /* 36px */
302
+ --a-size-lg: calc(var(--a-density) * 2.75rem); /* 44px */
303
+ --a-size: var(--a-size-md);
304
+
305
+ /* prose type register (prose.css byte-values) */
306
+ --a-display-sm: clamp(24px, 20px + 1.5vw, 36px);
307
+ --a-display-md: clamp(32px, 24px + 3vw, 56px);
308
+ --a-display-lg: clamp(40px, 32px + 4vw, 80px);
309
+ --a-title-sm: clamp(18px, 16px + 0.75vw, 24px);
310
+ --a-title-md: clamp(24px, 20px + 1.5vw, 36px);
311
+ --a-title-lg: clamp(28px, 24px + 2vw, 48px);
312
+ --a-heading-sm: 16px; --a-heading-md: 20px; --a-heading-lg: 24px;
313
+ --a-section-sm: 14px; --a-section-md: 17px; --a-section-lg: 20px;
314
+ --a-subsection-sm: 13px; --a-subsection-md: 15px; --a-subsection-lg: 17px;
315
+ --a-body-sm: 14px; --a-body-md: 16px; --a-body-lg: 18px;
316
+ --a-deck-sm: 15px; --a-deck-md: 18px; --a-deck-lg: 20px;
317
+ --a-caption-sm: 14px; --a-caption-md: 15px; --a-caption-lg: 16px;
318
+ --a-kicker-sm: 14px; --a-kicker-md: 15px; --a-kicker-lg: 16px;
319
+ --a-label-sm: 12px; --a-label-md: 13px; --a-label-lg: 14px;
320
+ --a-metric-sm: clamp(20px, 16px + 1.5vw, 32px);
321
+ --a-metric-md: clamp(28px, 24px + 2vw, 48px);
322
+ --a-metric-lg: clamp(40px, 32px + 4vw, 72px);
323
+ --a-code-sm: 14px; --a-code-md: 15px; --a-code-lg: 16px;
324
+
325
+ --a-ui-px: var(--a-space-3);
326
+ --a-ui-py: var(--a-space-2);
327
+ --a-ui-sm: 14px; --a-ui-md: 15px; --a-ui-lg: 16px;
328
+
329
+ --prose-max-width-sm: 55ch;
330
+ --prose-max-width-md: 65ch;
331
+ --prose-max-width-lg: 75ch;
332
+ --prose-max-width: var(--prose-max-width-md);
333
+ }
334
+
335
+ /* ═══════════════ content-lg — hero / marketing (deduced) ═══════════════ */
336
+ [scale][scale="content-lg"] {
337
+ --a-inset-sm: var(--a-space-10); /* 40px */
338
+ --a-inset-md: var(--a-space-12); /* 48px */
339
+ --a-inset-lg: var(--a-space-16); /* 64px */
340
+ --a-inset: var(--a-inset-md);
341
+
342
+ --a-gap-xs: calc(var(--a-space-3) * var(--a-gap-k)); /* 12px @k=1 */
343
+ --a-gap-sm: calc(var(--a-space-4) * var(--a-gap-k)); /* 16px @k=1 */
344
+ --a-gap-md: calc(var(--a-space-5) * var(--a-gap-k)); /* 20px @k=1 */
345
+ --a-gap-lg: calc(var(--a-space-6) * var(--a-gap-k)); /* 24px @k=1 */
346
+ --a-gap-xl: calc(var(--a-space-7) * var(--a-gap-k)); /* 28px @k=1 */
347
+ --a-gap: var(--a-gap-md);
348
+
349
+ --a-radius-min: 0.375rem; /* 6px */
350
+ --a-radius-max: 1.75rem; /* 28px */
351
+ --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));
352
+ --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));
353
+ --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));
354
+ --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));
355
+ --a-radius: var(--a-radius-md);
356
+
357
+ --a-size-sm: calc(var(--a-density) * 2.25rem); /* 36px */
358
+ --a-size-md: calc(var(--a-density) * 2.75rem); /* 44px */
359
+ --a-size-lg: calc(var(--a-density) * 3.25rem); /* 52px */
360
+ --a-size: var(--a-size-md);
361
+
362
+ --a-icon-size: 20px;
363
+ --a-caret-size: 16px;
364
+ --a-toggle-size: var(--a-space-6); /* 24px @d=1 — md */
365
+
366
+ /* prose register shifted up one row; lg extrapolated */
367
+ --a-display-sm: clamp(32px, 24px + 3vw, 56px);
368
+ --a-display-md: clamp(40px, 32px + 4vw, 80px);
369
+ --a-display-lg: clamp(48px, 36px + 5vw, 96px);
370
+ --a-title-sm: clamp(24px, 20px + 1.5vw, 36px);
371
+ --a-title-md: clamp(28px, 24px + 2vw, 48px);
372
+ --a-title-lg: clamp(34px, 28px + 2.5vw, 56px);
373
+ --a-heading-sm: 20px; --a-heading-md: 24px; --a-heading-lg: 28px;
374
+ --a-section-sm: 17px; --a-section-md: 20px; --a-section-lg: 24px;
375
+ --a-subsection-sm: 15px; --a-subsection-md: 17px; --a-subsection-lg: 19px;
376
+ --a-body-sm: 16px; --a-body-md: 18px; --a-body-lg: 20px;
377
+ --a-deck-sm: 18px; --a-deck-md: 20px; --a-deck-lg: 24px;
378
+ --a-caption-sm: 15px; --a-caption-md: 16px; --a-caption-lg: 17px;
379
+ --a-kicker-sm: 15px; --a-kicker-md: 16px; --a-kicker-lg: 17px;
380
+ --a-label-sm: 13px; --a-label-md: 14px; --a-label-lg: 15px;
381
+ --a-metric-sm: clamp(28px, 24px + 2vw, 48px);
382
+ --a-metric-md: clamp(40px, 32px + 4vw, 72px);
383
+ --a-metric-lg: clamp(48px, 40px + 4.5vw, 88px);
384
+ --a-code-sm: 15px; --a-code-md: 16px; --a-code-lg: 17px;
385
+
386
+ --a-ui-px: var(--a-space-4);
387
+ --a-ui-py: var(--a-space-2);
388
+ --a-ui-sm: 15px; --a-ui-md: 16px; --a-ui-lg: 18px;
389
+
390
+ --prose-max-width-sm: 55ch;
391
+ --prose-max-width-md: 65ch;
392
+ --prose-max-width-lg: 75ch;
393
+ --prose-max-width: var(--prose-max-width-md);
394
+ }
395
+
396
+ /* ═══════════════ Default-tier type pointers ═══════════════
397
+ Re-declared ON the scale element (:root pointers would resolve
398
+ base values — declaration-site rule). The global [size] rules
399
+ override these on [size]-bearing elements. ui-md reproduces the
400
+ BASE pointer defaults (announce/divide roles → -sm, the rest →
401
+ -md, per roles.css); every other tier pins its register at -md
402
+ (the verse/prose convention). */
403
+ [scale][scale="ui-md"]:not([size]) {
404
+ --a-display-size: var(--a-display-sm);
405
+ --a-title-size: var(--a-title-sm);
406
+ --a-heading-size: var(--a-heading-sm);
407
+ --a-section-size: var(--a-section-sm);
408
+ --a-subsection-size: var(--a-subsection-md);
409
+ --a-body-size: var(--a-body-md);
410
+ --a-deck-size: var(--a-deck-md);
411
+ --a-caption-size: var(--a-caption-md);
412
+ --a-kicker-size: var(--a-kicker-md);
413
+ --a-label-size: var(--a-label-md);
414
+ --a-metric-size: var(--a-metric-md);
415
+ --a-code-size: var(--a-code-md);
416
+ --a-ui-size: var(--a-ui-md);
417
+ }
418
+ [scale][scale="ui-sm"]:not([size]),
419
+ [scale][scale="ui-lg"]:not([size]),
420
+ [scale][scale="content-sm"]:not([size]),
421
+ [scale][scale="content-md"]:not([size]),
422
+ [scale][scale="content-lg"]:not([size]) {
423
+ --a-display-size: var(--a-display-md);
424
+ --a-title-size: var(--a-title-md);
425
+ --a-heading-size: var(--a-heading-md);
426
+ --a-section-size: var(--a-section-md);
427
+ --a-subsection-size: var(--a-subsection-md);
428
+ --a-body-size: var(--a-body-md);
429
+ --a-deck-size: var(--a-deck-md);
430
+ --a-caption-size: var(--a-caption-md);
431
+ --a-kicker-size: var(--a-kicker-md);
432
+ --a-label-size: var(--a-label-md);
433
+ --a-metric-size: var(--a-metric-md);
434
+ --a-code-size: var(--a-code-md);
435
+ --a-ui-size: var(--a-ui-md);
436
+ }
437
+
438
+ /* ═══════════════ [size] tier rules ═══════════════
439
+ Required because this context layer pins tokens the utilities-
440
+ layer global [size] rules would otherwise shift. Typography
441
+ shifts via the global [size] rules (they resolve each tier's
442
+ re-tabled family values). */
443
+
444
+ /* ui-sm (verse byte-values) */
445
+ [scale][scale="ui-sm"][size="sm"],
446
+ [scale][scale="ui-sm"] [size="sm"] {
447
+ --a-inset: var(--a-inset-sm);
448
+ --a-gap: var(--a-gap-sm);
449
+ --a-size: var(--a-size-sm);
450
+ --a-radius: var(--a-radius-sm);
451
+ --a-icon-size: 14px;
452
+ --a-caret-size: 12px;
453
+ --a-toggle-size: var(--a-space-4); /* 16px @d=1 */
454
+ }
455
+ [scale][scale="ui-sm"][size="lg"],
456
+ [scale][scale="ui-sm"] [size="lg"] {
457
+ --a-inset: var(--a-inset-lg);
458
+ --a-gap: var(--a-gap-lg);
459
+ --a-size: var(--a-size-lg);
460
+ --a-radius: var(--a-radius-lg);
461
+ --a-icon-size: 18px;
462
+ --a-caret-size: 16px;
463
+ --a-toggle-size: var(--a-space-6); /* 24px @d=1 */
464
+ }
465
+
466
+ /* ui-md (mirrors the utilities-layer global [size] rules) */
467
+ [scale][scale="ui-md"][size="sm"],
468
+ [scale][scale="ui-md"] [size="sm"] {
469
+ --a-inset: var(--a-inset-sm);
470
+ --a-gap: var(--a-gap-sm);
471
+ --a-size: calc(var(--a-density) * 1.5rem);
472
+ --a-radius: var(--a-radius-sm);
473
+ --a-icon-size: 0.875rem;
474
+ --a-caret-size: 0.75rem;
475
+ --a-toggle-size: calc(var(--a-size-sm) - var(--a-space-2)); /* 16px @d=1 */
476
+ --a-ui-px: var(--a-space-1-5);
477
+ }
478
+ [scale][scale="ui-md"][size="lg"],
479
+ [scale][scale="ui-md"] [size="lg"] {
480
+ --a-inset: var(--a-inset-lg);
481
+ --a-gap: var(--a-gap-lg);
482
+ --a-size: calc(var(--a-density) * 2.25rem);
483
+ --a-radius: var(--a-radius-lg);
484
+ --a-icon-size: 1.25rem;
485
+ --a-caret-size: 1rem;
486
+ --a-toggle-size: var(--a-size-sm); /* 24px @d=1 */
487
+ --a-ui-px: var(--a-space-3);
488
+ }
489
+
490
+ /* ui-lg */
491
+ [scale][scale="ui-lg"][size="sm"],
492
+ [scale][scale="ui-lg"] [size="sm"] {
493
+ --a-inset: var(--a-inset-sm);
494
+ --a-gap: var(--a-gap-sm);
495
+ --a-size: var(--a-size-sm);
496
+ --a-radius: var(--a-radius-sm);
497
+ --a-icon-size: 16px;
498
+ --a-caret-size: 14px;
499
+ --a-toggle-size: var(--a-space-5); /* 20px @d=1 */
500
+ }
501
+ [scale][scale="ui-lg"][size="lg"],
502
+ [scale][scale="ui-lg"] [size="lg"] {
503
+ --a-inset: var(--a-inset-lg);
504
+ --a-gap: var(--a-gap-lg);
505
+ --a-size: var(--a-size-lg);
506
+ --a-radius: var(--a-radius-lg);
507
+ --a-icon-size: 24px;
508
+ --a-caret-size: 18px;
509
+ --a-toggle-size: var(--a-space-7); /* 28px @d=1 */
510
+ }
511
+
512
+ /* content-sm / content-md — icon/caret/toggle unpinned (prose parity),
513
+ so only the pinned spatial pointers re-shift here. */
514
+ [scale][scale="content-sm"][size="sm"],
515
+ [scale][scale="content-sm"] [size="sm"],
516
+ [scale][scale="content-md"][size="sm"],
517
+ [scale][scale="content-md"] [size="sm"] {
518
+ --a-inset: var(--a-inset-sm);
519
+ --a-gap: var(--a-gap-sm);
520
+ --a-size: var(--a-size-sm);
521
+ --a-radius: var(--a-radius-sm);
522
+ }
523
+ [scale][scale="content-sm"][size="lg"],
524
+ [scale][scale="content-sm"] [size="lg"],
525
+ [scale][scale="content-md"][size="lg"],
526
+ [scale][scale="content-md"] [size="lg"] {
527
+ --a-inset: var(--a-inset-lg);
528
+ --a-gap: var(--a-gap-lg);
529
+ --a-size: var(--a-size-lg);
530
+ --a-radius: var(--a-radius-lg);
531
+ }
532
+
533
+ /* content-lg */
534
+ [scale][scale="content-lg"][size="sm"],
535
+ [scale][scale="content-lg"] [size="sm"] {
536
+ --a-inset: var(--a-inset-sm);
537
+ --a-gap: var(--a-gap-sm);
538
+ --a-size: var(--a-size-sm);
539
+ --a-radius: var(--a-radius-sm);
540
+ --a-icon-size: 16px;
541
+ --a-caret-size: 14px;
542
+ --a-toggle-size: var(--a-space-5); /* 20px @d=1 */
543
+ }
544
+ [scale][scale="content-lg"][size="lg"],
545
+ [scale][scale="content-lg"] [size="lg"] {
546
+ --a-inset: var(--a-inset-lg);
547
+ --a-gap: var(--a-gap-lg);
548
+ --a-size: var(--a-size-lg);
549
+ --a-radius: var(--a-radius-lg);
550
+ --a-icon-size: 24px;
551
+ --a-caret-size: 18px;
552
+ --a-toggle-size: var(--a-space-7); /* 28px @d=1 */
553
+ }
554
+
555
+ /* ═══════════════ Identity-component ladders ═══════════════
556
+ avatar-ui / adia-mark-ui / adia-wordmark-ui / avatar-group-ui
557
+ declare their own 3-row ladders at component scope
558
+ (:where(:scope)), so an ancestor's inherited value can never
559
+ reach them — the tier must re-declare the family ON the element
560
+ (this context layer beats the components layer). One row shift
561
+ per register step; the removed xs/xl tiers live on as
562
+ (ui-sm, sm) and (ui-lg, lg) grid cells. */
563
+
564
+ /* ui-sm — one row down */
565
+ [scale][scale="ui-sm"] avatar-ui {
566
+ --avatar-size-sm: 1.25rem;
567
+ --avatar-size-md: 1.75rem;
568
+ --avatar-size-lg: 2.5rem;
569
+ }
570
+ [scale][scale="ui-sm"] avatar-group-ui {
571
+ --avatar-group-counter-size-sm: 1.25rem;
572
+ --avatar-group-counter-size-md: 1.75rem;
573
+ --avatar-group-counter-size-lg: 2rem;
574
+ --avatar-group-overlap-sm: -0.3rem;
575
+ --avatar-group-overlap-md: -0.4rem;
576
+ --avatar-group-overlap-lg: -0.5rem;
577
+ }
578
+ [scale][scale="ui-sm"] adia-mark-ui {
579
+ --adia-mark-size-sm: 1.25rem;
580
+ --adia-mark-size-md: 1.75rem;
581
+ --adia-mark-size-lg: 2.5rem;
582
+ }
583
+ [scale][scale="ui-sm"] adia-wordmark-ui {
584
+ --adia-wordmark-height-sm: 0.875rem;
585
+ --adia-wordmark-height-md: 1.125rem;
586
+ --adia-wordmark-height-lg: 1.5rem;
587
+ }
588
+
589
+ /* ui-lg / content-md — one row up */
590
+ [scale][scale="ui-lg"] avatar-ui,
591
+ [scale][scale="content-md"] avatar-ui {
592
+ --avatar-size-sm: 2.5rem;
593
+ --avatar-size-md: 3.5rem;
594
+ --avatar-size-lg: 4.5rem;
595
+ }
596
+ [scale][scale="ui-lg"] avatar-group-ui,
597
+ [scale][scale="content-md"] avatar-group-ui {
598
+ --avatar-group-counter-size-sm: 2rem;
599
+ --avatar-group-counter-size-md: 3.5rem;
600
+ --avatar-group-counter-size-lg: 4.5rem;
601
+ --avatar-group-overlap-sm: -0.5rem;
602
+ --avatar-group-overlap-md: -0.625rem;
603
+ --avatar-group-overlap-lg: -0.75rem;
604
+ }
605
+ [scale][scale="ui-lg"] adia-mark-ui,
606
+ [scale][scale="content-md"] adia-mark-ui {
607
+ --adia-mark-size-sm: 2.5rem;
608
+ --adia-mark-size-md: 3.5rem;
609
+ --adia-mark-size-lg: 4.5rem;
610
+ }
611
+ [scale][scale="ui-lg"] adia-wordmark-ui,
612
+ [scale][scale="content-md"] adia-wordmark-ui {
613
+ --adia-wordmark-height-sm: 1.5rem;
614
+ --adia-wordmark-height-md: 2rem;
615
+ --adia-wordmark-height-lg: 2.75rem;
616
+ }
617
+
618
+ /* content-lg — two rows up */
619
+ [scale][scale="content-lg"] avatar-ui {
620
+ --avatar-size-sm: 3.5rem;
621
+ --avatar-size-md: 4.5rem;
622
+ --avatar-size-lg: 5.5rem;
623
+ }
624
+ [scale][scale="content-lg"] avatar-group-ui {
625
+ --avatar-group-counter-size-sm: 3.5rem;
626
+ --avatar-group-counter-size-md: 4.5rem;
627
+ --avatar-group-counter-size-lg: 5.5rem;
628
+ --avatar-group-overlap-sm: -0.625rem;
629
+ --avatar-group-overlap-md: -0.75rem;
630
+ --avatar-group-overlap-lg: -0.875rem;
631
+ }
632
+ [scale][scale="content-lg"] adia-mark-ui {
633
+ --adia-mark-size-sm: 3.5rem;
634
+ --adia-mark-size-md: 4.5rem;
635
+ --adia-mark-size-lg: 5.5rem;
636
+ }
637
+ [scale][scale="content-lg"] adia-wordmark-ui {
638
+ --adia-wordmark-height-sm: 2rem;
639
+ --adia-wordmark-height-md: 2.75rem;
640
+ --adia-wordmark-height-lg: 3.5rem;
641
+ }
642
+ /* ui-md / content-sm ride the components' own base ladders — no
643
+ re-declaration needed (the component :where(:scope) values ARE
644
+ the base row). */
645
+
646
+ /* ═══════════════ Content-band flow enhancements ═══════════════
647
+ Ported from prose.css so every content tier gets them.
648
+ [scale^="content-"] is value-prefixed — cannot collide with
649
+ heatmap-ui's scale="linear|log" or legacy theme-provider
650
+ scale="verse|prose". */
651
+ [scale^="content-"] > :is(p, ul, ol, blockquote, pre, table, dl) {
652
+ max-width: var(--prose-max-width);
653
+ }
654
+ [scale^="content-"] :is(ul, ol) {
655
+ padding-inline-start: 1.75em;
656
+ margin-block: 0.75em;
657
+ }
658
+ [scale^="content-"] li + li {
659
+ margin-block-start: 0.375em;
660
+ }
661
+ [scale^="content-"] blockquote {
662
+ padding: var(--a-space-4) var(--a-space-6);
663
+ border-inline-start-width: 4px;
664
+ font-size: var(--a-body-size);
665
+ }
666
+ [scale^="content-"] hr {
667
+ margin-block: var(--a-space-6);
668
+ }
669
+ [scale^="content-"] table {
670
+ border: 1px solid var(--a-border-subtle);
671
+ border-radius: var(--a-radius-md);
672
+ overflow: hidden;
673
+ }
674
+ [scale^="content-"] th {
675
+ background: var(--a-bg-muted);
676
+ }
677
+ [scale^="content-"] pre {
678
+ padding: var(--a-space-5);
679
+ }
680
+ [scale^="content-"] img {
681
+ border-radius: var(--a-radius-lg);
682
+ }
683
+ }