Skip to content

icon buttons draw the hover label they already carry - #13

Merged
1 commit merged into
Ryoku-dev:mainfrom
eximora-private:feat/icon-button-tooltips
Oct 21, 2026
Merged

1 commit merged into
Ryoku-dev:mainfrom
eximora-private:feat/icon-button-tooltips

Conversation

@eximora-private

Copy link
Copy Markdown

IconButton declares property string tip: "" and never draws it. The component is a plate, an Icon, a HoverHandler and a MouseArea, so every tip: written across the app sets a property nothing renders: Play/Pause/Next in NowPlayingCard, "Collapse" in the Sidebar, "Save to library" and "More" in PageHero, "Remove from queue" in QueuePanel, "Close" in ShortcutPicker, five in MiniPlayer. The labels are written and invisible.

The title bar makes it worse: nine icon buttons, tip on none of them. Account, Listen Together, Discord, the panel toggle, Sound and the mini window are bare glyphs. In the Ryoku Discord someone asked for the Discord toggle to be moved into settings "rather than a toggle not explaining to anybody what it does" (it is already in Settings > General > Discord, with a description, a live status line and a presence title; it was the title-bar icon that explained nothing).

This draws the label on hover, in the same shape DownloadButton and Waveform already use: one elided line on paperLift with a hairline border, fading unless Tokens.reduceMotion is set. tipBelow puts it under the button for a row that sits against the top of the window, and the tip doubles as Accessible.name.

The title bar's nine buttons get their labels. The Discord one reads its state, so the icon now says whether rich presence is on.

One stacking change comes with it: TitleBar gets z: 10, because the page below is a later sibling in the column and painted over a label that hangs under the bar.

What this does not fix

NowPlayingCard sets clip: true on its root, so the three transport labels it already carries are still clipped away. The clip looks deliberate (rounded card, artwork), so I left it alone rather than guess. The same may hold anywhere else an ancestor clips.

Verified

Hovered on a running client built from this branch: the Discord button shows "Discord rich presence is on" under the bar, and the plate follows the setting. The transport buttons in NowPlayingCard still show nothing, which is the clip above, confirmed by the hover tint appearing on the shuffle button while no label does.

@neur0map neur0map closed this pull request by merging all changes into Ryoku-dev:main in a1510fb Oct 21, 2026
@neur0map

Copy link
Copy Markdown
Member

Merged, thank you.

aethctl pushed a commit to Ryoku-dev/RyotunesNix that referenced this pull request Oct 26, 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.

2 participants