fix(uix): focus ring on surfaces — migrate 5 box-shadow rings to outline

The box-shadow token --focus-ring hardcodes var(--color-surface-default) as its
gap-fill (render-css.ts:184), so a control focused inside a raised/overlay/filled
plane showed a mismatched halo; box-shadow rings are also clipped by overflow:hidden
and die under forced-colors. Migrate the last 5 box-shadow consumers to the canonical
outline pattern already used by button/card/~40 components:

  outline: var(--focus-ring-width) solid var(--focus-ring-color)
  outline-offset: var(--focus-ring-offset)   (or 0, flush, for input + scrollbar)

- command-input (offset 0, keeps border-color shift) - collapsible-trigger - toggle -
  splitter-resize-trigger (offset var) - scroll-area-scrollbar (offset 0)

Outline follows border-radius on every evergreen browser, isn't clipped by overflow,
and the forced-colors fallback already maps outline. The gap-color mismatch disappears
-- no --focus-ring-surface token needed.

NOTE: the box-shadow token --focus-ring now has zero CSS consumers (only THEMING.md +
a palabras doc reference it). Left in place -- it's a public foundation token; removing
it is a separate API decision (bundle with the --size-* orphan cleanup).

Verified: grep 0 box-shadow focus rings in component CSS; eidos suite 15/239 unchanged;
served rule confirmed in browser ([data-toggle]:focus-visible -> outline). Visual look
on keyboard focus worth a live Tab-through (CDP screenshot hung all session).
active-uix
dev 3 months ago
parent e7e4870d54
commit ab62cca7b2

@ -57,8 +57,8 @@
}
[data-collapsible-trigger]:focus-visible {
outline: none;
box-shadow: var(--focus-ring);
outline: var(--focus-ring-width) solid var(--focus-ring-color);
outline-offset: var(--focus-ring-offset);
}
[data-collapsible-trigger][data-disabled] {

@ -139,7 +139,8 @@
[data-command-input]:focus-visible {
border-color: var(--color-primary-border);
box-shadow: var(--focus-ring);
outline: var(--focus-ring-width) solid var(--focus-ring-color);
outline-offset: 0;
}
[data-command-input]::placeholder {

@ -110,8 +110,8 @@
}
[data-scroll-area-scrollbar]:focus-visible {
outline: none;
box-shadow: var(--focus-ring);
outline: var(--focus-ring-width) solid var(--focus-ring-color);
outline-offset: 0;
}
[data-scroll-area-thumb] {

@ -70,8 +70,8 @@
}
[data-splitter-resize-trigger]:focus-visible {
outline: none;
box-shadow: var(--focus-ring);
outline: var(--focus-ring-width) solid var(--focus-ring-color);
outline-offset: var(--focus-ring-offset);
}
[data-splitter-resize-trigger][data-state='dragging'],

@ -152,8 +152,8 @@
}
[data-toggle]:focus-visible {
outline: none;
box-shadow: var(--focus-ring);
outline: var(--focus-ring-width) solid var(--focus-ring-color);
outline-offset: var(--focus-ring-offset);
}
[data-toggle][data-block] {

Loading…
Cancel
Save

Powered by TurnKey Linux.