Monorepo for Aesthetic.Computer aesthetic.computer

menuband: the popover had one hover state; now everything responds master

Hover wasn't subtly broken — it was never written. makeLinkButton, the only factory that wires real hover, is called exactly ONCE in the whole popover (the Why-this-Keymap chip). Every other control was a plain NSButton: no hover, no pointing-hand cursor. Same in About, where "Looking For Players?", "💡 Tips" and "⚙️ Settings" are styled like links — purple, underlined — but had no cursor rect and no hover response, so they read as decorated text rather than something you could click. Ditto the Jam window's club links, which sat next to an Aesthetic.Computer badge that DID hover, making them look dead by comparison. New HoverFeedbackButton: reports enter/exit, shows a pointing hand, and changes nothing about how it draws. Deliberately NOT HoverLinkButton — that paints a layer-backed chip, which would restyle the system push buttons (Quit/Keymap/About) into something non-native. Each control then brightens in its own language: icon buttons lift their tint, STOP brightens its red, recessed buttons brighten their titles, the footer trio lift their brand bezel fill (wired centrally in outlineFooterButton, which all three funnel through), and the links lift purple toward white. Two traps found while wiring it, both of which would have been miserable to chase later: - The volume icon's tint is STATE-driven (refreshVolumeIcon paints it from the mute level), so a captured "idle" color goes stale the moment the volume changes. It rebuilds from the source of truth on exit instead of from a remembered value. - The shortcut buttons rewrite their own titles at runtime (the current combo; "Press keys…" while recording). Capturing the title at wiring time would resurrect a stale label on hover — and since clicking one leaves the cursor ON it while the title changes, restoring a stash on exit would wipe "Press keys…" outright. Titles are read live, and we only restore if our own override is still what's on screen. Left alone: the "Now Available!" update button, which has a flashing animation a hover override would fight. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>


+151 -166
3 changed files