@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.
Files changed (136) hide show
  1. package/CHANGELOG.md +22 -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 +99 -100
  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/foundation/space.css +19 -18
  132. package/styles/host.css +48 -0
  133. package/styles/prose.css +187 -173
  134. package/styles/type/scale.css +6 -0
  135. package/styles/typography.css +10 -5
  136. package/styles/verse.css +122 -0
@@ -1,34 +1,34 @@
1
1
  @scope (breadcrumb-ui) {
2
2
  :where(:scope) {
3
3
  /* ── Layout ── */
4
- --breadcrumb-gap-default: var(--a-space-1);
5
- --breadcrumb-max-width-default: 12rem;
4
+ --breadcrumb-gap: var(--a-space-1);
5
+ --breadcrumb-max-width: 12rem;
6
6
 
7
7
  /* ── Typography ── */
8
- --breadcrumb-font-size-default: var(--a-ui-size);
9
- --breadcrumb-current-weight-default: var(--a-weight-medium);
8
+ --breadcrumb-font-size: var(--a-ui-size);
9
+ --breadcrumb-current-weight: var(--a-weight-medium);
10
10
 
11
11
  /* ── Colors ── */
12
- --breadcrumb-fg-default: var(--a-fg-subtle);
13
- --breadcrumb-fg-hover-default: var(--a-fg);
14
- --breadcrumb-separator-fg-default: var(--a-fg-muted);
15
- --breadcrumb-current-fg-default: var(--a-fg-strong);
12
+ --breadcrumb-fg: var(--a-fg-subtle);
13
+ --breadcrumb-fg-hover: var(--a-fg);
14
+ --breadcrumb-separator-fg: var(--a-fg-muted);
15
+ --breadcrumb-current-fg: var(--a-fg-strong);
16
16
 
17
17
  /* ── Transition ── */
18
- --breadcrumb-duration-default: var(--a-duration-fast);
19
- --breadcrumb-easing-default: var(--a-easing);
18
+ --breadcrumb-duration: var(--a-duration-fast);
19
+ --breadcrumb-easing: var(--a-easing);
20
20
 
21
21
  /* ── Link ── */
22
- --breadcrumb-link-radius-default: var(--a-radius-sm);
23
- --breadcrumb-link-focus-ring-default: var(--a-focus-ring);
22
+ --breadcrumb-link-radius: var(--a-radius-sm);
23
+ --breadcrumb-link-focus-ring: var(--a-focus-ring);
24
24
  }
25
25
 
26
26
  :scope {
27
27
  box-sizing: border-box;
28
28
  display: flex;
29
29
  align-items: center;
30
- gap: var(--breadcrumb-gap, var(--breadcrumb-gap-default));
31
- font-size: var(--breadcrumb-font-size, var(--breadcrumb-font-size-default));
30
+ gap: var(--breadcrumb-gap);
31
+ font-size: var(--breadcrumb-font-size);
32
32
  }
33
33
 
34
34
  /* Display convention (ADR-0037): block-level by default; [inline] opts back to inline-level. */
@@ -36,7 +36,7 @@
36
36
 
37
37
  /* Separator — standalone span, never inside <a> */
38
38
  [data-sep] {
39
- color: var(--breadcrumb-separator-fg, var(--breadcrumb-separator-fg-default));
39
+ color: var(--breadcrumb-separator-fg);
40
40
  flex-shrink: 0;
41
41
  pointer-events: none;
42
42
  user-select: none;
@@ -49,32 +49,32 @@
49
49
  overflow: hidden;
50
50
  text-overflow: ellipsis;
51
51
  white-space: nowrap;
52
- max-width: var(--breadcrumb-max-width, var(--breadcrumb-max-width-default));
53
- color: var(--breadcrumb-fg, var(--breadcrumb-fg-default));
52
+ max-width: var(--breadcrumb-max-width);
53
+ color: var(--breadcrumb-fg);
54
54
  }
55
55
 
56
56
  /* Links */
57
57
  a[data-item] {
58
58
  text-decoration: none;
59
- border-radius: var(--breadcrumb-link-radius, var(--breadcrumb-link-radius-default));
60
- transition: color var(--breadcrumb-duration, var(--breadcrumb-duration-default)) var(--breadcrumb-easing, var(--breadcrumb-easing-default));
59
+ border-radius: var(--breadcrumb-link-radius);
60
+ transition: color var(--breadcrumb-duration) var(--breadcrumb-easing);
61
61
  }
62
62
 
63
63
  a[data-item]:hover {
64
- color: var(--breadcrumb-fg-hover, var(--breadcrumb-fg-hover-default));
64
+ color: var(--breadcrumb-fg-hover);
65
65
  text-decoration: underline;
66
66
  text-underline-offset: 2px;
67
67
  }
68
68
 
69
69
  a[data-item]:focus-visible {
70
70
  outline: none;
71
- box-shadow: var(--breadcrumb-link-focus-ring, var(--breadcrumb-link-focus-ring-default));
71
+ box-shadow: var(--breadcrumb-link-focus-ring);
72
72
  }
73
73
 
74
74
  /* Current (last item) */
75
75
  [data-item][aria-current] {
76
- color: var(--breadcrumb-current-fg, var(--breadcrumb-current-fg-default));
77
- font-weight: var(--breadcrumb-current-weight, var(--breadcrumb-current-weight-default));
76
+ color: var(--breadcrumb-current-fg);
77
+ font-weight: var(--breadcrumb-current-weight);
78
78
  pointer-events: none;
79
79
  text-decoration: none;
80
80
  }
@@ -6,80 +6,79 @@ button-ui:active { transform: scale(0.97); }
6
6
 
7
7
  button-ui:not([disabled]):hover,
8
8
  button-ui[variant="primary"]:not([disabled]):hover {
9
- --button-bg-default: var(--button-bg-hover, var(--button-bg-hover-default));
10
- --button-fg-default: var(--button-fg-hover, var(--button-fg-hover-default));
11
- --button-border-default: var(--button-border-hover, var(--button-border-hover-default));
9
+ --button-bg: var(--button-bg-hover);
10
+ --button-fg: var(--button-fg-hover);
11
+ --button-border: var(--button-border-hover);
12
12
  }
13
13
  button-ui[variant="ghost"]:not([disabled]):hover {
14
- --button-bg-default: var(--button-bg-ghost-hover, var(--button-bg-ghost-hover-default));
15
- --button-fg-default: var(--button-fg-ghost-hover, var(--button-fg-ghost-hover-default));
16
- --button-border-default: var(--button-border-ghost-hover, var(--button-border-ghost-hover-default));
14
+ --button-bg: var(--button-bg-ghost-hover);
15
+ --button-fg: var(--button-fg-ghost-hover);
16
+ --button-border: var(--button-border-ghost-hover);
17
17
  }
18
18
  button-ui[variant="outline"]:not([disabled]):hover {
19
- --button-fg-default: var(--button-fg-hover, var(--button-fg-hover-default));
20
- --button-border-default: var(--button-border-hover, var(--button-border-hover-default));
19
+ --button-fg: var(--button-fg-hover);
20
+ --button-border: var(--button-border-hover);
21
21
  }
22
22
  button-ui[color="danger"]:not([disabled]):hover {
23
- --button-bg-default: var(--button-bg-hover, var(--button-bg-hover-default));
24
- --button-fg-default: var(--button-fg-hover, var(--button-fg-hover-default));
25
- --button-border-default: var(--button-border-hover, var(--button-border-hover-default));
23
+ --button-bg: var(--button-bg-hover);
24
+ --button-fg: var(--button-fg-hover);
25
+ --button-border: var(--button-border-hover);
26
26
  }
27
27
 
28
28
  @scope (button-ui) {
29
29
  :where(:scope) {
30
- /* OD-5 token-shadowing fix: `-default` suffix on internal-target
31
- tokens so the un-suffixed name (--button-bg / --button-fg /
32
- --button-border) is reserved as a consumer-extension point.
33
- Use sites read `var(--name, var(--name-default))` so a
34
- surface-ancestor declaration of --button-bg can win over the
35
- button's own state/variant cascade. Spec: docs/specs/genui-css-channel.md OD-5. */
36
- --button-bg-default: var(--a-ui-bg);
37
- --button-fg-default: var(--a-ui-text);
38
- --button-border-default: transparent;
39
- --button-height-default: var(--a-size);
40
- --button-px-default: var(--a-ui-px);
41
- --button-radius-default: var(--a-radius);
42
- --button-font-size-default: var(--a-ui-size);
43
- --button-font-weight-default: var(--a-ui-weight);
44
- --button-gap-default: var(--a-space-1);
45
- --button-bg-hover-default: var(--a-ui-bg-hover);
46
- --button-fg-hover-default: var(--a-ui-text-hover);
47
- --button-border-hover-default: transparent;
48
- --button-bg-primary-default: var(--a-primary);
49
- --button-fg-primary-default: var(--a-chrome-light);
50
- --button-bg-outline-default: transparent;
51
- --button-fg-outline-default: var(--a-fg);
52
- --button-border-outline-default: var(--a-ui-border);
53
- --button-bg-ghost-default: transparent;
54
- --button-fg-ghost-default: var(--a-fg-subtle);
55
- --button-fg-ghost-hover-default: var(--a-fg-strong);
56
- --button-bg-ghost-hover-default: var(--a-bg-hover);
57
- --button-border-ghost-default: transparent;
58
- --button-border-ghost-hover-default: transparent;
59
- --button-bg-danger-default: var(--a-danger);
60
- --button-fg-danger-default: var(--a-danger-fg);
61
- --button-bg-hover-danger-default: var(--a-danger);
62
- --button-bg-disabled-default: var(--a-ui-bg-disabled);
63
- --button-fg-disabled-default: var(--a-ui-text-disabled);
64
- --button-border-disabled-default: transparent;
30
+ /* Component tokens — the un-suffixed `--button-*` names ARE the
31
+ component's tokens; variants/states re-point them below. Consumers
32
+ override per-element (`button-ui { --button-bg: }` or inline) or
33
+ via `@layer overrides`. See docs/specs/component-token-contract.md. */
34
+ --button-bg: var(--a-ui-bg);
35
+ --button-fg: var(--a-ui-text);
36
+ --button-border: transparent;
37
+ --button-height: var(--a-size);
38
+ --button-px: var(--a-ui-px);
39
+ --button-radius: var(--a-radius);
40
+ --button-font-size: var(--a-ui-size);
41
+ --button-font-weight: var(--a-ui-weight);
42
+ --button-font-family: var(--a-font-family-ui);
43
+ --button-gap: var(--a-space-1);
44
+ --button-bg-hover: var(--a-ui-bg-hover);
45
+ --button-fg-hover: var(--a-ui-text-hover);
46
+ --button-border-hover: transparent;
47
+ --button-bg-primary: var(--a-primary);
48
+ --button-fg-primary: var(--a-chrome-light);
49
+ --button-bg-outline: transparent;
50
+ --button-fg-outline: var(--a-fg);
51
+ --button-border-outline: var(--a-ui-border);
52
+ --button-bg-ghost: transparent;
53
+ --button-fg-ghost: var(--a-fg-subtle);
54
+ --button-fg-ghost-hover: var(--a-fg-strong);
55
+ --button-bg-ghost-hover: var(--a-bg-hover);
56
+ --button-border-ghost: transparent;
57
+ --button-border-ghost-hover: transparent;
58
+ --button-bg-danger: var(--a-danger);
59
+ --button-fg-danger: var(--a-danger-fg);
60
+ --button-bg-hover-danger: var(--a-danger);
61
+ --button-bg-disabled: var(--a-ui-bg-disabled);
62
+ --button-fg-disabled: var(--a-ui-text-disabled);
63
+ --button-border-disabled: transparent;
65
64
 
66
65
  /* ── Transition ── */
67
- --button-duration-default: var(--a-duration-fast);
68
- --button-easing-default: var(--a-easing);
66
+ --button-duration: var(--a-duration-fast);
67
+ --button-easing: var(--a-easing);
69
68
 
70
69
  /* ── State ── */
71
- --button-focus-ring-default: var(--a-focus-ring);
70
+ --button-focus-ring: var(--a-focus-ring);
72
71
 
73
72
  /* ── Trailing slot ── */
74
- --button-trailing-font-size-default: var(--a-ui-sm);
73
+ --button-trailing-font-size: var(--a-ui-sm);
75
74
  /* kbd-pill tracks the button's OWN text color (currentColor) so it reads
76
75
  on any variant fill — on a primary button the fixed --a-fg-muted gray
77
76
  was nearly invisible against the white label. Border is a translucent
78
77
  slice of the same color so the pill outline adapts too. */
79
- --button-trailing-fg-default: currentColor;
80
- --button-trailing-border-default: color-mix(in oklab, currentColor 28%, transparent);
81
- --button-trailing-radius-default: var(--a-radius-sm);
82
- --button-trailing-px-default: var(--a-space-0-5);
78
+ --button-trailing-fg: currentColor;
79
+ --button-trailing-border: color-mix(in oklab, currentColor 28%, transparent);
80
+ --button-trailing-radius: var(--a-radius-sm);
81
+ --button-trailing-px: var(--a-space-0-5);
83
82
  }
84
83
 
85
84
  :scope {
@@ -87,27 +86,29 @@ button-ui[color="danger"]:not([disabled]):hover {
87
86
  display: flex;
88
87
  align-items: center;
89
88
  justify-content: center;
90
- gap: var(--button-gap, var(--button-gap-default));
91
- min-width: var(--button-height, var(--button-height-default)); /* keep button at least as wide as it is tall */
92
- min-height: var(--button-height, var(--button-height-default));
89
+ gap: var(--button-gap);
90
+ min-width: var(--button-height); /* keep button at least as wide as it is tall */
91
+ min-height: var(--button-height);
93
92
  overflow: hidden;
94
- padding-inline: var(--button-px, var(--button-px-default));
95
- border: 1px solid var(--button-border, var(--button-border-default));
96
- border-radius: var(--button-radius, var(--button-radius-default));
97
- background: var(--button-bg, var(--button-bg-default));
98
- color: var(--button-fg, var(--button-fg-default));
93
+ padding-inline: var(--button-px);
94
+ border: 1px solid var(--button-border);
95
+ border-radius: var(--button-radius);
96
+ background: var(--button-bg);
97
+ color: var(--button-fg);
99
98
  font: inherit;
100
- font-size: var(--button-font-size, var(--button-font-size-default));
101
- font-weight: var(--button-font-weight, var(--button-font-weight-default));
99
+ /* font-family floor — see segment.css rationale. */
100
+ font-family: var(--button-font-family);
101
+ font-size: var(--button-font-size);
102
+ font-weight: var(--button-font-weight);
102
103
  line-height: 1;
103
104
  cursor: pointer;
104
105
  user-select: none;
105
106
  transition:
106
- background var(--button-duration, var(--button-duration-default)) var(--button-easing, var(--button-easing-default)),
107
- border-color var(--button-duration, var(--button-duration-default)) var(--button-easing, var(--button-easing-default)),
108
- color var(--button-duration, var(--button-duration-default)) var(--button-easing, var(--button-easing-default)),
109
- opacity var(--button-duration, var(--button-duration-default)) var(--button-easing, var(--button-easing-default)),
110
- transform var(--button-duration, var(--button-duration-default)) var(--button-easing, var(--button-easing-default));
107
+ background var(--button-duration) var(--button-easing),
108
+ border-color var(--button-duration) var(--button-easing),
109
+ color var(--button-duration) var(--button-easing),
110
+ opacity var(--button-duration) var(--button-easing),
111
+ transform var(--button-duration) var(--button-easing);
111
112
  white-space: nowrap;
112
113
  }
113
114
  :scope[text]::after {
@@ -140,38 +141,36 @@ button-ui[color="danger"]:not([disabled]):hover {
140
141
  [slot="trailing"] {
141
142
  order: 99;
142
143
  margin-inline-start: auto;
143
- font-size: var(--button-trailing-font-size, var(--button-trailing-font-size-default));
144
- color: var(--button-trailing-fg, var(--button-trailing-fg-default));
144
+ font-size: var(--button-trailing-font-size);
145
+ color: var(--button-trailing-fg);
145
146
  font-family: inherit;
146
- border: 1px solid var(--button-trailing-border, var(--button-trailing-border-default));
147
- border-radius: var(--button-trailing-radius, var(--button-trailing-radius-default));
148
- padding: 0 var(--button-trailing-px, var(--button-trailing-px-default));
147
+ border: 1px solid var(--button-trailing-border);
148
+ border-radius: var(--button-trailing-radius);
149
+ padding: 0 var(--button-trailing-px);
149
150
  line-height: 1;
150
151
  }
151
152
 
152
153
  /* :scope:active moved outside @scope — see Safari 17.x bug note at top. */
153
- :scope:focus-visible { outline: none; box-shadow: var(--button-focus-ring, var(--button-focus-ring-default)); }
154
+ :scope:focus-visible { outline: none; box-shadow: var(--button-focus-ring); }
154
155
 
155
156
  /* ── Variants (rest state) ──
156
- State/variant blocks override the `-default` (the fallback for
157
- when no consumer extension is set). Consumer override of the
158
- un-suffixed name (--button-bg etc.) wins at the use site via
159
- `var(--button-bg, var(--button-bg-default))`. */
157
+ Variant/state blocks re-point the component tokens (--button-bg etc.);
158
+ the base layout in :scope stays untouched. */
160
159
  :scope[variant="primary"] {
161
- --button-bg-default: var(--button-bg-primary, var(--button-bg-primary-default));
162
- --button-fg-default: var(--button-fg-primary, var(--button-fg-primary-default));
160
+ --button-bg: var(--button-bg-primary);
161
+ --button-fg: var(--button-fg-primary);
163
162
  }
164
163
 
165
164
  :scope[variant="outline"] {
166
- --button-bg-default: var(--button-bg-outline, var(--button-bg-outline-default));
167
- --button-fg-default: var(--button-fg-outline, var(--button-fg-outline-default));
168
- --button-border-default: var(--button-border-outline, var(--button-border-outline-default));
165
+ --button-bg: var(--button-bg-outline);
166
+ --button-fg: var(--button-fg-outline);
167
+ --button-border: var(--button-border-outline);
169
168
  }
170
169
 
171
170
  :scope[variant="ghost"] {
172
- --button-bg-default: var(--button-bg-ghost, var(--button-bg-ghost-default));
173
- --button-fg-default: var(--button-fg-ghost, var(--button-fg-ghost-default));
174
- --button-border-default: var(--button-border-ghost, var(--button-border-ghost-default));
171
+ --button-bg: var(--button-bg-ghost);
172
+ --button-fg: var(--button-fg-ghost);
173
+ --button-border: var(--button-border-ghost);
175
174
  }
176
175
 
177
176
  /* ── Color (semantic axis) ──
@@ -180,28 +179,28 @@ button-ui[color="danger"]:not([disabled]):hover {
180
179
  vs `<button-ui variant="outline" color="danger">`.
181
180
  `variant="danger"` is a deprecated alias migrated to color via JS. */
182
181
  :scope[color="danger"] {
183
- --button-bg-default: var(--button-bg-danger, var(--button-bg-danger-default));
184
- --button-fg-default: var(--button-fg-danger, var(--button-fg-danger-default));
182
+ --button-bg: var(--button-bg-danger);
183
+ --button-fg: var(--button-fg-danger);
185
184
  }
186
185
  :scope[color="success"] {
187
186
  /* Consume the L3 `-bg` alias, not the L2 `-strong` step. Currently
188
187
  resolves identically (both = `-50`), but consuming `-bg` future-
189
188
  proofs if the surface-step ever redirects (as -warning-bg did
190
189
  in v0.6.36 to fix muddy contrast). */
191
- --button-bg-default: var(--a-success-bg);
192
- --button-fg-default: var(--a-success-fg);
190
+ --button-bg: var(--a-success-bg);
191
+ --button-fg: var(--a-success-fg);
193
192
  }
194
193
  :scope[color="info"] {
195
- --button-bg-default: var(--a-info-bg);
196
- --button-fg-default: var(--a-info-fg);
194
+ --button-bg: var(--a-info-bg);
195
+ --button-fg: var(--a-info-fg);
197
196
  }
198
197
  :scope[color="warning"] {
199
198
  /* `--a-warning-bg` (bright amber, scheme-independent) not
200
199
  `-strong` (mid-tone). The pair `-strong` + `-fg` gives muddy
201
200
  brown-on-brown — the L3 `-bg` is the canonical solid-warning
202
201
  surface paired with `-fg` (dark text). */
203
- --button-bg-default: var(--a-warning-bg);
204
- --button-fg-default: var(--a-warning-fg);
202
+ --button-bg: var(--a-warning-bg);
203
+ --button-fg: var(--a-warning-fg);
205
204
  }
206
205
 
207
206
  /* Hover rules moved outside @scope — see Safari 17.x bug note at
@@ -216,16 +215,16 @@ button-ui[color="danger"]:not([disabled]):hover {
216
215
 
217
216
  /* Disabled */
218
217
  :scope[disabled] {
219
- --button-bg-default: var(--button-bg-disabled, var(--button-bg-disabled-default));
220
- --button-fg-default: var(--button-fg-disabled, var(--button-fg-disabled-default));
221
- --button-border-default: var(--button-border-disabled, var(--button-border-disabled-default));
218
+ --button-bg: var(--button-bg-disabled);
219
+ --button-fg: var(--button-fg-disabled);
220
+ --button-border: var(--button-border-disabled);
222
221
  pointer-events: none;
223
222
  cursor: not-allowed;
224
223
  }
225
224
 
226
225
  /* Icon-only (no text) */
227
226
  :scope:not([text]), :scope[text=""] {
228
- --button-px-default: 0;
229
- width: var(--button-height, var(--button-height-default));
227
+ --button-px: 0;
228
+ width: var(--button-height);
230
229
  }
231
230
  }