Skip to content

fix(ui): align mobile notification checkboxes - #3616

Open
BeeJoe wants to merge 2 commits into
Start9Labs:masterfrom
BeeJoe:fix/mobile-notification-checkboxes
Open

fix(ui): align mobile notification checkboxes#3616
BeeJoe wants to merge 2 commits into
Start9Labs:masterfrom
BeeJoe:fix/mobile-notification-checkboxes

Conversation

@BeeJoe

@BeeJoe BeeJoe commented Aug 1, 2026

Copy link
Copy Markdown

Summary

  • replace notification icons with selection checkboxes on mobile without shifting or overlapping text
  • bottom-align checkboxes with the notification title line
  • add the StartOS 0.4.0.2 release metadata and no-op version migration (not sure it's worth a version bump but followed instructions)

Testing

  • npm run check:ui
  • npm run build:ui
  • cargo test -p start-core --features test version::
  • Prettier and Rust formatting checks
  • deployed to test server and verified matching startbox hash, active startd, and running system state

@BeeJoe
BeeJoe marked this pull request as ready for review August 2, 2026 00:54
The mobile checkbox is still positioned against the row by hand, so it has to
encode item.component's grid geometry as a literal in table.component — the
coupling that broke when 840019c reordered the rows. And no single literal
can be right any more: that commit also pinned `.service` to grid row 1, so a
service avatar makes the title row 32px against 27.4px without one, and the
icon the checkbox stands in for sits 4px lower on notifications that have one.

Project the checkbox into `.title` ahead of the icon instead. On mobile it is
then an in-flow flex item, so `.title`'s existing `align-items: center` places
it — the same rule that places the icon. The two swap via `display`; both are
1rem behind the same gap, so nothing on the card moves as selection turns on.
Desktop keeps absolute positioning, now anchored to the row rather than to the
date cell the checkbox no longer lives in, so mobile has nothing to undo. No
offset constant remains for a future row reorder to invalidate.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@MattDHill

Copy link
Copy Markdown
Member

Thanks for tracking this down — the diagnosis and the two files were right, and the version plumbing is exactly per VERSION_BUMP.md.

I've pushed a commit that changes how the checkbox is placed. Measuring the offset against the icon it replaces, 0.75rem lands 1.7px high on notifications without a service avatar and 4px high on those with one — because 840019c also pinned .service to grid row 1, so the avatar (2rem) now sets the title row's height. There's no single constant that's correct for both, and a constant here is what broke in the first place.

So the checkbox is now projected into .title ahead of the icon. On mobile it's an in-flow flex item and .title's existing align-items: center places it — the same rule that places the icon — and the two swap via display (both 1rem behind the same gap, so nothing moves). Desktop keeps absolute positioning, anchored to the row rather than the date cell. Nothing left to go stale on the next layout change.

Your version bump and changelog entry are unchanged and still describe it correctly. Note that #3617 also adds version/v0_4_0_2.rs and bumps the manifest, so whichever of these lands second will need that dropped.

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