Skip to content

Make service rows fully interactive with hover and press feedback - #183

Open
Arsey wants to merge 3 commits into
mattt:mainfrom
Arsey:ui/service-toggle-hover
Open

Make service rows fully interactive with hover and press feedback#183
Arsey wants to merge 3 commits into
mattt:mainfrom
Arsey:ui/service-toggle-hover

Conversation

@Arsey

@Arsey Arsey commented Aug 19, 2026

Copy link
Copy Markdown

Summary

Only the 26pt icon circle toggles a service. The label next to it is dead space, and nothing signals that the rows are clickable at all: no hover state, no cursor change, no press feedback. First-time users don't discover that clicking a service toggles it.

This makes each row one control with the affordances users expect:

  • Whole row is the click target (label and empty space included)
  • Hover highlight matching the menu's action rows
  • Pointing-hand cursor over enabled rows
  • Slight press scale-down
  • Dynamic "Enable X" / "Disable X" tooltip
  • A trailing switch reflecting state — display-only, clicks pass through, so the row stays a single control with an explicit "this toggles" signal

VoiceOver now sees one element per service instead of an unlabeled icon plus loose text.

Builds on #182; merging that first shrinks this diff to one commit.

Test plan

  • xcodebuild build succeeds
  • Row click (including on the label) toggles the service; hover highlight and cursor change confirmed interactively
  • Accessibility tree shows one button per service row

Arsey and others added 3 commits August 18, 2026 21:22
VoiceOver announced each service's icon and name as two separate,
unlabeled elements with no indication of on/off state. Add an
accessibility label and value so each toggle reads as e.g.
"Calendar, Enabled".

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QLDiNzrDds62dnD9NoCEJV
Only the small 26pt icon circle toggled a service; the label beside it
was dead space. Make the whole row one button, add a hover highlight
matching the menu's action rows, a pointing-hand cursor, a subtle
press scale, and a dynamic Enable/Disable tooltip. Accessibility moves
to the row so VoiceOver reads one element per service.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QLDiNzrDds62dnD9NoCEJV
The colored icon communicated state but nothing communicated that the
rows are clickable toggles. Add a mini switch at the trailing edge as
an explicit affordance; it's display-only so the whole row remains the
single click target. Rows return to their original 26pt height.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QLDiNzrDds62dnD9NoCEJV
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