@adia-ai/web-components 0.7.3 → 0.7.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (137) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/components/accordion/accordion.css +2 -2
  3. package/components/action-list/action-list.css +2 -2
  4. package/components/agent-artifact/agent-artifact.css +31 -31
  5. package/components/agent-feedback-bar/agent-feedback-bar.css +10 -10
  6. package/components/agent-questions/agent-questions.css +59 -57
  7. package/components/agent-reasoning/agent-reasoning.css +54 -54
  8. package/components/agent-suggestions/agent-suggestions.css +4 -4
  9. package/components/agent-trace/agent-trace.css +53 -53
  10. package/components/alert/alert.css +53 -53
  11. package/components/avatar/avatar.css +27 -27
  12. package/components/badge/badge.css +56 -53
  13. package/components/block/block.css +16 -16
  14. package/components/blockquote/blockquote.css +16 -16
  15. package/components/breadcrumb/breadcrumb.css +23 -23
  16. package/components/button/button.css +123 -101
  17. package/components/calendar-grid/calendar-grid.css +95 -92
  18. package/components/calendar-picker/calendar-picker.css +141 -139
  19. package/components/canvas/canvas.css +12 -12
  20. package/components/card/card.css +83 -83
  21. package/components/chart/chart.css +218 -218
  22. package/components/chart-legend/chart-legend.css +26 -26
  23. package/components/check/check.css +40 -40
  24. package/components/code/code.css +125 -125
  25. package/components/col/col.css +15 -15
  26. package/components/color-picker/color-picker.css +55 -55
  27. package/components/combobox/combobox.css +64 -62
  28. package/components/command/command.css +91 -91
  29. package/components/context-menu/context-menu.css +1 -1
  30. package/components/date-range-picker/date-range-picker.css +59 -59
  31. package/components/datetime-picker/datetime-picker.css +25 -25
  32. package/components/demo-toggle/demo-toggle.css +27 -27
  33. package/components/description-list/description-list.css +18 -18
  34. package/components/divider/divider.css +24 -24
  35. package/components/embed/embed.css +6 -6
  36. package/components/empty-state/empty-state.css +29 -29
  37. package/components/feed/feed.css +12 -12
  38. package/components/field/field.css +28 -28
  39. package/components/field/field.test.js +2 -2
  40. package/components/fields/fields.css +5 -5
  41. package/components/grid/grid.a2ui.json +10 -0
  42. package/components/grid/grid.css +23 -5
  43. package/components/grid/grid.d.ts +4 -0
  44. package/components/grid/grid.yaml +13 -0
  45. package/components/heatmap/heatmap.css +61 -61
  46. package/components/icon/icon.css +12 -12
  47. package/components/image/image.css +14 -14
  48. package/components/inline-edit/inline-edit.css +16 -16
  49. package/components/inline-message/inline-message.css +16 -16
  50. package/components/input/input.css +69 -66
  51. package/components/inspector/inspector.css +6 -6
  52. package/components/integration-card/integration-card.css +41 -41
  53. package/components/integration-card/integration-card.test.js +4 -4
  54. package/components/kbd/kbd.css +47 -40
  55. package/components/link/link.css +12 -12
  56. package/components/list/list.css +8 -8
  57. package/components/list-window/list-window.css +10 -10
  58. package/components/loading-overlay/loading-overlay.css +17 -18
  59. package/components/loading-overlay/loading-overlay.test.js +8 -8
  60. package/components/mark/mark.css +16 -16
  61. package/components/menu/menu.css +9 -9
  62. package/components/modal/modal.class.js +5 -9
  63. package/components/modal/modal.css +43 -43
  64. package/components/nav/nav.css +40 -40
  65. package/components/nav-group/nav-group.css +54 -54
  66. package/components/nav-item/nav-item.css +44 -44
  67. package/components/noodles/noodles.css +31 -31
  68. package/components/number-format/number-format.css +4 -4
  69. package/components/option-card/option-card.css +70 -70
  70. package/components/otp-input/otp-input.css +29 -29
  71. package/components/page/page.a2ui.json +1 -1
  72. package/components/page/page.css +27 -27
  73. package/components/page/page.d.ts +1 -1
  74. package/components/page/page.yaml +1 -1
  75. package/components/pagination/pagination.css +6 -6
  76. package/components/pane/pane.css +57 -57
  77. package/components/password-strength/password-strength.css +32 -32
  78. package/components/pipeline-status/pipeline-status.css +67 -67
  79. package/components/popover/popover.css +11 -11
  80. package/components/preview/preview.css +21 -21
  81. package/components/progress/progress.css +23 -23
  82. package/components/progress-row/progress-row.css +17 -17
  83. package/components/qr-code/qr-code.css +4 -4
  84. package/components/radio/radio.css +39 -39
  85. package/components/range/range.css +58 -55
  86. package/components/rating/rating.css +28 -28
  87. package/components/relative-time/relative-time.css +6 -6
  88. package/components/richtext/richtext.css +133 -133
  89. package/components/row/row.css +19 -19
  90. package/components/search/search.css +5 -5
  91. package/components/segment/segment.css +29 -24
  92. package/components/segmented/segmented.css +30 -25
  93. package/components/select/select.css +95 -93
  94. package/components/skeleton/skeleton.css +14 -14
  95. package/components/skip-nav/skip-nav.css +4 -4
  96. package/components/slider/slider.css +61 -61
  97. package/components/spinner/spinner.css +40 -40
  98. package/components/spinner/spinner.test.js +10 -12
  99. package/components/stack/stack.css +11 -11
  100. package/components/stat/stat.css +27 -27
  101. package/components/step-progress/step-progress.css +20 -20
  102. package/components/stepper/stepper.css +29 -29
  103. package/components/stream/stream.css +12 -12
  104. package/components/swatch/swatch.css +68 -68
  105. package/components/swiper/swiper.class.js +5 -12
  106. package/components/swiper/swiper.css +57 -57
  107. package/components/switch/switch.css +53 -53
  108. package/components/table/table.css +166 -163
  109. package/components/table-toolbar/table-toolbar.css +33 -33
  110. package/components/tabs/tabs.css +54 -51
  111. package/components/tag/tag.css +74 -71
  112. package/components/tag/tag.test.js +14 -14
  113. package/components/tags-input/tags-input.css +51 -49
  114. package/components/text/text.css +44 -44
  115. package/components/textarea/textarea.css +49 -46
  116. package/components/time-picker/time-picker.css +47 -47
  117. package/components/timeline/timeline.css +54 -54
  118. package/components/toast/toast.css +58 -58
  119. package/components/toc/toc.css +28 -28
  120. package/components/toggle-group/toggle-group.css +9 -6
  121. package/components/toggle-scheme/toggle-scheme.css +2 -2
  122. package/components/toolbar/toolbar.css +18 -18
  123. package/components/tooltip/tooltip.css +2 -2
  124. package/components/tour/tour.css +4 -4
  125. package/components/tree/tree.css +37 -37
  126. package/components/upload/upload.css +49 -49
  127. package/dist/host.min.css +1 -0
  128. package/dist/web-components.min.css +1 -1
  129. package/dist/web-components.min.js +2 -2
  130. package/package.json +1 -1
  131. package/styles/api/text.css +9 -2
  132. package/styles/foundation/space.css +19 -18
  133. package/styles/host.css +48 -0
  134. package/styles/prose.css +187 -173
  135. package/styles/type/scale.css +6 -0
  136. package/styles/typography.css +10 -5
  137. package/styles/verse.css +122 -0
