mirror of
https://github.com/remorses/gpuix.git
synced 2026-10-28 18:59:22 +08:00
Before, any `focusVisible` style (even `{}`) returned early from
apply_focus_visible, so one key controlled two states: the look of the
element while it has keyboard focus, and whether it dims while another
control has it. A custom focus ring therefore could not dim.
Now the two are separate:
- `focusVisible` only styles the element while it has keyboard focus
- every other focusable element off the focus path dims to 40%, with or
without a `focusVisible`
- new style key `keyboardFocusDim: false` keeps one element at full opacity
(StyleDesc.keyboard_focus_dim, not inherited, excluded from state styles)
- `Select.Content` and `Dialog.Popup` (React and Solid) switch from
`focusVisible: {}` to `keyboardFocusDim: false`
- the window-wide `render({ keyboardFocusDim: false })` option is unchanged
Test: the focus scene now checks that `keyboardFocusDim: false` opts an
element out and that an element with a focusVisible ring still dims.
README Focus styles and the pending focus changeset describe the new rule.
Session: ses_f231682b0ffe2fr5xaNLPPWQre
Changesets
This folder contains pending release notes for @gpuix/native and @gpuix/react. Each .md file describes one user-facing fix or feature that should appear in the next generated changelog.
What to put here
- Add one descriptive kebab-case
.mdfile per logical change, for examplefix-frame-loop-cpu.md. - Use
patchfor fixes andminorfor new features. - Write in present tense, focused on what users see.
- Check GitHub issues first. If the change fixes one, include
Fixes #123on its own line.
What not to put here
- Do not add changesets for private packages or packages without a
versionfield. - Do not edit
CHANGELOG.mddirectly. - Do not run the interactive changeset CLI.
- Do not add vague entries like "misc improvements" or "update internals".