@adia-ai/web-components 0.7.28 → 0.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +29 -0
- package/components/accordion/accordion.css +13 -4
- package/components/action-list/action-list.css +3 -3
- package/components/agent-artifact/agent-artifact.css +4 -4
- package/components/agent-questions/agent-questions.css +8 -8
- package/components/agent-reasoning/agent-reasoning.css +6 -6
- package/components/agent-trace/agent-trace.css +4 -4
- package/components/agent-trace/agent-trace.js +1 -1
- package/components/alert/alert.css +16 -16
- package/components/avatar/avatar.css +3 -3
- package/components/badge/badge.css +32 -32
- package/components/blockquote/blockquote.css +1 -1
- package/components/breadcrumb/breadcrumb.css +2 -2
- package/components/button/button.css +14 -14
- package/components/calendar-grid/calendar-grid.a2ui.json +3 -3
- package/components/calendar-grid/calendar-grid.css +10 -10
- package/components/calendar-grid/calendar-grid.yaml +3 -3
- package/components/calendar-picker/calendar-picker.css +11 -11
- package/components/canvas/canvas.css +2 -2
- package/components/card/card.css +15 -15
- package/components/chart/chart.css +23 -23
- package/components/chart-legend/chart-legend.css +2 -2
- package/components/chat-thread/chat-input.css +6 -6
- package/components/chat-thread/chat-thread.css +7 -7
- package/components/check/check.css +4 -4
- package/components/code/code-editor.js +1 -1
- package/components/code/code.css +45 -22
- package/components/color-picker/color-picker.css +4 -4
- package/components/combobox/combobox.css +6 -6
- package/components/command/command.class.js +14 -3
- package/components/command/command.css +4 -4
- package/components/context-menu/context-menu.css +2 -2
- package/components/date-range-picker/date-range-picker.a2ui.json +3 -3
- package/components/date-range-picker/date-range-picker.css +8 -8
- package/components/date-range-picker/date-range-picker.yaml +3 -3
- package/components/datetime-picker/datetime-picker.css +6 -6
- package/components/demo-toggle/demo-toggle.css +4 -4
- package/components/description-list/description-list.css +1 -1
- package/components/display-field/display-field.css +2 -2
- package/components/divider/divider.css +1 -1
- package/components/drawer/drawer.css +7 -7
- package/components/embed/embed.css +1 -1
- package/components/empty-state/empty-state.css +5 -5
- package/components/feed/feed.css +7 -7
- package/components/field/field.css +2 -2
- package/components/heatmap/heatmap.css +8 -8
- package/components/inline-edit/inline-edit.a2ui.json +1 -1
- package/components/inline-edit/inline-edit.css +3 -3
- package/components/inline-edit/inline-edit.yaml +1 -1
- package/components/inline-message/inline-message.css +4 -4
- package/components/input/input.css +1 -1
- package/components/inspector/inspector.css +1 -1
- package/components/integration-card/integration-card.css +3 -3
- package/components/kbd/kbd.css +2 -2
- package/components/link/link.css +2 -2
- package/components/list/list.css +10 -10
- package/components/list-window/list-window.css +2 -2
- package/components/mark/mark.css +9 -9
- package/components/menu/menu.css +9 -9
- package/components/modal/modal.css +4 -4
- package/components/nav/nav.css +1 -1
- package/components/nav-group/nav-group.css +7 -16
- package/components/nav-item/nav-item.css +1 -1
- package/components/noodles/noodles.a2ui.json +1 -1
- package/components/noodles/noodles.css +3 -3
- package/components/noodles/noodles.d.ts +1 -1
- package/components/noodles/noodles.yaml +1 -1
- package/components/option-card/option-card.css +11 -11
- package/components/otp-input/otp-input.css +1 -1
- package/components/page/page.css +2 -2
- package/components/pane/pane.css +5 -5
- package/components/password-strength/password-strength.css +1 -1
- package/components/pipeline-status/pipeline-status.css +9 -9
- package/components/popover/popover.css +2 -2
- package/components/preview/preview.css +14 -3
- package/components/progress/progress.a2ui.json +1 -1
- package/components/progress/progress.css +1 -1
- package/components/progress/progress.d.ts +1 -1
- package/components/progress/progress.yaml +1 -1
- package/components/progress-row/progress-row.css +2 -2
- package/components/radio/radio.css +4 -4
- package/components/range/range.css +2 -2
- package/components/rating/rating.css +2 -2
- package/components/richtext/richtext.class.js +4 -0
- package/components/richtext/richtext.css +5 -5
- package/components/richtext/richtext.yaml +1 -0
- package/components/row/row.css +1 -1
- package/components/select/select.css +8 -8
- package/components/skip-nav/skip-nav.a2ui.json +2 -2
- package/components/skip-nav/skip-nav.css +3 -3
- package/components/skip-nav/skip-nav.yaml +2 -2
- package/components/slider/slider.css +5 -5
- package/components/spinner/spinner.css +2 -2
- package/components/spinner/spinner.test.js +4 -2
- package/components/stat/stat.css +1 -1
- package/components/step-progress/step-progress.a2ui.json +1 -1
- package/components/step-progress/step-progress.class.js +1 -1
- package/components/step-progress/step-progress.css +2 -2
- package/components/step-progress/step-progress.d.ts +1 -1
- package/components/step-progress/step-progress.yaml +1 -1
- package/components/stepper/stepper.css +22 -22
- package/components/stream/stream.css +2 -2
- package/components/swatch/swatch.class.js +1 -1
- package/components/swatch/swatch.css +11 -11
- package/components/swiper/swiper.css +5 -5
- package/components/switch/switch.css +5 -5
- package/components/table/cell-types.js +1 -1
- package/components/table/table.css +16 -11
- package/components/table-toolbar/table-toolbar.css +8 -8
- package/components/tabs/tabs.css +5 -5
- package/components/tag/tag.css +41 -29
- package/components/tag/tag.test.js +22 -29
- package/components/tags-input/tags-input.a2ui.json +2 -2
- package/components/tags-input/tags-input.class.js +93 -20
- package/components/tags-input/tags-input.css +3 -3
- package/components/tags-input/tags-input.test.js +109 -0
- package/components/tags-input/tags-input.yaml +18 -4
- package/components/text/text.css +4 -4
- package/components/textarea/textarea.css +1 -1
- package/components/time-picker/time-picker.css +2 -2
- package/components/timeline/timeline.css +31 -31
- package/components/toast/toast.css +19 -19
- package/components/toc/toc.a2ui.json +1 -1
- package/components/toc/toc.css +3 -3
- package/components/toc/toc.yaml +1 -1
- package/components/toggle-group/toggle-group.css +3 -3
- package/components/toolbar/toolbar.css +3 -3
- package/components/tooltip/tooltip.css +9 -9
- package/components/tour/tour.css +3 -3
- package/components/tree/tree.css +2 -2
- package/components/upload/upload.css +7 -7
- package/dist/host.min.css +1 -1
- package/dist/host.sheet.js +1 -1
- package/dist/theme-provider.min.js +7 -7
- package/dist/themes.min.css +1 -1
- package/dist/themes.sheet.js +1 -1
- package/dist/web-components.min.css +1 -1
- package/dist/web-components.min.js +41 -41
- package/dist/web-components.sheet.js +1 -1
- package/package.json +3 -3
- package/styles/api/text.css +1 -1
- package/styles/colors/bridges/material-bridge.css +30 -0
- package/styles/colors/index.css +19 -1
- package/styles/colors/material-static.css +771 -0
- package/styles/colors/parameters.css +40 -4
- package/styles/colors/primitives-primary.css +89 -0
- package/styles/colors/primitives-secondary.css +89 -0
- package/styles/colors/primitives-tertiary.css +89 -0
- package/styles/colors/primitives.css +3 -1
- package/styles/colors/scrims.css +19 -180
- package/styles/colors/semantics/aliases.css +25 -11
- package/styles/colors/semantics/buckets.css +28 -12
- package/styles/colors/semantics/core.css +330 -202
- package/styles/colors/semantics/data-viz.css +13 -13
- package/styles/colors/semantics/features.css +31 -13
- package/styles/colors/surfaces.css +41 -31
- package/styles/themes.css +15 -15
- package/styles/colors/primitives-accent.css +0 -89
|
@@ -1,9 +1,43 @@
|
|
|
1
1
|
/* adia:semantic/color — core semantic color aliases (L2 + L3).
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
2
|
+
|
|
3
|
+
INTERNAL as of the Material adoption (2026-07-14,
|
|
4
|
+
.claude/docs/specs/material-color-bridge-contract.md — "replace the
|
|
5
|
+
computational layer" phase): these `--a-*` tokens are now a thin
|
|
6
|
+
ALIAS layer over the static `--md-sys-color-*` export
|
|
7
|
+
(colors/material-static.css, copied verbatim from the
|
|
8
|
+
nonoun-color-tokens-adia reference file and loaded earlier in
|
|
9
|
+
colors/index.css) — not the computed OKLCH engine they used to be.
|
|
10
|
+
Every family block below (CANVAS + PRIMARY/SECONDARY/TERTIARY/INFO/
|
|
11
|
+
SUCCESS/WARNING/DANGER) reads `var(--md-sys-color-*)` directly
|
|
12
|
+
instead of the old `--a-{fam}-{NN}` computed primitives. `--a-*`
|
|
13
|
+
stays fully functional as a consumption surface — this is
|
|
14
|
+
"re-source the alias", not "delete the old name". Consume
|
|
15
|
+
`--md-sys-color-*` directly in new code; every real component/app/
|
|
16
|
+
site CSS file was already swept onto it
|
|
17
|
+
(`scripts/refactor/adopt-material-tokens.mjs`). The `--a-accent-*`
|
|
18
|
+
back-compat block was removed in Phase 5 (2026-07-14) once its own
|
|
19
|
+
stated removal condition — zero remaining real consumers — was met.
|
|
20
|
+
|
|
21
|
+
Accepted tradeoff (operator-confirmed 2026-07-14): the 8-theme
|
|
22
|
+
live-retheming system in `styles/themes.css` degrades to 1 theme —
|
|
23
|
+
`--md-sys-color-*`'s values are static OKLCH literals, not
|
|
24
|
+
calc()-computed from `--a-{family}-hue/-c-min/-c-max`, so a
|
|
25
|
+
`[theme="ocean"]` override of those parametric knobs no longer
|
|
26
|
+
reaches anything downstream. Only `--a-brand-*` (no Material
|
|
27
|
+
equivalent, stays computed) and the non-color theme knobs
|
|
28
|
+
(`--a-radius-k`, `--a-density`, `--a-shadow-intensity`) still
|
|
29
|
+
respond to a theme attribute. The raw fine/coarse `--a-{fam}-{NN}`
|
|
30
|
+
primitive ramps (primitives-*.css) are untouched and still function
|
|
31
|
+
— only unused by this semantic layer now, kept for the swatch
|
|
32
|
+
display page (colors.examples.html) and for `--a-brand-*`, which
|
|
33
|
+
still sources from them.
|
|
34
|
+
|
|
35
|
+
Was: "The consumable API: canvas (neutral fg/bg/border), accent,
|
|
36
|
+
brand, and the four status families (info/success/warning/danger)."
|
|
37
|
+
Split out of the 636-line semantics.css (v0.6.48 reorg, ADR-0035);
|
|
38
|
+
imported FIRST by the semantics.css barrel so the status-compat
|
|
39
|
+
overrides in aliases.css (imported last) still win, exactly as in
|
|
40
|
+
the original source order. */
|
|
7
41
|
|
|
8
42
|
:root, theme-ui, [theme], theme-provider {
|
|
9
43
|
|
|
@@ -11,136 +45,159 @@
|
|
|
11
45
|
CANVAS — Neutral text, borders, surfaces
|
|
12
46
|
══════════════════════════════════════════════════════════════ */
|
|
13
47
|
|
|
14
|
-
/* L2 — family tokens
|
|
15
|
-
|
|
16
|
-
--a-canvas:
|
|
17
|
-
--a-canvas
|
|
18
|
-
--a-canvas-
|
|
19
|
-
--a-canvas-
|
|
20
|
-
--a-canvas-
|
|
21
|
-
--a-canvas-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
--a-canvas-text-strong:
|
|
31
|
-
--a-canvas-text:
|
|
32
|
-
--a-canvas-text-subtle:
|
|
33
|
-
--a-canvas-text-muted:
|
|
34
|
-
--a-canvas-text-disabled:
|
|
35
|
-
--a-canvas-text-inverse: var(--
|
|
36
|
-
|
|
37
|
-
/*
|
|
38
|
-
|
|
39
|
-
--a-canvas-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
/*
|
|
43
|
-
--a-canvas-
|
|
44
|
-
--a-canvas-
|
|
45
|
-
|
|
48
|
+
/* L2 — family tokens (re-sourced from --md-sys-color-neutral-*
|
|
49
|
+
static export, 2026-07-14 — see file header) */
|
|
50
|
+
--a-canvas-strong: var(--md-sys-color-neutral-surface-high);
|
|
51
|
+
--a-canvas: var(--md-sys-color-neutral-surface);
|
|
52
|
+
--a-canvas-subtle: var(--md-sys-color-neutral-surface-dim);
|
|
53
|
+
--a-canvas-muted: var(--md-sys-color-neutral-surface-dimmer);
|
|
54
|
+
--a-canvas-hover: var(--md-sys-color-neutral-hover);
|
|
55
|
+
--a-canvas-active: var(--md-sys-color-neutral-active);
|
|
56
|
+
--a-canvas-selected: var(--md-sys-color-neutral-container-active);
|
|
57
|
+
|
|
58
|
+
/* Text on neutral surfaces — Material's on-surface family has 3 tiers
|
|
59
|
+
(on-surface / on-surface-variant / on-surface-disabled), compressing
|
|
60
|
+
the old 4-step hierarchy (strong/default/subtle/muted/disabled):
|
|
61
|
+
strong + default both collapse to on-surface; subtle + muted both
|
|
62
|
+
collapse to on-surface-variant. Visual hierarchy leans more on
|
|
63
|
+
font-weight + size where the old finer steps used to carry it. */
|
|
64
|
+
--a-canvas-text-strong: var(--md-sys-color-neutral-on-surface);
|
|
65
|
+
--a-canvas-text: var(--md-sys-color-neutral-on-surface);
|
|
66
|
+
--a-canvas-text-subtle: var(--md-sys-color-neutral-on-surface-variant);
|
|
67
|
+
--a-canvas-text-muted: var(--md-sys-color-neutral-on-surface-variant);
|
|
68
|
+
--a-canvas-text-disabled: var(--md-sys-color-neutral-on-surface-disabled);
|
|
69
|
+
--a-canvas-text-inverse: var(--md-sys-color-neutral-inverse-on-surface);
|
|
70
|
+
|
|
71
|
+
/* Inverse surface — Material ships this role directly now (was a
|
|
72
|
+
mechanical light-dark() swap of neutral-0 before). */
|
|
73
|
+
--a-canvas-surface-inverse: var(--md-sys-color-neutral-inverse-surface);
|
|
74
|
+
|
|
75
|
+
/* Luminance-direction surfaces (always darken relative to canvas background) */
|
|
76
|
+
--a-canvas-well: var(--md-sys-color-neutral-surface-low); /* sunken panels, code blocks */
|
|
77
|
+
--a-canvas-inset: var(--md-sys-color-neutral-background); /* recessed inputs, wells */
|
|
78
|
+
--a-canvas-pressed: var(--md-sys-color-neutral-surface-high); /* pressed/active button states */
|
|
79
|
+
/* well-strong: for a chip/inline surface that must read as its OWN
|
|
80
|
+
distinct object (not just a subtly-sunken panel) — e.g. inline code.
|
|
81
|
+
`-container` is the nearest static role carrying that same "own
|
|
82
|
+
object" contrast intent. */
|
|
83
|
+
--a-canvas-well-strong: var(--md-sys-color-neutral-container);
|
|
84
|
+
|
|
85
|
+
/* Borders on neutral surfaces */
|
|
86
|
+
--a-canvas-border-subtle: var(--md-sys-color-neutral-outline-variant);
|
|
87
|
+
--a-canvas-border: var(--md-sys-color-neutral-outline);
|
|
88
|
+
--a-canvas-border-strong: var(--md-sys-color-neutral-outline-active);
|
|
46
89
|
|
|
47
90
|
/* L3 — short-alias matrix (the consumable API for neutral surfaces) */
|
|
48
|
-
--a-bg: var(--
|
|
49
|
-
--a-bg-scrim: var(--
|
|
50
|
-
--a-bg-subtle: var(--
|
|
51
|
-
--a-bg-muted: var(--
|
|
52
|
-
--a-bg-strong: var(--
|
|
53
|
-
--a-bg-hover: var(--
|
|
54
|
-
--a-bg-active: var(--
|
|
55
|
-
--a-bg-selected: var(--
|
|
56
|
-
--a-bg-disabled: var(--
|
|
91
|
+
--a-bg: var(--md-sys-color-neutral-background);
|
|
92
|
+
--a-bg-scrim: var(--md-sys-color-neutral-scrim-weakest);
|
|
93
|
+
--a-bg-subtle: var(--md-sys-color-neutral-surface);
|
|
94
|
+
--a-bg-muted: var(--md-sys-color-neutral-container);
|
|
95
|
+
--a-bg-strong: var(--md-sys-color-neutral-surface-high);
|
|
96
|
+
--a-bg-hover: var(--md-sys-color-neutral-hover);
|
|
97
|
+
--a-bg-active: var(--md-sys-color-neutral-active);
|
|
98
|
+
--a-bg-selected: var(--md-sys-color-neutral-container-active);
|
|
99
|
+
--a-bg-disabled: var(--md-sys-color-neutral-container-disabled);
|
|
57
100
|
--a-bg-invalid: var(--a-danger-muted);
|
|
58
101
|
|
|
59
|
-
--a-fg: var(--
|
|
60
|
-
--a-fg-subtle: var(--
|
|
61
|
-
--a-fg-muted: var(--
|
|
62
|
-
--a-fg-strong: var(--
|
|
63
|
-
--a-fg-hover: var(--
|
|
102
|
+
--a-fg: var(--md-sys-color-neutral-on-surface);
|
|
103
|
+
--a-fg-subtle: var(--md-sys-color-neutral-on-surface-variant);
|
|
104
|
+
--a-fg-muted: var(--md-sys-color-neutral-on-surface-variant);
|
|
105
|
+
--a-fg-strong: var(--md-sys-color-neutral-on-surface);
|
|
106
|
+
--a-fg-hover: var(--md-sys-color-neutral-on-surface-hover);
|
|
64
107
|
/* ADR-0028: --a-fg-{active,invalid} retired (zero consumers). Use
|
|
65
108
|
`--a-ui-text-active` / `--a-ui-text-invalid` for form-control state,
|
|
66
109
|
or define a per-primitive `--<comp>-fg-{active,invalid}` token. */
|
|
67
|
-
--a-fg-selected: var(--
|
|
68
|
-
--a-fg-disabled: var(--
|
|
69
|
-
--a-fg-inverse: var(--
|
|
70
|
-
|
|
71
|
-
--a-border: var(--
|
|
72
|
-
--a-border-subtle: var(--
|
|
73
|
-
--a-border-strong: var(--
|
|
74
|
-
--a-border-hover: var(--
|
|
110
|
+
--a-fg-selected: var(--md-sys-color-neutral-on-surface-active);
|
|
111
|
+
--a-fg-disabled: var(--md-sys-color-neutral-on-surface-disabled);
|
|
112
|
+
--a-fg-inverse: var(--md-sys-color-neutral-inverse-on-surface);
|
|
113
|
+
|
|
114
|
+
--a-border: var(--md-sys-color-neutral-outline);
|
|
115
|
+
--a-border-subtle: var(--md-sys-color-neutral-outline-variant);
|
|
116
|
+
--a-border-strong: var(--md-sys-color-neutral-outline-active);
|
|
117
|
+
--a-border-hover: var(--md-sys-color-neutral-outline-hover);
|
|
75
118
|
/* ADR-0028: --a-border-{active,selected,disabled,invalid} retired (zero
|
|
76
119
|
consumers). Per-primitive `--<comp>-border-{state}` is the override
|
|
77
120
|
surface; `--a-focus-ring` carries focus-active borders for form
|
|
78
121
|
controls. */
|
|
79
122
|
|
|
80
123
|
/* ══════════════════════════════════════════════════════════════
|
|
81
|
-
|
|
124
|
+
PRIMARY — Interactive, links, focus (renamed from `accent`,
|
|
125
|
+
2026-07-14 — consolidates with the L3 CTA role names below, which
|
|
126
|
+
already used `primary`, and matches Material's single `primary`
|
|
127
|
+
family. See .claude/docs/specs/material-color-bridge-contract.md.
|
|
128
|
+
The `--a-accent-*` back-compat block that used to live further
|
|
129
|
+
down this file was removed in Phase 5 — see the file header. )
|
|
82
130
|
══════════════════════════════════════════════════════════════ */
|
|
83
131
|
|
|
84
|
-
/* L2 — family tokens
|
|
85
|
-
|
|
86
|
-
--a-
|
|
87
|
-
--a-
|
|
88
|
-
--a-
|
|
89
|
-
--a-
|
|
90
|
-
--a-
|
|
91
|
-
--a-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
--a-link
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
--a-
|
|
111
|
-
--a-
|
|
112
|
-
|
|
113
|
-
--a-
|
|
114
|
-
|
|
115
|
-
--a-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
--a-primary-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
--a-primary-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
132
|
+
/* L2 — family tokens (re-sourced from --md-sys-color-primary-* static
|
|
133
|
+
export, 2026-07-14 — see file header) */
|
|
134
|
+
--a-primary-strong: var(--md-sys-color-primary-active);
|
|
135
|
+
--a-primary: var(--md-sys-color-primary);
|
|
136
|
+
--a-primary-subtle: var(--md-sys-color-primary-container-high);
|
|
137
|
+
--a-primary-muted: var(--md-sys-color-primary-container);
|
|
138
|
+
--a-primary-hover: var(--md-sys-color-primary-hover);
|
|
139
|
+
--a-primary-active: var(--md-sys-color-primary-active);
|
|
140
|
+
--a-primary-selected: var(--md-sys-color-primary);
|
|
141
|
+
|
|
142
|
+
/* Link family — fixed 2026-07-15 (contract step 11, `verify:contrast`
|
|
143
|
+
rewrite surfaced a real regression, not a near-miss: bare
|
|
144
|
+
`--md-sys-color-primary` is the vivid CTA/button fill, tuned for a
|
|
145
|
+
large filled surface, not small text on the page background — it
|
|
146
|
+
measured as low as 2.23:1 in light mode, badly failing AA 4.5:1).
|
|
147
|
+
Material ships a role built for exactly this ("colored text on a
|
|
148
|
+
neutral surface"): `-on-surface` + its own `-hover`/`-active` state
|
|
149
|
+
family, already used by `--a-primary-text` below for the identical
|
|
150
|
+
purpose. Re-pointed link to the same family instead of inventing a
|
|
151
|
+
workaround — verified via `verify:contrast`, clears AA in both
|
|
152
|
+
schemes with wide margin (primary-950/-050 are near-black/near-white). */
|
|
153
|
+
--a-link: var(--md-sys-color-primary-on-surface);
|
|
154
|
+
--a-link-hover: var(--md-sys-color-primary-on-surface-hover);
|
|
155
|
+
--a-link-visited: var(--md-sys-color-primary-on-surface-active);
|
|
156
|
+
|
|
157
|
+
/* Primary text on primary solid bg — needs light text on dark-ish primary */
|
|
158
|
+
--a-primary-text-strong: var(--md-sys-color-primary-on-primary);
|
|
159
|
+
--a-primary-text: var(--md-sys-color-primary-on-surface);
|
|
160
|
+
--a-primary-text-subtle: var(--md-sys-color-primary-on-surface-variant);
|
|
161
|
+
--a-primary-text-disabled: var(--md-sys-color-primary-on-surface-disabled);
|
|
162
|
+
|
|
163
|
+
--a-primary-border-subtle: var(--md-sys-color-primary-outline-variant);
|
|
164
|
+
--a-primary-border: var(--md-sys-color-primary-outline);
|
|
165
|
+
--a-primary-border-strong: var(--md-sys-color-primary-outline-active);
|
|
166
|
+
|
|
167
|
+
/* L3 — CTA role matrix (filled buttons, checked controls). Sources
|
|
168
|
+
the renamed L2 family directly — no `accent` intermediate. The
|
|
169
|
+
`--a-accent-bg`/`-fg`/`-border*` L3 aliases that used to sit
|
|
170
|
+
parallel to this (for "primary-hued but not obviously the CTA")
|
|
171
|
+
are retired: Material's own role model expresses that need via
|
|
172
|
+
role choice — `-muted`/`-border` (soft/tinted) vs. this filled
|
|
173
|
+
`-bg`/`-fg` — not a second family name. */
|
|
174
|
+
--a-primary-bg: var(--a-primary);
|
|
175
|
+
--a-primary-bg-hover: var(--a-primary-hover);
|
|
176
|
+
--a-primary-bg-active: var(--a-primary-active);
|
|
177
|
+
|
|
178
|
+
--a-primary-fg: var(--a-primary-text-strong);
|
|
179
|
+
--a-primary-fg-hover: var(--a-primary-text-strong);
|
|
180
|
+
|
|
181
|
+
--a-primary-border-hover: var(--a-primary-border-strong);
|
|
182
|
+
--a-primary-container-disabled: var(--md-sys-color-primary-container-disabled);
|
|
183
|
+
|
|
184
|
+
/* `--a-accent-*` back-compat block REMOVED (2026-07-14, Phase 5): its
|
|
185
|
+
own stated removal condition — `grep -rn '\-\-a-accent-'` (excluding
|
|
186
|
+
this block) returns zero hits — is now met. The last 2 real
|
|
187
|
+
consumers (qa/gap-analysis/styles.css, .claude/docs/qa/component-
|
|
188
|
+
isolation.html — both QA tooling, not product code) were swept to
|
|
189
|
+
`--a-primary` directly. See
|
|
190
|
+
.claude/docs/specs/material-color-bridge-contract.md. */
|
|
191
|
+
|
|
192
|
+
/* Legacy shorthand `--a-primary`/`--a-primary-hover` ("keep until all
|
|
193
|
+
components migrate to --a-primary-bg/-hover") is no longer a
|
|
194
|
+
separate declaration: the renamed L2 family base above (line ~97,
|
|
195
|
+
100) already IS `--a-primary`/`--a-primary-hover` — both were
|
|
196
|
+
always value-identical to `--a-primary-bg`/`-bg-hover` (accent-50/
|
|
197
|
+
accent-40 transitively), so redeclaring them here would be a
|
|
198
|
+
same-name duplicate, last-wins, pure redundancy. Nothing for any
|
|
199
|
+
consumer changes: `var(--a-primary)` / `var(--a-primary-hover)`
|
|
200
|
+
resolve to the exact same value they always did. */
|
|
144
201
|
|
|
145
202
|
/* ══════════════════════════════════════════════════════════════
|
|
146
203
|
BRAND — Non-interactive identity color
|
|
@@ -178,23 +235,24 @@
|
|
|
178
235
|
INFO
|
|
179
236
|
══════════════════════════════════════════════════════════════ */
|
|
180
237
|
|
|
181
|
-
/* L2 — family tokens
|
|
182
|
-
|
|
183
|
-
--a-info:
|
|
184
|
-
--a-info
|
|
185
|
-
--a-info-
|
|
186
|
-
--a-info-
|
|
187
|
-
--a-info-
|
|
188
|
-
--a-info-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
--a-info-text:
|
|
192
|
-
--a-info-text
|
|
193
|
-
--a-info-text-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
--a-info-border:
|
|
197
|
-
--a-info-border
|
|
238
|
+
/* L2 — family tokens (re-sourced from --md-sys-color-info-* static
|
|
239
|
+
export, 2026-07-14 — see file header) */
|
|
240
|
+
--a-info-strong: var(--md-sys-color-info-active);
|
|
241
|
+
--a-info: var(--md-sys-color-info);
|
|
242
|
+
--a-info-subtle: var(--md-sys-color-info-container-high);
|
|
243
|
+
--a-info-muted: var(--md-sys-color-info-container);
|
|
244
|
+
--a-info-hover: var(--md-sys-color-info-hover);
|
|
245
|
+
--a-info-active: var(--md-sys-color-info-active);
|
|
246
|
+
--a-info-selected: var(--md-sys-color-info);
|
|
247
|
+
|
|
248
|
+
--a-info-text-strong: var(--md-sys-color-info-on-info);
|
|
249
|
+
--a-info-text: var(--md-sys-color-info-on-surface);
|
|
250
|
+
--a-info-text-subtle: var(--md-sys-color-info-on-surface-variant);
|
|
251
|
+
--a-info-text-disabled: var(--md-sys-color-info-on-surface-disabled);
|
|
252
|
+
|
|
253
|
+
--a-info-border-subtle: var(--md-sys-color-info-outline-variant);
|
|
254
|
+
--a-info-border: var(--md-sys-color-info-outline);
|
|
255
|
+
--a-info-border-strong: var(--md-sys-color-info-outline-active);
|
|
198
256
|
|
|
199
257
|
/* L3 — Info surface role matrix */
|
|
200
258
|
--a-info-bg: var(--a-info);
|
|
@@ -205,28 +263,30 @@
|
|
|
205
263
|
|
|
206
264
|
/* L3 border state matrix — rest state is --a-info-border (L2 above). */
|
|
207
265
|
--a-info-border-hover: var(--a-info-border-strong);
|
|
266
|
+
--a-info-container-disabled: var(--md-sys-color-info-container-disabled);
|
|
208
267
|
|
|
209
268
|
/* ══════════════════════════════════════════════════════════════
|
|
210
269
|
SUCCESS
|
|
211
270
|
══════════════════════════════════════════════════════════════ */
|
|
212
271
|
|
|
213
|
-
/* L2 — family tokens
|
|
214
|
-
|
|
215
|
-
--a-success:
|
|
216
|
-
--a-success
|
|
217
|
-
--a-success-
|
|
218
|
-
--a-success-
|
|
219
|
-
--a-success-
|
|
220
|
-
--a-success-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
--a-success-text:
|
|
224
|
-
--a-success-text
|
|
225
|
-
--a-success-text-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
--a-success-border:
|
|
229
|
-
--a-success-border
|
|
272
|
+
/* L2 — family tokens (re-sourced from --md-sys-color-success-* static
|
|
273
|
+
export, 2026-07-14 — see file header) */
|
|
274
|
+
--a-success-strong: var(--md-sys-color-success-active);
|
|
275
|
+
--a-success: var(--md-sys-color-success);
|
|
276
|
+
--a-success-subtle: var(--md-sys-color-success-container-high);
|
|
277
|
+
--a-success-muted: var(--md-sys-color-success-container);
|
|
278
|
+
--a-success-hover: var(--md-sys-color-success-hover);
|
|
279
|
+
--a-success-active: var(--md-sys-color-success-active);
|
|
280
|
+
--a-success-selected: var(--md-sys-color-success);
|
|
281
|
+
|
|
282
|
+
--a-success-text-strong: var(--md-sys-color-success-on-success);
|
|
283
|
+
--a-success-text: var(--md-sys-color-success-on-surface);
|
|
284
|
+
--a-success-text-subtle: var(--md-sys-color-success-on-surface-variant);
|
|
285
|
+
--a-success-text-disabled: var(--md-sys-color-success-on-surface-disabled);
|
|
286
|
+
|
|
287
|
+
--a-success-border-subtle: var(--md-sys-color-success-outline-variant);
|
|
288
|
+
--a-success-border: var(--md-sys-color-success-outline);
|
|
289
|
+
--a-success-border-strong: var(--md-sys-color-success-outline-active);
|
|
230
290
|
|
|
231
291
|
/* L3 — Success surface role matrix */
|
|
232
292
|
--a-success-bg: var(--a-success);
|
|
@@ -237,40 +297,40 @@
|
|
|
237
297
|
|
|
238
298
|
/* L3 border state matrix — rest state is --a-success-border (L2 above). */
|
|
239
299
|
--a-success-border-hover: var(--a-success-border-strong);
|
|
300
|
+
--a-success-container-disabled: var(--md-sys-color-success-container-disabled);
|
|
240
301
|
|
|
241
302
|
/* ══════════════════════════════════════════════════════════════
|
|
242
303
|
WARNING
|
|
243
304
|
══════════════════════════════════════════════════════════════ */
|
|
244
305
|
|
|
245
|
-
/* L2 — family tokens
|
|
246
|
-
|
|
247
|
-
--a-warning:
|
|
248
|
-
--a-warning
|
|
249
|
-
--a-warning-
|
|
250
|
-
--a-warning-
|
|
251
|
-
--a-warning-
|
|
252
|
-
--a-warning-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
caution-tape look in light + dark mode. */
|
|
306
|
+
/* L2 — family tokens (re-sourced from --md-sys-color-warning-* static
|
|
307
|
+
export, 2026-07-14 — see file header) */
|
|
308
|
+
--a-warning-strong: var(--md-sys-color-warning-active);
|
|
309
|
+
--a-warning: var(--md-sys-color-warning);
|
|
310
|
+
--a-warning-subtle: var(--md-sys-color-warning-container-high);
|
|
311
|
+
--a-warning-muted: var(--md-sys-color-warning-container);
|
|
312
|
+
--a-warning-hover: var(--md-sys-color-warning-hover);
|
|
313
|
+
--a-warning-active: var(--md-sys-color-warning-active);
|
|
314
|
+
--a-warning-selected: var(--md-sys-color-warning);
|
|
315
|
+
|
|
316
|
+
/* NOTE (2026-07-14): the old dark-text-on-light-warning override
|
|
317
|
+
(this file used to force `-text-strong` dark in both schemes,
|
|
318
|
+
because warning's yellow is light-colored) no longer applies —
|
|
319
|
+
`--md-sys-color-warning-on-warning` is the static export's own
|
|
320
|
+
role and, per Material's fixed-light-on-color rule, resolves
|
|
321
|
+
light in both schemes like every other family's on-color. This is
|
|
322
|
+
the reference file's own accepted design law, not a bug in this
|
|
323
|
+
mapping — verify visually if a warning chip reads low-contrast. */
|
|
324
|
+
--a-warning-text-strong: var(--md-sys-color-warning-on-warning);
|
|
325
|
+
--a-warning-text: var(--md-sys-color-warning-on-surface);
|
|
326
|
+
--a-warning-text-subtle: var(--md-sys-color-warning-on-surface-variant);
|
|
327
|
+
--a-warning-text-disabled: var(--md-sys-color-warning-on-surface-disabled);
|
|
328
|
+
|
|
329
|
+
--a-warning-border-subtle: var(--md-sys-color-warning-outline-variant);
|
|
330
|
+
--a-warning-border: var(--md-sys-color-warning-outline);
|
|
331
|
+
--a-warning-border-strong: var(--md-sys-color-warning-outline-active);
|
|
332
|
+
|
|
333
|
+
/* L3 — Warning surface role matrix */
|
|
274
334
|
--a-warning-bg: var(--a-warning);
|
|
275
335
|
--a-warning-bg-hover: var(--a-warning-hover);
|
|
276
336
|
|
|
@@ -279,30 +339,30 @@
|
|
|
279
339
|
|
|
280
340
|
/* L3 border state matrix — rest state is --a-warning-border (L2 above). */
|
|
281
341
|
--a-warning-border-hover: var(--a-warning-border-strong);
|
|
342
|
+
--a-warning-container-disabled: var(--md-sys-color-warning-container-disabled);
|
|
282
343
|
|
|
283
344
|
/* ══════════════════════════════════════════════════════════════
|
|
284
345
|
DANGER
|
|
285
346
|
══════════════════════════════════════════════════════════════ */
|
|
286
347
|
|
|
287
|
-
/* L2 — family tokens
|
|
288
|
-
|
|
289
|
-
--a-danger:
|
|
290
|
-
--a-danger
|
|
291
|
-
--a-danger-
|
|
292
|
-
--a-danger-
|
|
293
|
-
--a-danger-
|
|
294
|
-
--a-danger-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
--a-danger-text
|
|
299
|
-
--a-danger-text:
|
|
300
|
-
--a-danger-text-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
--a-danger-border
|
|
304
|
-
--a-danger-border:
|
|
305
|
-
--a-danger-border-strong: var(--a-danger-60);
|
|
348
|
+
/* L2 — family tokens (re-sourced from --md-sys-color-danger-* static
|
|
349
|
+
export, 2026-07-14 — see file header) */
|
|
350
|
+
--a-danger-strong: var(--md-sys-color-danger-active);
|
|
351
|
+
--a-danger: var(--md-sys-color-danger);
|
|
352
|
+
--a-danger-subtle: var(--md-sys-color-danger-container-high);
|
|
353
|
+
--a-danger-muted: var(--md-sys-color-danger-container);
|
|
354
|
+
--a-danger-hover: var(--md-sys-color-danger-hover);
|
|
355
|
+
--a-danger-active: var(--md-sys-color-danger-active);
|
|
356
|
+
--a-danger-selected: var(--md-sys-color-danger);
|
|
357
|
+
|
|
358
|
+
--a-danger-text-strong: var(--md-sys-color-danger-on-danger);
|
|
359
|
+
--a-danger-text: var(--md-sys-color-danger-on-surface);
|
|
360
|
+
--a-danger-text-subtle: var(--md-sys-color-danger-on-surface-variant);
|
|
361
|
+
--a-danger-text-disabled: var(--md-sys-color-danger-on-surface-disabled);
|
|
362
|
+
|
|
363
|
+
--a-danger-border-subtle: var(--md-sys-color-danger-outline-variant);
|
|
364
|
+
--a-danger-border: var(--md-sys-color-danger-outline);
|
|
365
|
+
--a-danger-border-strong: var(--md-sys-color-danger-outline-active);
|
|
306
366
|
|
|
307
367
|
/* L3 — Danger surface role matrix */
|
|
308
368
|
--a-danger-bg: var(--a-danger);
|
|
@@ -313,5 +373,73 @@
|
|
|
313
373
|
|
|
314
374
|
/* L3 border state matrix — rest state is --a-danger-border (L2 above). */
|
|
315
375
|
--a-danger-border-hover: var(--a-danger-border-strong);
|
|
376
|
+
--a-danger-container-disabled: var(--md-sys-color-danger-container-disabled);
|
|
377
|
+
|
|
378
|
+
/* ══════════════════════════════════════════════════════════════
|
|
379
|
+
SECONDARY
|
|
380
|
+
══════════════════════════════════════════════════════════════ */
|
|
381
|
+
|
|
382
|
+
/* L2 — family tokens (re-sourced from --md-sys-color-secondary-* static
|
|
383
|
+
export, 2026-07-14 — see file header) */
|
|
384
|
+
--a-secondary-strong: var(--md-sys-color-secondary-active);
|
|
385
|
+
--a-secondary: var(--md-sys-color-secondary);
|
|
386
|
+
--a-secondary-subtle: var(--md-sys-color-secondary-container-high);
|
|
387
|
+
--a-secondary-muted: var(--md-sys-color-secondary-container);
|
|
388
|
+
--a-secondary-hover: var(--md-sys-color-secondary-hover);
|
|
389
|
+
--a-secondary-active: var(--md-sys-color-secondary-active);
|
|
390
|
+
--a-secondary-selected: var(--md-sys-color-secondary);
|
|
391
|
+
|
|
392
|
+
--a-secondary-text-strong: var(--md-sys-color-secondary-on-secondary);
|
|
393
|
+
--a-secondary-text: var(--md-sys-color-secondary-on-surface);
|
|
394
|
+
--a-secondary-text-subtle: var(--md-sys-color-secondary-on-surface-variant);
|
|
395
|
+
--a-secondary-text-disabled: var(--md-sys-color-secondary-on-surface-disabled);
|
|
396
|
+
|
|
397
|
+
--a-secondary-border-subtle: var(--md-sys-color-secondary-outline-variant);
|
|
398
|
+
--a-secondary-border: var(--md-sys-color-secondary-outline);
|
|
399
|
+
--a-secondary-border-strong: var(--md-sys-color-secondary-outline-active);
|
|
400
|
+
|
|
401
|
+
/* L3 — Secondary surface role matrix */
|
|
402
|
+
--a-secondary-bg: var(--a-secondary);
|
|
403
|
+
--a-secondary-bg-hover: var(--a-secondary-hover);
|
|
404
|
+
|
|
405
|
+
--a-secondary-fg: var(--a-secondary-text-strong);
|
|
406
|
+
--a-secondary-fg-hover: var(--a-secondary-text-strong);
|
|
407
|
+
|
|
408
|
+
/* L3 border state matrix — rest state is --a-secondary-border (L2 above). */
|
|
409
|
+
--a-secondary-border-hover: var(--a-secondary-border-strong);
|
|
410
|
+
--a-secondary-container-disabled: var(--md-sys-color-secondary-container-disabled);
|
|
411
|
+
|
|
412
|
+
/* ══════════════════════════════════════════════════════════════
|
|
413
|
+
TERTIARY
|
|
414
|
+
══════════════════════════════════════════════════════════════ */
|
|
316
415
|
|
|
416
|
+
/* L2 — family tokens (re-sourced from --md-sys-color-tertiary-* static
|
|
417
|
+
export, 2026-07-14 — see file header) */
|
|
418
|
+
--a-tertiary-strong: var(--md-sys-color-tertiary-active);
|
|
419
|
+
--a-tertiary: var(--md-sys-color-tertiary);
|
|
420
|
+
--a-tertiary-subtle: var(--md-sys-color-tertiary-container-high);
|
|
421
|
+
--a-tertiary-muted: var(--md-sys-color-tertiary-container);
|
|
422
|
+
--a-tertiary-hover: var(--md-sys-color-tertiary-hover);
|
|
423
|
+
--a-tertiary-active: var(--md-sys-color-tertiary-active);
|
|
424
|
+
--a-tertiary-selected: var(--md-sys-color-tertiary);
|
|
425
|
+
|
|
426
|
+
--a-tertiary-text-strong: var(--md-sys-color-tertiary-on-tertiary);
|
|
427
|
+
--a-tertiary-text: var(--md-sys-color-tertiary-on-surface);
|
|
428
|
+
--a-tertiary-text-subtle: var(--md-sys-color-tertiary-on-surface-variant);
|
|
429
|
+
--a-tertiary-text-disabled: var(--md-sys-color-tertiary-on-surface-disabled);
|
|
430
|
+
|
|
431
|
+
--a-tertiary-border-subtle: var(--md-sys-color-tertiary-outline-variant);
|
|
432
|
+
--a-tertiary-border: var(--md-sys-color-tertiary-outline);
|
|
433
|
+
--a-tertiary-border-strong: var(--md-sys-color-tertiary-outline-active);
|
|
434
|
+
|
|
435
|
+
/* L3 — Tertiary surface role matrix */
|
|
436
|
+
--a-tertiary-bg: var(--a-tertiary);
|
|
437
|
+
--a-tertiary-bg-hover: var(--a-tertiary-hover);
|
|
438
|
+
|
|
439
|
+
--a-tertiary-fg: var(--a-tertiary-text-strong);
|
|
440
|
+
--a-tertiary-fg-hover: var(--a-tertiary-text-strong);
|
|
441
|
+
|
|
442
|
+
/* L3 border state matrix — rest state is --a-tertiary-border (L2 above). */
|
|
443
|
+
--a-tertiary-border-hover: var(--a-tertiary-border-strong);
|
|
444
|
+
--a-tertiary-container-disabled: var(--md-sys-color-tertiary-container-disabled);
|
|
317
445
|
}
|