@@ -1,26 +1,26 @@
1
1
  @scope (alert-ui) {
2
2
  :where(:scope) {
3
3
  /* ── Colors ── */
4
- --alert-bg-default: var(--a-bg-muted);
5
- --alert-fg-default: var(--a-fg);
6
- --alert-border-default: var(--a-border-subtle);
7
- --alert-icon-fg-default: var(--a-fg-muted);
4
+ --alert-bg: var(--a-bg-muted);
5
+ --alert-fg: var(--a-fg);
6
+ --alert-border: var(--a-border-subtle);
7
+ --alert-icon-fg: var(--a-fg-muted);
8
8
 
9
9
  /* ── Layout ── */
10
- --alert-radius-default: var(--a-radius-md);
11
- --alert-px-default: var(--a-space-3);
12
- --alert-py-default: var(--a-space-2);
13
- --alert-gap-default: var(--a-space-2);
10
+ --alert-radius: var(--a-radius-md);
11
+ --alert-px: var(--a-space-3);
12
+ --alert-py: var(--a-space-2);
13
+ --alert-gap: var(--a-space-2);
14
14
 
15
15
  /* ── Typography ── */
16
- --alert-font-default: var(--a-ui-size);
17
- --alert-line-height-default: var(--a-ui-line-height, 1.5);
16
+ --alert-font: var(--a-ui-size);
17
+ --alert-line-height: var(--a-ui-line-height, 1.5);
18
18
 
19
19
  /* ── SPEC-006 dunning pattern tokens ── */
20
- --alert-amount-font-default: var(--a-font-mono, ui-monospace, SFMono-Regular, Menlo, monospace);
21
- --alert-meta-fg-default: var(--a-fg-muted);
22
- --alert-actions-gap-default: var(--a-space-2);
23
- --alert-actions-mt-default: var(--a-space-2);
20
+ --alert-amount-font: var(--a-font-mono, ui-monospace, SFMono-Regular, Menlo, monospace);
21
+ --alert-meta-fg: var(--a-fg-muted);
22
+ --alert-actions-gap: var(--a-space-2);
23
+ --alert-actions-mt: var(--a-space-2);
24
24
  }
25
25
 
26
26
  :scope {
@@ -32,43 +32,43 @@
32
32
  text on multi-line alerts. The leading slot's own height = body
33
33
  line-height (below) means the icon optically centers on line 1. */
34
34
  align-items: start;
35
- gap: var(--alert-gap, var(--alert-gap-default));
36
- padding: var(--alert-py, var(--alert-py-default)) var(--alert-px, var(--alert-px-default));
37
- border: 1px solid var(--alert-border, var(--alert-border-default));
38
- border-radius: var(--alert-radius, var(--alert-radius-default));
39
- font-size: var(--alert-font, var(--alert-font-default));
40
- line-height: var(--alert-line-height, var(--alert-line-height-default));
41
- color: var(--alert-fg, var(--alert-fg-default));
42
- background: var(--alert-bg, var(--alert-bg-default));
35
+ gap: var(--alert-gap);
36
+ padding: var(--alert-py) var(--alert-px);
37
+ border: 1px solid var(--alert-border);
38
+ border-radius: var(--alert-radius);
39
+ font-size: var(--alert-font);
40
+ line-height: var(--alert-line-height);
41
+ color: var(--alert-fg);
42
+ background: var(--alert-bg);
43
43
  }
44
44
 
45
45
  /* ── Variants ── */
46
46
  :scope[variant="info"] {
47
- --alert-bg-default: var(--a-info-muted);
48
- --alert-fg-default: var(--a-info-text);
49
- --alert-border-default: var(--a-info-border-subtle);
50
- --alert-icon-fg-default: var(--a-info-strong);
47
+ --alert-bg: var(--a-info-muted);
48
+ --alert-fg: var(--a-info-text);
49
+ --alert-border: var(--a-info-border-subtle);
50
+ --alert-icon-fg: var(--a-info-strong);
51
51
  }
52
52
 
53
53
  :scope[variant="success"] {
54
- --alert-bg-default: var(--a-success-muted);
55
- --alert-fg-default: var(--a-success-text);
56
- --alert-border-default: var(--a-success-border-subtle);
57
- --alert-icon-fg-default: var(--a-success-strong);
54
+ --alert-bg: var(--a-success-muted);
55
+ --alert-fg: var(--a-success-text);
56
+ --alert-border: var(--a-success-border-subtle);
57
+ --alert-icon-fg: var(--a-success-strong);
58
58
  }
59
59
 
60
60
  :scope[variant="warning"] {
61
- --alert-bg-default: var(--a-warning-muted);
62
- --alert-fg-default: var(--a-warning-text);
63
- --alert-border-default: var(--a-warning-border-subtle);
64
- --alert-icon-fg-default: var(--a-warning-strong);
61
+ --alert-bg: var(--a-warning-muted);
62
+ --alert-fg: var(--a-warning-text);
63
+ --alert-border: var(--a-warning-border-subtle);
64
+ --alert-icon-fg: var(--a-warning-strong);
65
65
  }
66
66
 
67
67
  :scope[variant="danger"] {
68
- --alert-bg-default: var(--a-danger-muted);
69
- --alert-fg-default: var(--a-danger-text);
70
- --alert-border-default: var(--a-danger-border-subtle);
71
- --alert-icon-fg-default: var(--a-danger-strong);
68
+ --alert-bg: var(--a-danger-muted);
69
+ --alert-fg: var(--a-danger-text);
70
+ --alert-border: var(--a-danger-border-subtle);
71
+ --alert-icon-fg: var(--a-danger-strong);
72
72
  }
73
73
 
74
74
  /* `muted` and `neutral` are semantic aliases of the base — same tokens
@@ -78,21 +78,21 @@
78
78
  than carrying tonal weight. */
79
79
  :scope[variant="muted"],
80
80
  :scope[variant="neutral"] {
81
- --alert-bg-default: var(--a-bg-muted);
82
- --alert-fg-default: var(--a-fg);
83
- --alert-border-default: var(--a-border-subtle);
84
- --alert-icon-fg-default: var(--a-fg-muted);
81
+ --alert-bg: var(--a-bg-muted);
82
+ --alert-fg: var(--a-fg);
83
+ --alert-border: var(--a-border-subtle);
84
+ --alert-icon-fg: var(--a-fg-muted);
85
85
  }
86
86
 
87
87
  /* ── Slots ── */
88
88
  :scope [slot="leading"] {
89
89
  flex-shrink: 0;
90
- color: var(--alert-icon-fg, var(--alert-icon-fg-default));
90
+ color: var(--alert-icon-fg);
91
91
  /* Box height = one line of body so the icon optical-centers on the
92
92
  first line under `align-items: start`. */
93
93
  display: inline-flex;
94
94
  align-items: center;
95
- min-height: calc(var(--alert-font, var(--alert-font-default)) * var(--alert-line-height, var(--alert-line-height-default)));
95
+ min-height: calc(var(--alert-font) * var(--alert-line-height));
96
96
  /* `ensure()` appends the leading-slot icon to the host, which
97
97
  puts it after any consumer-provided content in DOM order.
98
98
  Force it to the visual lead via flex `order` so the icon
@@ -135,9 +135,9 @@
135
135
  button is the right-most affordance. content's flex:1 pushes both
136
136
  action + close to the trailing edge. */
137
137
  order: 2;
138
- min-height: calc(var(--alert-font, var(--alert-font-default)) * var(--alert-line-height, var(--alert-line-height-default)));
139
- --button-fg-ghost: var(--alert-fg, var(--alert-fg-default));
140
- --button-fg-ghost-hover: var(--alert-icon-fg, var(--alert-icon-fg-default));
138
+ min-height: calc(var(--alert-font) * var(--alert-line-height));
139
+ --button-fg-ghost: var(--alert-fg);
140
+ --button-fg-ghost-hover: var(--alert-icon-fg);
141
141
  }
142
142
 
143
143
  /* ──────────────────────────────────────────────────────────────
@@ -156,7 +156,7 @@
156
156
 
157
157
  :scope[pattern="dunning"] {
158
158
  flex-wrap: wrap;
159
- row-gap: var(--alert-actions-mt, var(--alert-actions-mt-default));
159
+ row-gap: var(--alert-actions-mt);
160
160
  /* Use align-items: flex-start so the leading icon hugs the top
161
161
  of the message regardless of how tall the content + actions
162
162
  column grows. */
@@ -173,7 +173,7 @@
173
173
  :scope[pattern="dunning"] [slot="close"] { order: 40; }
174
174
 
175
175
  :scope[pattern="dunning"] [data-dunning-amount] {
176
- font-family: var(--alert-amount-font, var(--alert-amount-font-default));
176
+ font-family: var(--alert-amount-font);
177
177
  font-variant-numeric: tabular-nums;
178
178
  font-weight: 600;
179
179
  /* Inherit color from the variant; tabular-nums + monospace make
@@ -181,8 +181,8 @@
181
181
  }
182
182
 
183
183
  :scope[pattern="dunning"] [data-dunning-meta] {
184
- color: var(--alert-meta-fg, var(--alert-meta-fg-default));
185
- font-size: calc(var(--alert-font, var(--alert-font-default)) * 0.9375);
184
+ color: var(--alert-meta-fg);
185
+ font-size: calc(var(--alert-font) * 0.9375);
186
186
  }
187
187
 
188
188
  :scope[pattern="dunning"] [data-dunning-title] {
@@ -200,8 +200,8 @@
200
200
  flex-basis: 100%;
201
201
  display: flex;
202
202
  flex-wrap: wrap;
203
- gap: var(--alert-actions-gap, var(--alert-actions-gap-default));
204
- padding-inline-start: calc(var(--alert-font, var(--alert-font-default)) + var(--alert-gap, var(--alert-gap-default)));
203
+ gap: var(--alert-actions-gap);
204
+ padding-inline-start: calc(var(--alert-font) + var(--alert-gap));
205
205
  }
206
206
 
207
207
  /* Lenient — when a bare button-ui carries data-dunning-action but
@@ -4,19 +4,19 @@
4
4
 
5
5
  @scope (avatar-ui) {
6
6
  :where(:scope) {
7
- --avatar-size-default: var(--a-size);
8
- --avatar-bg-default: var(--a-bg-muted);
9
- --avatar-fg-default: var(--a-fg-subtle);
10
- --avatar-radius-default: var(--a-radius-full);
11
- --avatar-font-size-default: var(--a-ui-sm);
12
- --avatar-font-weight-default: var(--a-weight-medium);
7
+ --avatar-size: var(--a-size);
8
+ --avatar-bg: var(--a-bg-muted);
9
+ --avatar-fg: var(--a-fg-subtle);
10
+ --avatar-radius: var(--a-radius-full);
11
+ --avatar-font-size: var(--a-ui-sm);
12
+ --avatar-font-weight: var(--a-weight-medium);
13
13
 
14
14
  /* Sizes */
15
- --avatar-size-xs-default: 1.25rem;
16
- --avatar-size-sm-default: 1.75rem;
17
- --avatar-size-md-default: 2.5rem;
18
- --avatar-size-lg-default: 3.5rem;
19
- --avatar-size-xl-default: 4.5rem;
15
+ --avatar-size-xs: 1.25rem;
16
+ --avatar-size-sm: 1.75rem;
17
+ --avatar-size-md: 2.5rem;
18
+ --avatar-size-lg: 3.5rem;
19
+ --avatar-size-xl: 4.5rem;
20
20
  }
21
21
 
22
22
  :scope {
@@ -24,13 +24,13 @@
24
24
  display: inline-flex;
25
25
  align-items: center;
26
26
  justify-content: center;
27
- width: var(--avatar-size, var(--avatar-size-default));
28
- height: var(--avatar-size, var(--avatar-size-default));
29
- background: var(--avatar-bg, var(--avatar-bg-default));
30
- color: var(--avatar-fg, var(--avatar-fg-default));
31
- border-radius: var(--avatar-radius, var(--avatar-radius-default));
32
- font-size: var(--avatar-font-size, var(--avatar-font-size-default));
33
- font-weight: var(--avatar-font-weight, var(--avatar-font-weight-default));
27
+ width: var(--avatar-size);
28
+ height: var(--avatar-size);
29
+ background: var(--avatar-bg);
30
+ color: var(--avatar-fg);
31
+ border-radius: var(--avatar-radius);
32
+ font-size: var(--avatar-font-size);
33
+ font-weight: var(--avatar-font-weight);
34
34
  overflow: hidden;
35
35
  flex-shrink: 0;
36
36
  }
@@ -51,23 +51,23 @@
51
51
 
52
52
  /* ── Icon (non-person avatar) ── */
53
53
  [slot="icon"] {
54
- color: var(--avatar-fg, var(--avatar-fg-default));
55
- --a-icon-size: calc(var(--avatar-size, var(--avatar-size-default)) * 0.55);
54
+ color: var(--avatar-fg);
55
+ --a-icon-size: calc(var(--avatar-size) * 0.55);
56
56
  display: inline-flex;
57
57
  align-items: center;
58
58
  justify-content: center;
59
59
  }
60
60
 
61
61
  /* ── Sizes ── */
62
- :scope[size="xs"] { --avatar-size-default: var(--avatar-size-xs, var(--avatar-size-xs-default)); --avatar-font-size-default: var(--a-ui-sm); }
63
- :scope[size="sm"] { --avatar-size-default: var(--avatar-size-sm, var(--avatar-size-sm-default)); --avatar-font-size-default: var(--a-ui-sm); }
64
- :scope[size="md"] { --avatar-size-default: var(--avatar-size-md, var(--avatar-size-md-default)); --avatar-font-size-default: var(--a-ui-sm); }
65
- :scope[size="lg"] { --avatar-size-default: var(--avatar-size-lg, var(--avatar-size-lg-default)); --avatar-font-size-default: var(--a-ui-md); }
66
- :scope[size="xl"] { --avatar-size-default: var(--avatar-size-xl, var(--avatar-size-xl-default)); --avatar-font-size-default: var(--a-ui-lg); }
62
+ :scope[size="xs"] { --avatar-size: var(--avatar-size-xs); --avatar-font-size: var(--a-ui-sm); }
63
+ :scope[size="sm"] { --avatar-size: var(--avatar-size-sm); --avatar-font-size: var(--a-ui-sm); }
64
+ :scope[size="md"] { --avatar-size: var(--avatar-size-md); --avatar-font-size: var(--a-ui-sm); }
65
+ :scope[size="lg"] { --avatar-size: var(--avatar-size-lg); --avatar-font-size: var(--a-ui-md); }
66
+ :scope[size="xl"] { --avatar-size: var(--avatar-size-xl); --avatar-font-size: var(--a-ui-lg); }
67
67
 
68
68
  /* ── Shape ── */
69
- :scope[shape="circle"] { --avatar-radius-default: var(--a-radius-full); }
70
- :scope[shape="square"] { --avatar-radius-default: var(--a-radius-md); }
69
+ :scope[shape="circle"] { --avatar-radius: var(--a-radius-full); }
70
+ :scope[shape="square"] { --avatar-radius: var(--a-radius-md); }
71
71
  }
