fix(a11y): address R9 code-review findings (glass shadow, focus dedup)
- #1: remove the 9 dead `shadow-*` from glass surfaces instead of letting them override the tuned glass box-shadow. The @layer components move made a JSX shadow-* win AND atomically drop the glass inset top-edge highlight; deleting the (always-dead) utilities keeps the intended glass depth incl. the inset sheen. Verified in-browser: a .glass box-shadow again includes its inset segment. - #3: drop the per-element focus-visible outlines from the rail chrome buttons and SavedViews action buttons — the global button:focus-visible fallback already draws the identical 2px accent ring, so they were redundant. Verified: the pin button rings from the global rule alone. - #5: unify the focus-within outline offset (offset-2) on the SearchBar and ShareDialog pills. - #2 (double outline on the pill when an inner button is focused): NOT fixed — the clean fix (has-[input:focus] so only the input rings the pill) does not generate under Tailwind v4 (measured: no rule emitted). Kept the working focus-within, which is a11y-correct (every element still shows a focus indicator); the overlapping ring is an accepted cosmetic edge-case. - #4 (weak ring on solid-fill selected items): deferred to R10 with the selected-paint tokenisation. Gate green (tsc/eslint/prettier/knip/vitest 79).
This commit is contained in:
@@ -280,10 +280,11 @@ body {
|
||||
}
|
||||
|
||||
/* ===== Liquid-glass surface system (theme-aware, GPU-light) ===== */
|
||||
/* In @layer components so a JSX shadow-* utility (which lives in @layer utilities, always above
|
||||
components) can override a glass surface's default box-shadow again. Before v4/R9 these rules were
|
||||
unlayered and always won, so ~9 `shadow-*` on glass surfaces were silent no-ops. The perf-mode and
|
||||
:hover overrides below stay UNLAYERED on purpose (they must beat the utility). */
|
||||
/* In @layer components so the recipe classes below (.selectable) compose with utilities instead of
|
||||
silently beating them the way these rules did while unlayered. (The ~9 dead `shadow-*` that used to
|
||||
sit on glass surfaces were REMOVED in R9, not activated: the tuned glass box-shadow — including its
|
||||
inset top-edge highlight — is the intended depth, and a shadow-* utility would atomically replace it
|
||||
and drop that highlight.) The perf-mode and :hover overrides below stay UNLAYERED on purpose. */
|
||||
@layer components {
|
||||
.glass {
|
||||
/* Frosted overlay surface: translucent enough that the blurred backdrop shows
|
||||
|
||||
Reference in New Issue
Block a user