@adia-ai/web-components 0.8.14 → 0.8.16
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 +23 -0
- package/components/button/button.css +10 -4
- package/dist/host.min.css +1 -1
- package/dist/host.sheet.js +1 -1
- package/dist/theme-provider.min.js +1 -1
- package/dist/web-components.min.css +1 -1
- package/dist/web-components.sheet.js +1 -1
- package/package.json +1 -1
- package/styles/colors/material-static.css +24 -24
- package/styles/theme-fonts-url.txt +2 -1
- package/styles/themes.css +13 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,28 @@
|
|
|
1
1
|
# Changelog — @adia-ai/web-components
|
|
2
2
|
|
|
3
|
+
## [0.8.16] — 2026-07-26
|
|
4
|
+
|
|
5
|
+
### Fixed
|
|
6
|
+
- **Text on the default palette's filled interaction states now meets WCAG AA** (`styles/colors/material-static.css`; gh#427) — scope of the claim: the 48 verified pairs are `on-<family>` over `<family>`, `-hover`, and `-active` for all 8 families in both schemes. Container, disabled, and per-`[theme]` fills are *not* covered by that run. — `on-<family>` text is the near-white `<family>-050` stop, and the resting fill was `<family>-500`, which measured **1.97:1 for `warning`** and 2.90–4.28:1 for the other seven: all 8 families shipped sub-AA text at rest. Worse, dark-mode `-active` resolved to the *light* `250` stop under that same near-white text, measuring **1.32–1.76:1** across all 8 — effectively invisible text while a button is pressed. The fill roles move to one monotonically darkening ladder, identical in both schemes: rest `600` / hover `650` / active `700`, with `secondary` at `650`/`700`/`750` and `warning` at `700`/`750`/`800` (its 1.97 start needed three steps). Measured after the change: every family clears 4.5:1 in all three states, worst cell 4.73:1 (`primary` at rest).
|
|
7
|
+
|
|
8
|
+
Two deliberate consequences. Fills are visibly darker, `warning` most of all. And dark mode loses its lighter-on-press behaviour — that `250` stop *was* the 1.32:1 defect, so press feedback now darkens in both schemes, which also removes the light/dark stop divergence in the fill ladder entirely.
|
|
9
|
+
|
|
10
|
+
- **`styles/themes.css`'s contrast claim corrected** — its header stated the hue-rotation "preserves the verified WCAG AA 4.5:1 thresholds (`npm run verify:contrast`, 42/42 pairs, **every theme**)". Two things were wrong: that 42-pair roster never checked a fill at all (gh#427), and the gate resolves only the default ramps — it does not iterate `[theme]` blocks, so no theme was ever measured. The header now states the real scope: 90 pairs proving the default palette, with per-theme ratios resting on the rotation argument (per-stop lightness untouched, and WCAG luminance is lightness-dominated) rather than on a measured run. Mechanizing per-theme verification is not done here.
|
|
11
|
+
|
|
12
|
+
### Maintenance
|
|
13
|
+
- **`dist/` bundles rebuilt** in this cut's window (5 file(s)) — regenerated from the source changes described above, not independent edits.
|
|
14
|
+
|
|
15
|
+
## [0.8.15] — 2026-07-26
|
|
16
|
+
|
|
17
|
+
### Changed
|
|
18
|
+
- **Hover fills darken toward the ladder in both schemes** (`styles/colors/material-static.css`) — all 8 families' `--md-sys-color-<family>-hover` move from `light-dark(<family>-650, <family>-350)` to `light-dark(<family>-600, <family>-550)` (base fill is `<family>-500` in both modes; ladder stops are 50 points, higher = darker). Light-mode hover lands two stops darker than base (`500 → 600`, softened from the old three-stop `-650`); dark-mode hover lands one stop darker (`500 → 550`), where it previously *lightened* three stops to `-350`. Measured with the gate's own culori converter: light-mode white hover text is 6/8 families ≥ AA 4.5:1 (from 8/8 at the old stronger jump); dark-mode — which failed AA for **all 8 families** at `-350` (ratios ≈ 2.0–2.5) — now passes for 5/8. Flows through the `--a-*-hover` alias layer and all 12 `[theme]` recolors with no component changes. Filled buttons bypassed this role via `--a-<family>-strong` — corrected in the Fixed entry below, same release.
|
|
19
|
+
|
|
20
|
+
### Fixed
|
|
21
|
+
- **Filled buttons hover on the hover role, not the active role** (`components/button/button.css`) — `button-ui[variant="primary"]` and the `danger`/`success`/`info` filled colors set their hover fill from `--a-<family>-strong`, which aliases `--md-sys-color-<family>-active` (`light-dark(750, 250)`). In dark mode that meant hover *lightened five stops* to the pale `-250` tint — the washed-out hover the role change above couldn't reach, because these rules bypassed the hover role entirely. They now ride `--a-<family>-hover` (`light-dark(600, 550)`). Verified live in dark mode: primary idle computes exactly `primary-500`, hover exactly `primary-550`. `warning` keeps its documented `-bg` tint exception (dark-label contrast, dogfood-audited); ghost/outline **text** hovers keep `-strong` deliberately — lighter text on a dark canvas is more contrast, not less; `-strong` remains the pressed/active fill.
|
|
22
|
+
|
|
23
|
+
### Maintenance
|
|
24
|
+
- **`dist/` bundles rebuilt** from the token change above.
|
|
25
|
+
|
|
3
26
|
## [0.8.14] — 2026-07-25
|
|
4
27
|
|
|
5
28
|
### Changed
|
|
@@ -19,10 +19,16 @@ 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
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
22
|
+
/* Filled hovers ride the HOVER role (light-dark 600/550 — one rule: darker
|
|
23
|
+
than the 500 base in both schemes). They previously rode `-strong`, which
|
|
24
|
+
aliases the ACTIVE role (750/250): in dark mode that hover LIGHTENED five
|
|
25
|
+
stops to the pale -250 tint — the washed-out hover the 600/550 role change
|
|
26
|
+
couldn't reach because these rules bypassed it. `-strong` remains the
|
|
27
|
+
pressed/active fill. */
|
|
28
|
+
button-ui[variant="primary"]:not([disabled]):hover { --button-bg: var(--a-primary-hover); }
|
|
29
|
+
button-ui[color="danger"]:not([disabled]):hover { --button-bg: var(--a-danger-hover); }
|
|
30
|
+
button-ui[color="success"]:not([disabled]):hover { --button-bg: var(--a-success-hover); }
|
|
31
|
+
button-ui[color="info"]:not([disabled]):hover { --button-bg: var(--a-info-hover); }
|
|
26
32
|
/* warning fill → -bg (NOT -strong like the rest): warning's -strong mid-tone
|
|
27
33
|
reads muddy under the dark --a-warning-fg, so the hover surface uses the
|
|
28
34
|
-20 tint (--a-warning-bg) for clean contrast. (dogfood-audit: warning-strong-vs-bg) */
|