72
72
 
73
73
  /* ═══════════════════════════════════════════════════════════════
@@ -1,13 +1,14 @@
1
1
  @scope (badge-ui) {
2
2
  :where(:scope) {
3
3
  /* ── Tokens ── */
4
- --badge-bg-default: var(--a-bg-muted);
5
- --badge-fg-default: var(--a-fg);
6
- --badge-radius-default: var(--a-radius-md);
7
- --badge-px-default: var(--a-space-2);
8
- --badge-py-default: 2px;
9
- --badge-gap-default: var(--a-space-1);
10
- --badge-font-size-default: var(--a-ui-sm);
4
+ --badge-bg: var(--a-bg-muted);
5
+ --badge-fg: var(--a-fg);
6
+ --badge-radius: var(--a-radius-md);
7
+ --badge-px: var(--a-space-2);
8
+ --badge-py: 2px;
9
+ --badge-gap: var(--a-space-1);
10
+ --badge-font-size: var(--a-ui-sm);
11
+ --badge-font-family: var(--a-font-family-ui);
11
12
  text-align: start; /* §text-align-reset — blocks inheritance from centered ancestors */
12
13
  }
13
14
 
@@ -17,16 +18,18 @@
17
18
  display: inline-flex;
18
19
  align-items: center;
19
20
  justify-content: center;
