Skip to content

Give every desktop control hover, press and keyboard focus states - #51

Closed
vimjoyer wants to merge 1 commit into
mainfrom
desktop-hover-states
Closed

vimjoyer wants to merge 1 commit into
mainfrom
desktop-hover-states

Conversation

@vimjoyer

@vimjoyer vimjoyer commented Oct 8, 2026

Copy link
Copy Markdown
Member
  • The password field shows a border on hover, a focus ring and a text cursor. Its padding no longer clips the ring.
  • Text fields, the issue report box and settings dropdowns get the same hover border.
  • Sidebar rows, secret rows, Seal now, breadcrumbs, links and the search clear button are Tab stops with hover, press and keyboard focus states.
  • Switches and checkboxes tint on hover. Switches show a ring on keyboard focus.
  • One style per kind of control lives in controls.rs. Library buttons are unchanged and no transitions were added.
Before After
Password field hovered and focused, before Password field hovered and focused, after
Sidebar, before Sidebar row with keyboard focus, after

The sealed vault's password field showed no change on hover and no
focus ring, and its padding clipped the ring it would have drawn.
Other text fields and dropdowns had no hover either, and the sidebar
rows, secret rows, Seal now, breadcrumbs and links were not Tab stops,
so keyboard focus never reached them.

A new controls module holds one style per kind of control. Text fields
take a Quiet border on hover and the buttons' focus ring. Rows and fill
controls tint on hover and press and draw an inset ring on keyboard
focus. Text links turn Quiet on hover. Switches and checkboxes sit in a
frame that tints on hover and rings when keyboard focus is inside.
Library buttons already had every state and are unchanged. No
transitions were added.
@vimjoyer vimjoyer closed this Oct 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant