Skip to content

Fix the mini player's crushed layout, square its artwork, add a mini … - #34

Merged
perminder-klair merged 1 commit into
mainfrom
fix/mini-player-layout
Aug 13, 2026
Merged

Fix the mini player's crushed layout, square its artwork, add a mini …#34
perminder-klair merged 1 commit into
mainfrom
fix/mini-player-layout

Conversation

@perminder-klair

Copy link
Copy Markdown
Collaborator

…button

The mini window's cover sleeve was a , which stretches to fill its row: it took 240x120 of a 420-wide row, leaving the metadata column 24px wide. The title rendered one letter per line and the artist text overflowed to 373px inside a 102px row. Swap it for a hugging explicitly-sized art, the way the LIVE stage's sleeve does, and give the metadata column min-width 0.

The three metadata lines had no wrap/overflow rules, so the artist line still wrapped past the row once it had width. They elide now. That cost the title's bold weight and the artist/album ink-vs-muted split: both came from , and the SDK rejects wrap/overflow on a span paragraph because inline spans always word-wrap and the paragraph reserves the wrapped height. In a window fixed at 168pt, a deterministic single line beats the styling — size carries the hierarchy instead.

The drag strip padded only its leading edge. Per the both-edges rule in CLAUDE.md the window-control cluster trails on Windows, so EXPAND needed the {chrome_trailing} spacer too; it is zero on macOS.

Also, per review:

  • Artwork is , not — avatar renders a disc, and a record sleeve is square. Same has_cover / initials-tile fallback as the stage.
  • Sleeve padding and corner radius come down on both players (stage 12 -> 5, mini 6 -> 3, both radius -> sm) so the frame reads as a hairline.
  • New masthead button toggles mini mode, using a new app:mini picture-in-picture glyph; the builtin icon set has nothing for it.
  • The back panel's gear becomes panel-right: settings read as preferences-only, but the panel is SHOWS/TIMELINE/BOOTH/REQUEST as well, and it opens as a right-hand column.

The masthead button makes the "shortcut is the only way into mini mode" comment in main.zig and the README's mini bullet stale; both updated.

native test passes; both windows verified against the running app.

…button

The mini window's cover sleeve was a <card>, which stretches to fill its row:
it took 240x120 of a 420-wide row, leaving the metadata column 24px wide. The
title rendered one letter per line and the artist text overflowed to 373px
inside a 102px row. Swap it for a <panel> hugging explicitly-sized art, the
way the LIVE stage's sleeve does, and give the metadata column min-width 0.

The three metadata lines had no wrap/overflow rules, so the artist line still
wrapped past the row once it had width. They elide now. That cost the title's
bold weight and the artist/album ink-vs-muted split: both came from <span>,
and the SDK rejects wrap/overflow on a span paragraph because inline spans
always word-wrap and the paragraph reserves the wrapped height. In a window
fixed at 168pt, a deterministic single line beats the styling — size carries
the hierarchy instead.

The drag strip padded only its leading edge. Per the both-edges rule in
CLAUDE.md the window-control cluster trails on Windows, so EXPAND needed the
{chrome_trailing} spacer too; it is zero on macOS.

Also, per review:

- Artwork is <image>, not <avatar> — avatar renders a disc, and a record
  sleeve is square. Same has_cover / initials-tile fallback as the stage.
- Sleeve padding and corner radius come down on both players (stage 12 -> 5,
  mini 6 -> 3, both radius -> sm) so the frame reads as a hairline.
- New masthead button toggles mini mode, using a new app:mini
  picture-in-picture glyph; the builtin icon set has nothing for it.
- The back panel's gear becomes panel-right: `settings` read as
  preferences-only, but the panel is SHOWS/TIMELINE/BOOTH/REQUEST as well,
  and it opens as a right-hand column.

The masthead button makes the "shortcut is the only way into mini mode"
comment in main.zig and the README's mini bullet stale; both updated.

native test passes; both windows verified against the running app.
@perminder-klair
perminder-klair merged commit fb7f5c7 into main Aug 13, 2026
4 checks passed
@perminder-klair
perminder-klair deleted the fix/mini-player-layout branch August 13, 2026 10:51
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