20
- gap: var(--badge-gap, var(--badge-gap-default));
21
+ gap: var(--badge-gap);
21
22
  width: fit-content;
22
- padding: var(--badge-py, var(--badge-py-default)) var(--badge-px, var(--badge-px-default));
23
- background: var(--badge-bg, var(--badge-bg-default));
24
- color: var(--badge-fg, var(--badge-fg-default));
23
+ padding: var(--badge-py) var(--badge-px);
24
+ background: var(--badge-bg);
25
+ color: var(--badge-fg);
25
26
  font: inherit;
26
- font-size: var(--badge-font-size, var(--badge-font-size-default));
27
+ /* font-family floor — see segment.css rationale. */
28
+ font-family: var(--badge-font-family);
29
+ font-size: var(--badge-font-size);
27
30
  font-weight: 500;
28
31
  line-height: 1;
29
- border-radius: var(--badge-radius, var(--badge-radius-default));
32
+ border-radius: var(--badge-radius);
30
33
  white-space: nowrap;
31
34
  vertical-align: middle;
32
35
  }
@@ -56,28 +59,28 @@
56
59
  collapse contrast on muted: warning fails in dark, danger fails in light.
57
60
  Accent keeps the saturated-text-on-tint look (intentional brand emphasis). */
58
61
  :scope[variant="accent"] {
59
- --badge-bg-default: var(--a-accent-muted);
60
- --badge-fg-default: var(--a-accent-text);
62
+ --badge-bg: var(--a-accent-muted);
63
+ --badge-fg: var(--a-accent-text);
61
64
  }
