@adia-ai/web-components 0.7.27 → 0.8.0

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 (166) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/components/accordion/accordion.css +13 -4
  3. package/components/action-list/action-list.css +3 -3
  4. package/components/agent-artifact/agent-artifact.css +4 -4
  5. package/components/agent-questions/agent-questions.css +8 -8
  6. package/components/agent-reasoning/agent-reasoning.css +6 -6
  7. package/components/agent-trace/agent-trace.css +4 -4
  8. package/components/agent-trace/agent-trace.js +1 -1
  9. package/components/alert/alert.css +16 -16
  10. package/components/avatar/avatar.css +3 -3
  11. package/components/badge/badge.css +32 -32
  12. package/components/blockquote/blockquote.css +1 -1
  13. package/components/breadcrumb/breadcrumb.css +2 -2
  14. package/components/button/button.css +14 -14
  15. package/components/calendar-grid/calendar-grid.a2ui.json +3 -3
  16. package/components/calendar-grid/calendar-grid.css +10 -10
  17. package/components/calendar-grid/calendar-grid.yaml +3 -3
  18. package/components/calendar-picker/calendar-picker.css +11 -11
  19. package/components/canvas/canvas.css +2 -2
  20. package/components/card/card.css +15 -15
  21. package/components/chart/chart.a2ui.json +1 -1
  22. package/components/chart/chart.css +23 -23
  23. package/components/chart/chart.yaml +2 -0
  24. package/components/chart-legend/chart-legend.css +2 -2
  25. package/components/chat-thread/chat-input.css +6 -6
  26. package/components/chat-thread/chat-thread.css +7 -7
  27. package/components/check/check.css +4 -4
  28. package/components/code/code-editor.js +1 -1
  29. package/components/code/code.css +45 -22
  30. package/components/color-picker/color-picker.css +4 -4
  31. package/components/combobox/combobox.css +6 -6
  32. package/components/command/command.class.js +14 -3
  33. package/components/command/command.css +4 -4
  34. package/components/context-menu/context-menu.css +2 -2
  35. package/components/date-range-picker/date-range-picker.a2ui.json +3 -3
  36. package/components/date-range-picker/date-range-picker.css +8 -8
  37. package/components/date-range-picker/date-range-picker.yaml +3 -3
  38. package/components/datetime-picker/datetime-picker.css +6 -6
  39. package/components/demo-toggle/demo-toggle.css +4 -4
  40. package/components/description-list/description-list.css +1 -1
  41. package/components/display-field/display-field.css +2 -2
  42. package/components/divider/divider.css +1 -1
  43. package/components/drawer/drawer.css +7 -7
  44. package/components/embed/embed.css +1 -1
  45. package/components/empty-state/empty-state.css +5 -5
  46. package/components/feed/feed.css +7 -7
  47. package/components/field/field.css +2 -2
  48. package/components/heatmap/heatmap.css +8 -8
  49. package/components/inline-edit/inline-edit.a2ui.json +1 -1
  50. package/components/inline-edit/inline-edit.css +3 -3
  51. package/components/inline-edit/inline-edit.yaml +1 -1
  52. package/components/inline-message/inline-message.css +4 -4
  53. package/components/input/input.css +1 -1
  54. package/components/inspector/inspector.css +1 -1
  55. package/components/integration-card/integration-card.css +3 -3
  56. package/components/kbd/kbd.a2ui.json +4 -0
  57. package/components/kbd/kbd.css +2 -2
  58. package/components/kbd/kbd.d.ts +2 -0
  59. package/components/kbd/kbd.yaml +5 -0
  60. package/components/link/link.css +2 -2
  61. package/components/list/list.css +10 -10
  62. package/components/list-window/list-window.css +2 -2
  63. package/components/mark/mark.css +9 -9
  64. package/components/menu/menu.css +9 -9
  65. package/components/modal/modal.css +4 -4
  66. package/components/nav/nav.css +1 -1
  67. package/components/nav-group/nav-group.css +7 -16
  68. package/components/nav-item/nav-item.css +1 -1
  69. package/components/noodles/noodles.a2ui.json +1 -1
  70. package/components/noodles/noodles.css +3 -3
  71. package/components/noodles/noodles.d.ts +1 -1
  72. package/components/noodles/noodles.yaml +1 -1
  73. package/components/option-card/option-card.css +11 -11
  74. package/components/otp-input/otp-input.css +1 -1
  75. package/components/page/page.css +2 -2
  76. package/components/pane/pane.css +5 -5
  77. package/components/password-strength/password-strength.css +1 -1
  78. package/components/pipeline-status/pipeline-status.css +9 -9
  79. package/components/popover/popover.css +2 -2
  80. package/components/preview/preview.css +14 -3
  81. package/components/progress/progress.a2ui.json +1 -1
  82. package/components/progress/progress.css +1 -1
  83. package/components/progress/progress.d.ts +1 -1
  84. package/components/progress/progress.yaml +1 -1
  85. package/components/progress-row/progress-row.css +2 -2
  86. package/components/radio/radio.css +4 -4
  87. package/components/range/range.css +2 -2
  88. package/components/rating/rating.css +2 -2
  89. package/components/richtext/richtext.class.js +4 -0
  90. package/components/richtext/richtext.css +5 -5
  91. package/components/richtext/richtext.yaml +1 -0
  92. package/components/row/row.css +1 -1
  93. package/components/select/select.css +8 -8
  94. package/components/skip-nav/skip-nav.a2ui.json +2 -2
  95. package/components/skip-nav/skip-nav.css +3 -3
  96. package/components/skip-nav/skip-nav.yaml +2 -2
  97. package/components/slider/slider.css +5 -5
  98. package/components/spinner/spinner.css +2 -2
  99. package/components/spinner/spinner.test.js +4 -2
  100. package/components/stat/stat.css +1 -1
  101. package/components/step-progress/step-progress.a2ui.json +1 -1
  102. package/components/step-progress/step-progress.class.js +1 -1
  103. package/components/step-progress/step-progress.css +2 -2
  104. package/components/step-progress/step-progress.d.ts +1 -1
  105. package/components/step-progress/step-progress.yaml +1 -1
  106. package/components/stepper/stepper.css +22 -22
  107. package/components/stream/stream.css +2 -2
  108. package/components/swatch/swatch.class.js +1 -1
  109. package/components/swatch/swatch.css +11 -11
  110. package/components/swiper/swiper.css +5 -5
  111. package/components/switch/switch.css +5 -5
  112. package/components/table/cell-types.js +32 -3
  113. package/components/table/table.a2ui.json +1 -1
  114. package/components/table/table.css +16 -11
  115. package/components/table/table.test.js +37 -0
  116. package/components/table/table.yaml +2 -0
  117. package/components/table-toolbar/table-toolbar.css +8 -8
  118. package/components/tabs/tabs.css +5 -5
  119. package/components/tag/tag.css +41 -29
  120. package/components/tag/tag.test.js +22 -29
  121. package/components/tags-input/tags-input.a2ui.json +1 -1
  122. package/components/tags-input/tags-input.css +3 -3
  123. package/components/tags-input/tags-input.yaml +5 -3
  124. package/components/text/text.css +4 -4
  125. package/components/textarea/textarea.css +1 -1
  126. package/components/time-picker/time-picker.css +2 -2
  127. package/components/timeline/timeline.css +31 -31
  128. package/components/toast/toast.css +19 -19
  129. package/components/toc/toc.a2ui.json +1 -1
  130. package/components/toc/toc.css +3 -3
  131. package/components/toc/toc.yaml +1 -1
  132. package/components/toggle-group/toggle-group.css +3 -3
  133. package/components/toolbar/toolbar.css +3 -3
  134. package/components/tooltip/tooltip.css +9 -9
  135. package/components/tour/tour.css +3 -3
  136. package/components/tree/tree.css +2 -2
  137. package/components/upload/upload.css +7 -7
  138. package/core/markdown.js +1 -1
  139. package/dist/host.min.css +1 -1
  140. package/dist/host.sheet.js +1 -1
  141. package/dist/theme-provider.min.js +7 -7
  142. package/dist/themes.min.css +1 -1
  143. package/dist/themes.sheet.js +1 -1
  144. package/dist/web-components.min.css +1 -1
  145. package/dist/web-components.min.js +62 -62
  146. package/dist/web-components.sheet.js +1 -1
  147. package/package.json +3 -3
  148. package/styles/api/text.css +1 -1
  149. package/styles/colors/bridges/material-bridge.css +30 -0
  150. package/styles/colors/index.css +19 -1
  151. package/styles/colors/material-static.css +771 -0
  152. package/styles/colors/parameters.css +40 -4
  153. package/styles/colors/primitives-primary.css +89 -0
  154. package/styles/colors/primitives-secondary.css +89 -0
  155. package/styles/colors/primitives-tertiary.css +89 -0
  156. package/styles/colors/primitives.css +3 -1
  157. package/styles/colors/scrims.css +19 -180
  158. package/styles/colors/semantics/aliases.css +25 -11
  159. package/styles/colors/semantics/buckets.css +28 -12
  160. package/styles/colors/semantics/core.css +323 -202
  161. package/styles/colors/semantics/data-viz.css +13 -13
  162. package/styles/colors/semantics/features.css +31 -13
  163. package/styles/colors/surfaces.css +41 -31
  164. package/styles/resets.css +15 -1
  165. package/styles/themes.css +15 -15
  166. package/styles/colors/primitives-accent.css +0 -89