62
65
 
63
66
  :scope[variant="info"] {
64
- --badge-bg-default: var(--a-info-muted);
65
- --badge-fg-default: var(--a-info-text);
67
+ --badge-bg: var(--a-info-muted);
68
+ --badge-fg: var(--a-info-text);
66
69
  }
67
70
 
68
71
  :scope[variant="success"] {
69
- --badge-bg-default: var(--a-success-muted);
70
- --badge-fg-default: var(--a-success-text);
72
+ --badge-bg: var(--a-success-muted);
73
+ --badge-fg: var(--a-success-text);
71
74
  }
72
75
 
73
76
  :scope[variant="warning"] {
74
- --badge-bg-default: var(--a-warning-muted);
75
- --badge-fg-default: var(--a-warning-text);
77
+ --badge-bg: var(--a-warning-muted);
78
+ --badge-fg: var(--a-warning-text);
76
79
  }
77
80
 
78
81
  :scope[variant="danger"] {
79
- --badge-bg-default: var(--a-danger-muted);
80
- --badge-fg-default: var(--a-danger-text);
82
+ --badge-bg: var(--a-danger-muted);
83
+ --badge-fg: var(--a-danger-text);
81
84
  }
82
85
 
83
86
  /* `primary` is the accent-filled variant — solid bg + on-accent text,
@@ -86,8 +89,8 @@
86
89
  matrix so it tracks the same accent-strong source as button-ui's
87
90
  primary variant. */
88
91
  :scope[variant="primary"] {
89
- --badge-bg-default: var(--a-primary-bg);
90
- --badge-fg-default: var(--a-primary-fg);
92
+ --badge-bg: var(--a-primary-bg);
93
+ --badge-fg: var(--a-primary-fg);
91
94
  }
92
95
 
93
96
  /* `muted` and `neutral` are semantic aliases of the base — same tokens
@@ -96,8 +99,8 @@
96
99
  "Not set" states) where the badge should read as quiet chrome. */
97
100
  :scope[variant="muted"],
98
101
  :scope[variant="neutral"] {
99
- --badge-bg-default: var(--a-bg-muted);
100
- --badge-fg-default: var(--a-fg);
102
+ --badge-bg: var(--a-bg-muted);
103
+ --badge-fg: var(--a-fg);
101
104
  }
102
105
 
103
106
  /* ── Tone modifier — orthogonal to [variant] ──
@@ -112,62 +115,62 @@
112
115
  to muddy brown-on-brown (-text-strong is dark, -bg is mid-tone).
113
116
  See <tag-ui>'s identical workaround. Token-system follow-up planned. */
114
117
  :scope[tone="solid"][variant="info"] {
115
- --badge-bg-default: var(--a-info-bg);
116
- --badge-fg-default: var(--a-info-fg);
118
+ --badge-bg: var(--a-info-bg);
119
+ --badge-fg: var(--a-info-fg);
117
120
  }
118
121
  :scope[tone="solid"][variant="success"] {
119
- --badge-bg-default: var(--a-success-bg);
120
- --badge-fg-default: var(--a-success-fg);
122
+ --badge-bg: var(--a-success-bg);
123
+ --badge-fg: var(--a-success-fg);
121
124
  }