package/CHANGELOG.md CHANGED
@@ -1,4 +1,41 @@
1
1
  # Changelog — @adia-ai/web-components
2
+ ## [0.8.0] — 2026-07-15
3
+
4
+ ### BREAKING — Material Design color-token adoption (MINOR cut; see `.claude/docs/MIGRATION GUIDE.md` § v0.8.0)
5
+ - **`--md-sys-color-*` is now the color system's source of truth and public API.** `styles/colors/material-static.css` (new) carries the full static export — 8 palettes × 59 semantic roles, verbatim from the nonoun-color-tokens-adia reference. The `--a-*` semantic layer (`semantics/core.css`, `surfaces.css`, `semantics/{features,aliases}.css`) is now a thin alias layer reading FROM it; the old calc()-computed OKLCH engine no longer feeds the semantic tokens. Contract + full phase history: `.claude/docs/specs/material-color-bridge-contract.md`.
6
+ - **Removed: the 19 `--a-accent-*` back-compat aliases** (`accent` → `primary` family rename; sweep: `--a-accent*` → `--a-primary*`, or consume `--md-sys-color-primary*` directly).
7
+ - **Removed: `styles/colors/scrims.css`'s 189 raw per-family scrim primitives** (`--a-{family}-{0..6}-{tint-|shade-}scrim`) — zero consumers remained once the semantic layer moved to the static `--md-sys-color-{family}-scrim-{weakest..strongest}` ladder. The semantic `--a-canvas-{0..6}-scrim` / `--a-scrim-*` role names keep working. Alpha ceiling note: the static ladder tops out at 60% (old ramp: 70%).
8
+ - **Removed: `styles/colors/primitives-accent.css`** (deep-import path) — renamed `primitives-primary.css`.
9
+ - **Behavioral: the 8 named `[theme]` presets no longer re-color components.** The presets overrode parametric hue/chroma knobs the static export doesn't read; only `--a-brand-hue` + the non-color knobs (`--a-radius-k`, `--a-density`, `--a-shadow-intensity`) still respond to `[theme]`. Operator-accepted tradeoff of the adoption.
10
+
11
+ ### Added
12
+ - **`secondary` + `tertiary` color families** (full ramps, semantics, scrim roles): `tertiary` at hue 335 — the one slot in the open hue range that clears real CVD separation from all four intent hues (empirical deuteranopia/protanopia sweep via culori, not estimation); `secondary` as a muted `primary` variant (same hue 225, c-max 0.08), zero new CVD risk.
13
+
14
+ ### Changed
15
+ - **Repo-wide consumer sweep onto `--md-sys-color-*`** — 2,472 call sites across 584 files (components, traits, demos, patterns, apps, site) moved from `--a-*` reads to the Material roles (`scripts/refactor/adopt-material-tokens.mjs`).
16
+ - **12 component yaml SoTs re-synced with their swept CSS** (`calendar-grid`, `date-range-picker`, `inline-edit`, `noodles`, `progress`, `step-progress`, `toc`, `skip-nav` here; 4 more in web-modules) — token `default:` docs referenced the removed `--a-accent-*` names; sidecars + catalog regenerated.
17
+ - **`tag-ui`** — warning solid-fill now pairs the amber fill with Material's fixed-light `on-warning` (white in both schemes, per Material's on-color law); the pre-migration dark-text override is gone. Known lower-than-siblings contrast, operator-accepted pending palette adjustment (TKT-0018, wontfix). Tests re-aligned to the post-migration token names (`tag.test.js`, `spinner.test.js`).
18
+
19
+ ### Maintenance
20
+ - **`dist/` CDN bundles rebuilt** — and ~6% smaller (`web-components.min.css` 628.6 → ~590 KB): the retired scrims/bridge dead code is actually gone from the payload.
21
+ ## [0.7.28] — 2026-07-14
22
+
23
+ ### Added
24
+ - **`table-ui` (`components/table/cell-types.js`) — `markdown` cell type: inline `` `code` ``/**bold**/*italic*/`[link](href)` rendered as real elements, not a plain string.** TKT-0008 (site-a2ui re-verification, direction 1): docs reference tables (props/API tables) mix prose with multiple inline `<code>` spans per cell — content the `{columns, data}` JSON contract previously couldn't carry, forcing a preserved-HTML fallback that dropped the table from the A2UI graph entirely. Renders via `core/markdown.js`'s `inline()` (now exported) — the exact encode/decode pairing the docs-transpiler's own `convertInline()` already produces elsewhere in the pipeline. `[title]` carries the tag-stripped plain text for the truncation tooltip. New unit suite in `table.test.js` (3 cases).
25
+
26
+ ### Changed
27
+ - **`core/markdown.js` — `inline()` is now exported.** Was module-private; reused by `cell-types.js`'s new `markdown` cell type as the client-side half of the docs-transpiler's `convertInline()` contract. No behavior change to existing callers.
28
+
29
+ ### Fixed — TKT-0010, corpus admission-validation content gaps
30
+ - **`kbd.yaml` — declares a `textContent` prop.** Every other text-bearing leaf (`Text`, `Code`) already declares one; `Kbd` was missing it, so the transpiler's unconditional `textContent` extraction for leaf types produced a value the catalog schema rejected as an unevaluated property on every harvested `<kbd-ui>` chunk (12 instances). Purely a schema declaration gap — no behavior change (the transpiler already extracted the value correctly).
31
+ - **`chart.yaml`/`table.yaml` — `data` prop declares `items: {type: object}`.** Opts these two dynamic array props into `@adia-ai/a2ui-corpus`'s new `DynamicObjectList` schema (array-of-object) instead of the default `DynamicStringList` (array-of-string) — the wrong shape for chart/table row records. Paired with a transpiler fix in `@adia-ai/a2ui-compose` (the attribute value was never actually parsed); see that package's CHANGELOG.
32
+
33
+ ### Fixed — GH #224, SVG zero-viewport silent non-render
34
+ - **`styles/resets.css` — `svg` gets its own reset rule, dropping `max-inline-size`/`block-size` instead of sharing `img`/`picture`/`video`/`canvas`'s `max-inline-size: 100%; block-size: auto` rule.** Per the SVG spec, a zero-size viewport — exactly what `max-inline-size: 100%` computes to inside a zero-intrinsic-size ancestor (the common `width:0; height:0; transform:scale(s)` pattern for a CSS-scaled canvas/scene) — makes the element **not render at all**, not "render at 0 visual size": silent, no console warning. `img`/`picture`/`video`/`canvas` don't share this failure mode. Components that embed SVG (`icon-ui`, etc.) already size it explicitly in their own scoped CSS and are unaffected either way (verified: no component CSS relies on the global rule's sizing behavior). Verified via the full web-modules test suite + a manual repro check against the reporting issue's own reproduction case (no dedicated new test — a global CSS reset rule).
35
+
36
+ ### Maintenance
37
+ - **`dist/` CDN bundles rebuilt** (`host.min.css`, `host.sheet.js`, `theme-provider.min.js`, `web-components.min.{css,js}`, `web-components.sheet.js`) to inline the `resets.css` fix above.
38
+
2
39
  ## [0.7.27] — 2026-07-12
3
40
 
4
41
  Fixes harvested from the /site → A2UI docs migration's live operator reports (TKT-0002…0006) — each was a real framework defect the migration surfaced, not a docs-only issue — plus the router race that three separate flake classes traced back to.
@@ -38,11 +38,11 @@
38
38
  --accordion-item-body-pt: 0;
39
39
 
40
40
  /* ── Colors ── */
41
- --accordion-item-header-fg: var(--a-fg-subtle);
41
+ --accordion-item-header-fg: var(--md-sys-color-neutral-on-surface-variant);
42
42
  --accordion-item-header-fg-hover: var(--a-fg-strong);
43
43
  --accordion-item-header-bg-hover: var(--a-bg-muted);
44
44
  --accordion-item-caret-fg: var(--a-fg-muted);
45
- --accordion-item-caret-fg-hover: var(--a-fg-subtle);
45
+ --accordion-item-caret-fg-hover: var(--md-sys-color-neutral-on-surface-variant);
46
46
 
47
47
  /* ── Layout ── */
48
48
  --accordion-item-radius: var(--a-radius-md);
@@ -92,8 +92,8 @@
92
92
  :scope[variant="contained"],
93
93
  :where(accordion-ui[variant="contained"]) > :scope:not([variant="flat"]) {
94
94
  --accordion-item-bg: var(--a-bg-subtle);
95
- --accordion-item-border: 1px solid var(--a-border-subtle);
96
- --accordion-item-divider: 1px solid var(--a-border-subtle);
95
+ --accordion-item-border: 1px solid var(--md-sys-color-neutral-outline-variant);
96
+ --accordion-item-divider: 1px solid var(--md-sys-color-neutral-outline-variant);
97
97
  --accordion-item-body-pt: var(--a-space-2);
98
98
  --accordion-item-header-radius: 0; /* pill corners flush to the surface (Finding 8) */
99
99
  --accordion-item-header-focus-shadow: none; /* inner ring off; surface ring below (Finding 2) */
@@ -139,6 +139,15 @@
139
139
 
140
140
  :scope [slot="header"]:hover {
141
141
  color: var(--accordion-item-header-fg-hover);
142
+ }
143
+
144
+ /* Hover highlight paints the ITEM's own box (TKT-0016), not just the
145
+ header slot — so an expanded item's body is inside the highlight
146
+ too, not sitting outside it on the plain background. Trigger stays
147
+ the header (only child that's ever :hover-targeted here); paint
148
+ target moves to :scope, which already carries the item's own
149
+ border-radius, so header + body read as one continuous shape. */
150
+ :scope:has(> [slot="header"]:hover) {
142
151
  background: var(--accordion-item-header-bg-hover);
143
152
  }
144
153
 
@@ -36,14 +36,14 @@ action-item-ui:hover [slot="icon"] {
36
36
  --action-item-radius: var(--a-radius-md);
37
37
 
38
38
  --action-item-bg: transparent;
39
- --action-item-fg: var(--a-fg-subtle);
39
+ --action-item-fg: var(--md-sys-color-neutral-on-surface-variant);
40
40
  --action-item-fg-hover: var(--a-fg-strong);
41
41
  --action-item-bg-hover: var(--a-bg-muted);
42
42
  --action-item-fg-disabled: var(--a-ui-text-disabled);
43
43
  --action-item-icon-fg: var(--a-fg-muted);
44
- --action-item-icon-fg-hover: var(--a-fg);
44
+ --action-item-icon-fg-hover: var(--md-sys-color-neutral-on-surface);
45
45
  --action-item-danger-fg: var(--a-danger-bg);
46
- --action-item-danger-bg: var(--a-danger-muted);
46
+ --action-item-danger-bg: var(--md-sys-color-danger-container);
47
47
 
48
48
  --action-item-font-size: var(--a-ui-size);
49
49
  --action-item-icon-size: var(--action-item-font-size);
@@ -9,10 +9,10 @@
9
9
 
10
10
  /* ── Colors ── */
11
11
  --agent-artifact-bg: var(--a-bg-subtle);
12
- --agent-artifact-fg: var(--a-fg);
12
+ --agent-artifact-fg: var(--md-sys-color-neutral-on-surface);
13
13
  --agent-artifact-fg-muted: var(--a-fg-muted);
14
- --agent-artifact-border: var(--a-border-subtle);
15
- --agent-artifact-header-bg: var(--a-bg);
14
+ --agent-artifact-border: var(--md-sys-color-neutral-outline-variant);
15
+ --agent-artifact-header-bg: var(--md-sys-color-neutral-background);
16
16
  --agent-artifact-header-bg-hover: var(--a-bg-hover);
17
17
 
18
18
  /* ── Typography ── */
@@ -33,7 +33,7 @@
33
33
  min-width: 0;
34
34
  }
35
35
 
36
- :scope[tone="accent"] { --agent-artifact-border: var(--a-accent-bg); }
36
+ :scope[tone="accent"] { --agent-artifact-border: var(--a-primary-bg); }
37
37
  :scope[tone="warning"] { --agent-artifact-border: var(--a-warning-bg); }
38
38
  :scope[tone="danger"] { --agent-artifact-border: var(--a-danger-bg); }
39
39
 
@@ -9,17 +9,17 @@
9
9
  --agent-questions-desc-size: var(--a-ui-sm);
10
10
 
11
11
  /* ── Colors ── */
12
- --agent-questions-q-fg: var(--a-fg);
12
+ --agent-questions-q-fg: var(--md-sys-color-neutral-on-surface);
13
13
  --agent-questions-helper-fg: var(--a-fg-muted);
14
- --agent-questions-label-fg: var(--a-fg);
14
+ --agent-questions-label-fg: var(--md-sys-color-neutral-on-surface);
15
15
  --agent-questions-desc-fg: var(--a-fg-muted);
16
- --agent-questions-option-bg: var(--a-bg);
16
+ --agent-questions-option-bg: var(--md-sys-color-neutral-background);
17
17
  --agent-questions-option-bg-hover: var(--a-bg-subtle);
18
- --agent-questions-option-bg-sel: var(--a-accent-muted);
19
- --agent-questions-option-border: var(--a-border-subtle);
20
- --agent-questions-option-border-sel: var(--a-accent-bg);
21
- --agent-questions-check-bg: var(--a-accent-bg);
22
- --agent-questions-check-fg: var(--a-accent-fg);
18
+ --agent-questions-option-bg-sel: var(--md-sys-color-primary-container);
19
+ --agent-questions-option-border: var(--md-sys-color-neutral-outline-variant);
20
+ --agent-questions-option-border-sel: var(--a-primary-bg);
21
+ --agent-questions-check-bg: var(--a-primary-bg);
22
+ --agent-questions-check-fg: var(--md-sys-color-primary-on-primary);
23
23
 
24
24
  /* ── Layout ── */
25
25
  --agent-questions-gap: var(--a-space-2);
@@ -10,15 +10,15 @@
10
10
  --agent-reasoning-weight-heading: var(--a-weight-medium);
11
11
 
12
12
  /* Colors */
13
- --agent-reasoning-fg: var(--a-fg);
13
+ --agent-reasoning-fg: var(--md-sys-color-neutral-on-surface);
14
14
  --agent-reasoning-fg-muted: var(--a-fg-muted);
15
- --agent-reasoning-fg-subtle: var(--a-fg-subtle);
16
- --agent-reasoning-border: var(--a-border-subtle);
17
- --agent-reasoning-spinner-track: var(--a-border-subtle);
18
- --agent-reasoning-spinner-head: var(--a-accent-bg);
15
+ --agent-reasoning-fg-subtle: var(--md-sys-color-neutral-on-surface-variant);
16
+ --agent-reasoning-border: var(--md-sys-color-neutral-outline-variant);
17
+ --agent-reasoning-spinner-track: var(--md-sys-color-neutral-outline-variant);
18
+ --agent-reasoning-spinner-head: var(--a-primary-bg);
19
19
  --agent-reasoning-iter-bg: var(--a-bg-subtle);
20
20
  --agent-reasoning-iter-bg-active: var(--a-bg-muted);
21
- --agent-reasoning-iter-border: var(--a-border-subtle);
21
+ --agent-reasoning-iter-border: var(--md-sys-color-neutral-outline-variant);
22
22
 
23
23
  /* Sizes */
24
24
  --agent-reasoning-marker-size: var(--a-icon-size);
@@ -5,11 +5,11 @@
5
5
  --agent-trace-label-font: var(--a-ui-sm);
6
6
 
7
7
  /* ── Colors ── */
8
- --agent-trace-fg: var(--a-fg);
8
+ --agent-trace-fg: var(--md-sys-color-neutral-on-surface);
9
9
  --agent-trace-fg-muted: var(--a-fg-muted);
10
- --agent-trace-fg-subtle: var(--a-fg-subtle);
11
- --agent-trace-sep: var(--a-fg-subtle);
12
- --agent-trace-border: var(--a-border-subtle);
10
+ --agent-trace-fg-subtle: var(--md-sys-color-neutral-on-surface-variant);
11
+ --agent-trace-sep: var(--md-sys-color-neutral-on-surface-variant);
12
+ --agent-trace-border: var(--md-sys-color-neutral-outline-variant);
13
13
 
14
14
  /* ── Layout ── */
15
15
  --agent-trace-pill-gap: var(--a-space-1);
@@ -197,7 +197,7 @@ class UIAgentTrace extends UIElement {
197
197
  success: 'var(--a-success-strong)',
198
198
  warning: 'var(--a-warning-strong)',
199
199
  danger: 'var(--a-danger-strong)',
200
- info: 'var(--a-accent-strong)',
200
+ info: 'var(--a-primary-strong)',
201
201
  neutral: 'var(--a-fg-muted)',
202
202
  }[tone] || 'var(--a-fg-muted)';
203
203
 
@@ -2,8 +2,8 @@
2
2
  :where(:scope) {
3
3
  /* ── Colors ── */
4
4
  --alert-bg: var(--a-bg-muted);
5
- --alert-fg: var(--a-fg);
6
- --alert-border: var(--a-border-subtle);
5
+ --alert-fg: var(--md-sys-color-neutral-on-surface);
6
+ --alert-border: var(--md-sys-color-neutral-outline-variant);
7
7
  --alert-icon-fg: var(--a-fg-muted);
8
8
 
9
9
  /* ── Layout ── */
@@ -44,30 +44,30 @@
44
44
 
45
45
  /* ── Variants ── */
46
46
  :scope[variant="info"] {
47
- --alert-bg: var(--a-info-muted);
48
- --alert-fg: var(--a-info-text);
49
- --alert-border: var(--a-info-border-subtle);
47
+ --alert-bg: var(--md-sys-color-info-container);
48
+ --alert-fg: var(--md-sys-color-info-on-surface);
49
+ --alert-border: var(--md-sys-color-info-outline-variant);
50
50
  --alert-icon-fg: var(--a-info-strong);
51
51
  }
52
52
 
53
53
  :scope[variant="success"] {
54
- --alert-bg: var(--a-success-muted);
55
- --alert-fg: var(--a-success-text);
56
- --alert-border: var(--a-success-border-subtle);
54
+ --alert-bg: var(--md-sys-color-success-container);
55
+ --alert-fg: var(--md-sys-color-success-on-surface);
56
+ --alert-border: var(--md-sys-color-success-outline-variant);
57
57
  --alert-icon-fg: var(--a-success-strong);
58
58
  }
59
59
 
60
60
  :scope[variant="warning"] {
61
- --alert-bg: var(--a-warning-muted);
62
- --alert-fg: var(--a-warning-text);
63
- --alert-border: var(--a-warning-border-subtle);
61
+ --alert-bg: var(--md-sys-color-warning-container);
62
+ --alert-fg: var(--md-sys-color-warning-on-surface);
63
+ --alert-border: var(--md-sys-color-warning-outline-variant);
64
64
  --alert-icon-fg: var(--a-warning-strong);
65
65
  }
66
66
 
67
67
  :scope[variant="danger"] {
68
- --alert-bg: var(--a-danger-muted);
69
- --alert-fg: var(--a-danger-text);
70
- --alert-border: var(--a-danger-border-subtle);
68
+ --alert-bg: var(--md-sys-color-danger-container);
69
+ --alert-fg: var(--md-sys-color-danger-on-surface);
70
+ --alert-border: var(--md-sys-color-danger-outline-variant);
71
71
  --alert-icon-fg: var(--a-danger-strong);
72
72
  }
73
73
 
@@ -79,8 +79,8 @@
79
79
  :scope[variant="muted"],
80
80
  :scope[variant="neutral"] {
81
81
  --alert-bg: var(--a-bg-muted);
82
- --alert-fg: var(--a-fg);
83
- --alert-border: var(--a-border-subtle);
82
+ --alert-fg: var(--md-sys-color-neutral-on-surface);
83
+ --alert-border: var(--md-sys-color-neutral-outline-variant);
84
84
  --alert-icon-fg: var(--a-fg-muted);
85
85
  }
86
86
 
@@ -6,7 +6,7 @@
6
6
  :where(:scope) {
7
7
  --avatar-size: var(--a-size);
8
8
  --avatar-bg: var(--a-bg-muted);
9
- --avatar-fg: var(--a-fg-subtle);
9
+ --avatar-fg: var(--md-sys-color-neutral-on-surface-variant);
10
10
  --avatar-radius: var(--a-radius-full);
11
11
  --avatar-font-size: var(--a-ui-sm);
12
12
  --avatar-font-weight: var(--a-weight-medium);
@@ -91,9 +91,9 @@ avatar-group-ui:hover > [slot="overflow"] {
91
91
  --avatar-group-counter-size: 2rem;
92
92
 
93
93
  /* ── Colors ── */
94
- --avatar-group-border: 2px solid var(--a-bg);
94
+ --avatar-group-border: 2px solid var(--md-sys-color-neutral-background);
95
95
  --avatar-group-counter-bg: var(--a-bg-muted);
96
- --avatar-group-counter-fg: var(--a-fg-subtle);
96
+ --avatar-group-counter-fg: var(--md-sys-color-neutral-on-surface-variant);
97
97
  --avatar-group-counter-radius: var(--a-radius-full);
98
98
 
99
99
  /* ── Typography ── */
@@ -2,7 +2,7 @@
2
2
  :where(:scope) {
3
3
  /* ── Tokens ── */
4
4
  --badge-bg: var(--a-bg-muted);
5
- --badge-fg: var(--a-fg);
5
+ --badge-fg: var(--md-sys-color-neutral-on-surface);
6
6
  --badge-radius: var(--a-radius-md);
7
7
  --badge-px: var(--a-space-1-5);
8
8
  --badge-py: 2px;
@@ -73,28 +73,28 @@
73
73
  collapse contrast on muted: warning fails in dark, danger fails in light.
74
74
  Accent keeps the saturated-text-on-tint look (intentional brand emphasis). */
75
75
  :scope[variant="accent"] {
76
- --badge-bg: var(--a-accent-muted);
77
- --badge-fg: var(--a-accent-text);
76
+ --badge-bg: var(--md-sys-color-primary-container);
77
+ --badge-fg: var(--md-sys-color-primary-on-surface);
78
78
  }
79
79
 
80
80
  :scope[variant="info"] {
81
- --badge-bg: var(--a-info-muted);
82
- --badge-fg: var(--a-info-text);
81
+ --badge-bg: var(--md-sys-color-info-container);
82
+ --badge-fg: var(--md-sys-color-info-on-surface);
83
83
  }
84
84
 
85
85
  :scope[variant="success"] {
86
- --badge-bg: var(--a-success-muted);
87
- --badge-fg: var(--a-success-text);
86
+ --badge-bg: var(--md-sys-color-success-container);
87
+ --badge-fg: var(--md-sys-color-success-on-surface);
88
88
  }
89
89
 
90
90
  :scope[variant="warning"] {
91
- --badge-bg: var(--a-warning-muted);
92
- --badge-fg: var(--a-warning-text);
91
+ --badge-bg: var(--md-sys-color-warning-container);
92
+ --badge-fg: var(--md-sys-color-warning-on-surface);
93
93
  }
94
94
 
95
95
  :scope[variant="danger"] {
96
- --badge-bg: var(--a-danger-muted);
97
- --badge-fg: var(--a-danger-text);
96
+ --badge-bg: var(--md-sys-color-danger-container);
97
+ --badge-fg: var(--md-sys-color-danger-on-surface);
98
98
  }
99
99
 
100
100
  /* `primary` is the accent-filled variant — solid bg + on-accent text,
@@ -104,7 +104,7 @@
104
104
  primary variant. */
105
105
  :scope[variant="primary"] {
106
106
  --badge-bg: var(--a-primary-bg);
107
- --badge-fg: var(--a-primary-fg);
107
+ --badge-fg: var(--md-sys-color-primary-on-primary);
108
108
  }
109
109
 
110
110
  /* `muted` and `neutral` are semantic aliases of the base — same tokens
@@ -114,7 +114,7 @@
114
114
  :scope[variant="muted"],
115
115
  :scope[variant="neutral"] {
116
116
  --badge-bg: var(--a-bg-muted);
117
- --badge-fg: var(--a-fg);
117
+ --badge-fg: var(--md-sys-color-neutral-on-surface);
118
118
  }
119
119
 
120
120
  /* ── Tone modifier — orthogonal to [variant] ──
@@ -130,30 +130,30 @@
130
130
  See <tag-ui>'s identical workaround. Token-system follow-up planned. */
131
131
  :scope[tone="solid"][variant="info"] {
132
132
  --badge-bg: var(--a-info-bg);
133
- --badge-fg: var(--a-info-fg);
133
+ --badge-fg: var(--md-sys-color-info-on-info);
134
134
  }
135
135
  :scope[tone="solid"][variant="success"] {
136
136
  --badge-bg: var(--a-success-bg);
137
- --badge-fg: var(--a-success-fg);
137
+ --badge-fg: var(--md-sys-color-success-on-success);
138
138
  }
139
139
  :scope[tone="solid"][variant="warning"] {
140
140
  /* --a-warning-bg is the bright-amber step (semantics.css L3 redirect
141
141
  to -20-tint) — see also <tag-ui>'s warning solid pair. */
142
142
  --badge-bg: var(--a-warning-bg);
143
- --badge-fg: var(--a-warning-fg);
143
+ --badge-fg: var(--md-sys-color-warning-on-warning);
144
144
  }
145
145
  :scope[tone="solid"][variant="danger"] {
146
146
  --badge-bg: var(--a-danger-bg);
147
- --badge-fg: var(--a-danger-fg);
147
+ --badge-fg: var(--md-sys-color-danger-on-danger);
148
148
  }
149
149
  :scope[tone="solid"][variant="accent"] {
150
- --badge-bg: var(--a-accent-bg);
151
- --badge-fg: var(--a-accent-fg);
150
+ --badge-bg: var(--a-primary-bg);
151
+ --badge-fg: var(--md-sys-color-primary-on-primary);
152
152
  }
153
153
  /* Solid on neutral default → high-contrast inverse stamp. */
154
154
  :scope[tone="solid"]:not([variant="info"]):not([variant="success"]):not([variant="warning"]):not([variant="danger"]):not([variant="accent"]):not([variant="primary"]) {
155
- --badge-bg: var(--a-fg);
156
- --badge-fg: var(--a-bg);
155
+ --badge-bg: var(--md-sys-color-neutral-on-surface);
156
+ --badge-fg: var(--md-sys-color-neutral-background);
157
157
  }
158
158
 
159
159
  /* ── `[tone="outline"]` — transparent bg + family-colored border + text ── */
@@ -162,29 +162,29 @@
162
162
  border: 1px solid var(--badge-border, transparent);
163
163
  }
164
164
  :scope[tone="outline"][variant="info"] {
165
- --badge-fg: var(--a-info-text);
166
- --badge-border: var(--a-info-border);
165
+ --badge-fg: var(--md-sys-color-info-on-surface);
166
+ --badge-border: var(--md-sys-color-info-outline);
167
167
  }
168
168
  :scope[tone="outline"][variant="success"] {
169
- --badge-fg: var(--a-success-text);
170
- --badge-border: var(--a-success-border);
169
+ --badge-fg: var(--md-sys-color-success-on-surface);
170
+ --badge-border: var(--md-sys-color-success-outline);
171
171
  }
172
172
  :scope[tone="outline"][variant="warning"] {
173
- --badge-fg: var(--a-warning-text);
174
- --badge-border: var(--a-warning-border);
173
+ --badge-fg: var(--md-sys-color-warning-on-surface);
174
+ --badge-border: var(--md-sys-color-warning-outline);
175
175
  }
176
176
  :scope[tone="outline"][variant="danger"] {
177
- --badge-fg: var(--a-danger-text);
178
- --badge-border: var(--a-danger-border);
177
+ --badge-fg: var(--md-sys-color-danger-on-surface);
178
+ --badge-border: var(--md-sys-color-danger-outline);
179
179
  }
180
180
  :scope[tone="outline"][variant="accent"] {
181
- --badge-fg: var(--a-accent-text);
182
- --badge-border: var(--a-accent-border);
181
+ --badge-fg: var(--md-sys-color-primary-on-surface);
182
+ --badge-border: var(--md-sys-color-primary-outline);
183
183
  }
184
184
  /* Outline on neutral — fg-muted text + subtle ring. */
185
185
  :scope[tone="outline"]:not([variant="info"]):not([variant="success"]):not([variant="warning"]):not([variant="danger"]):not([variant="accent"]):not([variant="primary"]) {
186
186
  --badge-fg: var(--a-fg-muted);
187
- --badge-border: var(--a-border);
187
+ --badge-border: var(--md-sys-color-neutral-outline);
188
188
  }
189
189
 
190
190
  /* Size handled by universal [size] attribute system. */
@@ -9,7 +9,7 @@
9
9
  --blockquote-rule-width: 2px;
10
10
  --blockquote-pad-inline: var(--a-space-3);
11
11
  --blockquote-pad-block: var(--a-space-2);
12
- --blockquote-fg: var(--a-fg-subtle);
12
+ --blockquote-fg: var(--md-sys-color-neutral-on-surface-variant);
13
13
  --blockquote-cite-fg: var(--a-fg-muted);
14
14
  --blockquote-cite-size: var(--a-ui-sm);
15
15
  --blockquote-cite-mt: var(--a-space-2);
@@ -9,8 +9,8 @@
9
9
  --breadcrumb-current-weight: var(--a-weight-medium);
10
10
 
11
11
  /* ── Colors ── */
12
- --breadcrumb-fg: var(--a-fg-subtle);
13
- --breadcrumb-fg-hover: var(--a-fg);
12
+ --breadcrumb-fg: var(--md-sys-color-neutral-on-surface-variant);
13
+ --breadcrumb-fg-hover: var(--md-sys-color-neutral-on-surface);
14
14
  --breadcrumb-separator-fg: var(--a-fg-muted);
15
15
  --breadcrumb-current-fg: var(--a-fg-strong);
16
16
 
@@ -19,7 +19,7 @@ button-ui:active { transform: scale(0.97); }
19
19
  untouched (primary/danger/etc. keep their light label). */
20
20
  button-ui:not([disabled]):hover { --button-bg: var(--button-bg-hover); }
21
21
 
22
- button-ui[variant="primary"]:not([disabled]):hover { --button-bg: var(--a-accent-strong); }
22
+ button-ui[variant="primary"]:not([disabled]):hover { --button-bg: var(--a-primary-strong); }
23
23
  button-ui[color="danger"]:not([disabled]):hover { --button-bg: var(--a-danger-strong); }
24
24
  button-ui[color="success"]:not([disabled]):hover { --button-bg: var(--a-success-strong); }
25
25
  button-ui[color="info"]:not([disabled]):hover { --button-bg: var(--a-info-strong); }
@@ -73,18 +73,18 @@ button-ui[variant="ghost"][color="warning"]:not([disabled]):hover { --button-f
73
73
  --button-bg-hover: var(--a-bg-strong); /* neutral fill → neutral -strong surface on hover */
74
74
  --button-fg-hover: var(--a-ui-text-hover);
75
75
  --button-border-hover: transparent;
76
- --button-bg-primary: var(--a-primary);
76
+ --button-bg-primary: var(--md-sys-color-primary);
77
77
  --button-fg-primary: var(--a-chrome-light);
78
78
  --button-bg-outline: transparent;
79
- --button-fg-outline: var(--a-fg);
79
+ --button-fg-outline: var(--md-sys-color-neutral-on-surface);
80
80
  --button-border-outline: var(--a-ui-border);
81
81
  --button-bg-ghost: transparent;
82
- --button-fg-ghost: var(--a-fg-subtle);
82
+ --button-fg-ghost: var(--md-sys-color-neutral-on-surface-variant);
83
83
  --button-fg-ghost-hover: var(--a-fg-strong);
84
84
  --button-bg-ghost-hover: transparent; /* ghost hover is fg-only; consumers/demo may override to add a fill */
85
85
  --button-border-ghost: transparent;
86
86
  --button-border-ghost-hover: transparent;
87
- --button-bg-danger: var(--a-danger);
87
+ --button-bg-danger: var(--md-sys-color-danger);
88
88
  --button-fg-danger: var(--a-chrome-light); /* white on the saturated fill — see color rules */
89
89
  --button-bg-disabled: var(--a-ui-bg-disabled);
90
90
  --button-fg-disabled: var(--a-ui-text-disabled);
@@ -244,7 +244,7 @@ button-ui[variant="ghost"][color="warning"]:not([disabled]):hover { --button-f
244
244
  brown-on-brown — the L3 `-bg` is the canonical solid-warning
245
245
  surface paired with `-fg` (dark text). */
246
246
  --button-bg: var(--a-warning-bg);
247
- --button-fg: var(--a-warning-fg);
247
+ --button-fg: var(--md-sys-color-warning-on-warning);
248
248
  }
249
249
 
250
250
  /* ── Color × non-solid variants ──
@@ -257,14 +257,14 @@ button-ui[variant="ghost"][color="warning"]:not([disabled]):hover { --button-f
257
257
  demo's "Approve" button (button.examples.html:50). --a-X-text is the
258
258
  family-colored text designed to read on a neutral page surface; -border is
259
259
  the L3 colored border alias. */
260
- :scope[variant="outline"][color="danger"] { --button-bg: transparent; --button-fg: var(--a-danger-text); --button-border: var(--a-danger-border); }
261
- :scope[variant="outline"][color="info"] { --button-bg: transparent; --button-fg: var(--a-info-text); --button-border: var(--a-info-border); }
262
- :scope[variant="outline"][color="success"] { --button-bg: transparent; --button-fg: var(--a-success-text); --button-border: var(--a-success-border); }
263
- :scope[variant="outline"][color="warning"] { --button-bg: transparent; --button-fg: var(--a-warning-text); --button-border: var(--a-warning-border); }
264
- :scope[variant="ghost"][color="danger"] { --button-bg: transparent; --button-fg: var(--a-danger-text); }
265
- :scope[variant="ghost"][color="info"] { --button-bg: transparent; --button-fg: var(--a-info-text); }
266
- :scope[variant="ghost"][color="success"] { --button-bg: transparent; --button-fg: var(--a-success-text); }
267
- :scope[variant="ghost"][color="warning"] { --button-bg: transparent; --button-fg: var(--a-warning-text); }
260
+ :scope[variant="outline"][color="danger"] { --button-bg: transparent; --button-fg: var(--md-sys-color-danger-on-surface); --button-border: var(--md-sys-color-danger-outline); }
261
+ :scope[variant="outline"][color="info"] { --button-bg: transparent; --button-fg: var(--md-sys-color-info-on-surface); --button-border: var(--md-sys-color-info-outline); }
262
+ :scope[variant="outline"][color="success"] { --button-bg: transparent; --button-fg: var(--md-sys-color-success-on-surface); --button-border: var(--md-sys-color-success-outline); }
263
+ :scope[variant="outline"][color="warning"] { --button-bg: transparent; --button-fg: var(--md-sys-color-warning-on-surface); --button-border: var(--md-sys-color-warning-outline); }
264
+ :scope[variant="ghost"][color="danger"] { --button-bg: transparent; --button-fg: var(--md-sys-color-danger-on-surface); }
265
+ :scope[variant="ghost"][color="info"] { --button-bg: transparent; --button-fg: var(--md-sys-color-info-on-surface); }
266
+ :scope[variant="ghost"][color="success"] { --button-bg: transparent; --button-fg: var(--md-sys-color-success-on-surface); }
267
+ :scope[variant="ghost"][color="warning"] { --button-bg: transparent; --button-fg: var(--md-sys-color-warning-on-surface); }
268
268
 
269
269
  /* Hover rules moved outside @scope — see Safari 17.x bug note at
270
270
  top of file. */
@@ -126,11 +126,11 @@
126
126
  },
127
127
  "--calendar-grid-day-bg-selected": {
128
128
  "description": "Background of the selected day cell.",
129
- "default": "var(--a-accent)"
129
+ "default": "var(--md-sys-color-primary)"
130
130
  },
131
131
  "--calendar-grid-day-fg-selected": {
132
132
  "description": "Text color of the selected day cell.",
133
- "default": "var(--a-accent-fg)"
133
+ "default": "var(--md-sys-color-primary-on-primary)"
134
134
  },
135
135
  "--calendar-grid-day-size": {
136
136
  "description": "Square cell size for day buttons.",
@@ -138,7 +138,7 @@
138
138
  },
139
139
  "--calendar-grid-day-today-color": {
140
140
  "description": "Accent color used for the today-indicator dot + numeral tint.",
141
- "default": "var(--a-accent)"
141
+ "default": "var(--md-sys-color-primary)"
142
142
  },
143
143
  "--calendar-grid-width": {
144
144
  "description": "Grid container width.",
@@ -25,7 +25,7 @@
25
25
  /* Header */
26
26
  --calendar-grid-header-gap: var(--a-space-1);
27
27
  --calendar-grid-header-mb: var(--a-space-2);
28
- --calendar-grid-title-fg: var(--a-fg);
28
+ --calendar-grid-title-fg: var(--md-sys-color-neutral-on-surface);
29
29
  --calendar-grid-title-size: var(--a-ui-size);
30
30
  --calendar-grid-title-weight: var(--a-weight-medium);
31
31
 
@@ -37,7 +37,7 @@
37
37
  --calendar-grid-nav-bg: transparent;
38
38
  --calendar-grid-nav-bg-hover: var(--a-bg-muted);
39
39
  --calendar-grid-nav-fg: var(--a-fg-muted);
40
- --calendar-grid-nav-fg-hover: var(--a-fg);
40
+ --calendar-grid-nav-fg-hover: var(--md-sys-color-neutral-on-surface);
41
41
  --calendar-grid-nav-icon-size: var(--a-caret-size);
42
42
 
43
43
  /* Weekday header — row height tracks the control height (one notch
@@ -57,20 +57,20 @@
57
57
  --calendar-grid-day-font-size: var(--a-ui-size);
58
58
  --calendar-grid-day-font-family: var(--a-font-family-ui);
59
59
  --calendar-grid-day-bg: transparent;
60
- --calendar-grid-day-fg: var(--a-fg-subtle);
60
+ --calendar-grid-day-fg: var(--md-sys-color-neutral-on-surface-variant);
61
61
  --calendar-grid-day-bg-hover: var(--a-bg-hover);
62
- --calendar-grid-day-fg-hover: var(--a-fg);
63
- --calendar-grid-day-bg-selected: var(--a-accent);
64
- --calendar-grid-day-fg-selected: var(--a-accent-fg);
62
+ --calendar-grid-day-fg-hover: var(--md-sys-color-neutral-on-surface);
63
+ --calendar-grid-day-bg-selected: var(--md-sys-color-primary);
64
+ --calendar-grid-day-fg-selected: var(--md-sys-color-primary-on-primary);
65
65
  /* In-range cells (strictly between rangeStart and rangeEnd) — muted
66
- accent strip so the endpoints (full --a-accent fill) read as the
66
+ accent strip so the endpoints (full --a-primary fill) read as the
67
67
  primary selection while the in-range band reads as secondary
68
68
  context. Stylable independently of `selected`. */
69
- --calendar-grid-day-bg-in-range: var(--a-accent-muted);
70
- --calendar-grid-day-fg-in-range: var(--a-fg);
69
+ --calendar-grid-day-bg-in-range: var(--md-sys-color-primary-container);
70
+ --calendar-grid-day-fg-in-range: var(--md-sys-color-neutral-on-surface);
71
71
  --calendar-grid-day-fg-outside: var(--a-fg-muted);
72
72
  --calendar-grid-day-fg-disabled: var(--a-ui-text-disabled);
73
- --calendar-grid-day-today-color: var(--a-accent);
73
+ --calendar-grid-day-today-color: var(--md-sys-color-primary);
74
74
  --calendar-grid-day-today-dot-size: var(--a-space-0-5);
75
75
  --calendar-grid-day-today-dot-offset: var(--a-space-1);
76
76
  --calendar-grid-day-grid-gap: var(--a-space-px);
@@ -93,16 +93,16 @@ tokens:
93
93
  default: 2rem
94
94
  --calendar-grid-day-bg-selected:
95
95
  description: Background of the selected day cell.
96
- default: var(--a-accent)
96
+ default: var(--md-sys-color-primary)
97
97
  --calendar-grid-day-fg-selected:
98
98
  description: Text color of the selected day cell.
99
- default: var(--a-accent-fg)
99
+ default: var(--md-sys-color-primary-on-primary)
100
100
  --calendar-grid-day-bg-hover:
101
101
  description: Background on hover (non-selected, non-outside, non-disabled).
102
102
  default: var(--a-bg-hover)
103
103
  --calendar-grid-day-today-color:
104
104
  description: Accent color used for the today-indicator dot + numeral tint.
105
- default: var(--a-accent)
105
+ default: var(--md-sys-color-primary)
106
106
  a2ui:
107
107
  rules:
108
108
  - >-