122
125
  :scope[tone="solid"][variant="warning"] {
123
126
  /* --a-warning-bg is the bright-amber step (semantics.css L3 redirect
124
127
  to -20-tint) — see also <tag-ui>'s warning solid pair. */
125
- --badge-bg-default: var(--a-warning-bg);
126
- --badge-fg-default: var(--a-warning-fg);
128
+ --badge-bg: var(--a-warning-bg);
129
+ --badge-fg: var(--a-warning-fg);
127
130
  }
128
131
  :scope[tone="solid"][variant="danger"] {
129
- --badge-bg-default: var(--a-danger-bg);
130
- --badge-fg-default: var(--a-danger-fg);
132
+ --badge-bg: var(--a-danger-bg);
133
+ --badge-fg: var(--a-danger-fg);
131
134
  }
132
135
  :scope[tone="solid"][variant="accent"] {
133
- --badge-bg-default: var(--a-accent-bg);
134
- --badge-fg-default: var(--a-accent-fg);
136
+ --badge-bg: var(--a-accent-bg);
137
+ --badge-fg: var(--a-accent-fg);
135
138
  }
136
139
  /* Solid on neutral default → high-contrast inverse stamp. */
137
140
  :scope[tone="solid"]:not([variant="info"]):not([variant="success"]):not([variant="warning"]):not([variant="danger"]):not([variant="accent"]):not([variant="primary"]) {
138
- --badge-bg-default: var(--a-fg);
139
- --badge-fg-default: var(--a-bg);
141
+ --badge-bg: var(--a-fg);
142
+ --badge-fg: var(--a-bg);
140
143
  }
141
144
 
142
145
  /* ── `[tone="outline"]` — transparent bg + family-colored border + text ── */
143
146
  :scope[tone="outline"] {
144
- --badge-bg-default: transparent;
145
- border: 1px solid var(--badge-border, var(--badge-border-default, transparent));
147
+ --badge-bg: transparent;
148
+ border: 1px solid var(--badge-border, transparent);
146
149
  }
147
150
  :scope[tone="outline"][variant="info"] {
148
- --badge-fg-default: var(--a-info-text);
149
- --badge-border-default: var(--a-info-border);
151
+ --badge-fg: var(--a-info-text);
152
+ --badge-border: var(--a-info-border);
150
153
  }
151
154
  :scope[tone="outline"][variant="success"] {
152
- --badge-fg-default: var(--a-success-text);
153
- --badge-border-default: var(--a-success-border);
155
+ --badge-fg: var(--a-success-text);
156
+ --badge-border: var(--a-success-border);
154
157
  }
155
158
  :scope[tone="outline"][variant="warning"] {
156
- --badge-fg-default: var(--a-warning-text);
157
- --badge-border-default: var(--a-warning-border);
159
+ --badge-fg: var(--a-warning-text);
160
+ --badge-border: var(--a-warning-border);
158
161
  }
159
162
  :scope[tone="outline"][variant="danger"] {
160
- --badge-fg-default: var(--a-danger-text);
161
- --badge-border-default: var(--a-danger-border);
163
+ --badge-fg: var(--a-danger-text);
164
+ --badge-border: var(--a-danger-border);
162
165
  }
163
166
  :scope[tone="outline"][variant="accent"] {
164
- --badge-fg-default: var(--a-accent-text);
165
- --badge-border-default: var(--a-accent-border);
167
+ --badge-fg: var(--a-accent-text);
168
+ --badge-border: var(--a-accent-border);
166
169
  }
167
170
  /* Outline on neutral — fg-muted text + subtle ring. */
168
171
  :scope[tone="outline"]:not([variant="info"]):not([variant="success"]):not([variant="warning"]):not([variant="danger"]):not([variant="accent"]):not([variant="primary"]) {
169
- --badge-fg-default: var(--a-fg-muted);
170
- --badge-border-default: var(--a-border);
172
+ --badge-fg: var(--a-fg-muted);
173
+ --badge-border: var(--a-border);
171
174
  }
172
175
 
173
176
  /* Size handled by universal [size] attribute system. */
@@ -1,29 +1,29 @@
1
1
  @scope (block-ui) {
2
2
  :where(:scope) {
3
- --block-padding-default: var(--a-space-4);
4
- --block-margin-default: 0;
3
+ --block-padding: var(--a-space-4);
4
+ --block-margin: 0;
5
5
  }
6
6
 
7
7
  :scope {
8
8
  box-sizing: border-box;
9
9
  display: block;
10
- padding: var(--block-padding, var(--block-padding-default));
11
- margin: var(--block-margin, var(--block-margin-default));
10
+ padding: var(--block-padding);
11
+ margin: var(--block-margin);
12
12
  }
13
13
 
14
14
  /* ── Padding variants ── */
15
- :scope[padding="none"] { --block-padding-default: 0; }
16
- :scope[padding="xs"] { --block-padding-default: var(--a-space-1); }
17
- :scope[padding="sm"] { --block-padding-default: var(--a-space-2); }
18
- :scope[padding="md"] { --block-padding-default: var(--a-space-4); }
19
- :scope[padding="lg"] { --block-padding-default: var(--a-space-6); }
20
- :scope[padding="xl"] { --block-padding-default: var(--a-space-10); }
15
+ :scope[padding="none"] { --block-padding: 0; }
16
+ :scope[padding="xs"] { --block-padding: var(--a-space-1); }
17
+ :scope[padding="sm"] { --block-padding: var(--a-space-2); }
18
+ :scope[padding="md"] { --block-padding: var(--a-space-4); }
19
+ :scope[padding="lg"] { --block-padding: var(--a-space-6); }
20
+ :scope[padding="xl"] { --block-padding: var(--a-space-10); }
21
21
 
22
22
  /* ── Margin variants ── */
23
- :scope[margin="none"] { --block-margin-default: 0; }
24
- :scope[margin="xs"] { --block-margin-default: var(--a-space-1); }
25
- :scope[margin="sm"] { --block-margin-default: var(--a-space-2); }
26
- :scope[margin="md"] { --block-margin-default: var(--a-space-4); }
27
- :scope[margin="lg"] { --block-margin-default: var(--a-space-6); }
28
- :scope[margin="xl"] { --block-margin-default: var(--a-space-10); }
23
+ :scope[margin="none"] { --block-margin: 0; }
24
+ :scope[margin="xs"] { --block-margin: var(--a-space-1); }
25
+ :scope[margin="sm"] { --block-margin: var(--a-space-2); }
26
+ :scope[margin="md"] { --block-margin: var(--a-space-4); }
27
+ :scope[margin="lg"] { --block-margin: var(--a-space-6); }
28
+ :scope[margin="xl"] { --block-margin: var(--a-space-10); }
29
29
  }
@@ -5,25 +5,25 @@
5
5
  @scope (blockquote-ui) {
6
6
  :where(:scope) {
7
7
  /* ── Tokens ── */
8
- --blockquote-rule-color-default: var(--a-border-strong);
9
- --blockquote-rule-width-default: 2px;
10
- --blockquote-pad-inline-default: var(--a-space-3);
11
- --blockquote-pad-block-default: var(--a-space-2);
12
- --blockquote-fg-default: var(--a-fg-subtle);
13
- --blockquote-cite-fg-default: var(--a-fg-muted);
14
- --blockquote-cite-size-default: var(--a-ui-sm);
15
- --blockquote-cite-mt-default: var(--a-space-2);
8
+ --blockquote-rule-color: var(--a-border-strong);
9
+ --blockquote-rule-width: 2px;
10
+ --blockquote-pad-inline: var(--a-space-3);
11
+ --blockquote-pad-block: var(--a-space-2);
12
+ --blockquote-fg: var(--a-fg-subtle);
13
+ --blockquote-cite-fg: var(--a-fg-muted);
14
+ --blockquote-cite-size: var(--a-ui-sm);
15
+ --blockquote-cite-mt: var(--a-space-2);
16
16
  }
17
17
 
18
18
  :scope {
19
19
  box-sizing: border-box;
20
20
  display: block;
21
- padding-inline-start: var(--blockquote-pad-inline, var(--blockquote-pad-inline-default));
22
- padding-block: var(--blockquote-pad-block, var(--blockquote-pad-block-default));
23
- border-inline-start: var(--blockquote-rule-width, var(--blockquote-rule-width-default))
21
+ padding-inline-start: var(--blockquote-pad-inline);
22
+ padding-block: var(--blockquote-pad-block);
23
+ border-inline-start: var(--blockquote-rule-width)
24
24
  solid
25
- var(--blockquote-rule-color, var(--blockquote-rule-color-default));
26
- color: var(--blockquote-fg, var(--blockquote-fg-default));
25
+ var(--blockquote-rule-color);
26
+ color: var(--blockquote-fg);
27
27
  font-style: italic;
28
28
  /* Reset native margin if a consumer wraps in a native <blockquote>
29
29
  (not recommended — see yaml a2ui rule #3) so nesting renders
@@ -34,10 +34,10 @@
34
34
  /* Cite line — em-dash prefix + small + muted + non-italic */
35
35
  [slot="cite"] {
36
36
  display: block;
37
- margin-top: var(--blockquote-cite-mt, var(--blockquote-cite-mt-default));
37
+ margin-top: var(--blockquote-cite-mt);
38
38
  font-style: normal;
39
- font-size: var(--blockquote-cite-size, var(--blockquote-cite-size-default));
40
- color: var(--blockquote-cite-fg, var(--blockquote-cite-fg-default));
39
+ font-size: var(--blockquote-cite-size);
40
+ color: var(--blockquote-cite-fg);
41
41
  }
42
42
 
43
43
  [slot="cite"]::before {