Skip to content

feat: Phase 4 - responsive & mobile (breakpoints, card fallback, mobile nav, touch targets) - #7

Merged
suradet-ps merged 7 commits into
mainfrom
phase4-responsive
Aug 7, 2026
Merged

feat: Phase 4 - responsive & mobile (breakpoints, card fallback, mobile nav, touch targets)#7
suradet-ps merged 7 commits into
mainfrom
phase4-responsive

Conversation

@suradet-ps

Copy link
Copy Markdown
Owner

Phase 4 — Responsive & mobile (ROADMAP)

Six small commits implementing ROADMAP section 4.

  • Breakpoint system c12ef10 — mobile <480px / tablet 480–767px / desktop-small 768–1023px / desktop ≥1024px, documented in DESIGN.md "Layout > Breakpoints" with the px values written out in style.css (CSS variables can't be used inside @media).
  • Table → card fallback 23c80a5 — the dashboard watches matchMedia("(max-width: 767px)") and forces the card view below the tablet breakpoint; the Table/Cards toggle is hidden via CSS. Resizing back up restores the previous choice. web-sys gained MediaQueryList/MediaQueryListEvent features.
  • Responsive navigation 48c270c — hamburger button (with aria-label/aria-expanded); the Dashboard/Settings links become a dropdown panel under the sticky header below 768px and close when a link is picked. Rate badge + theme toggle stay in the top row.
  • Touch targets dd1c573@media (pointer: coarse) bumps interactive elements (nav links, chips, buttons, inputs, rows) to a 44px minimum height; desktop density untouched.
  • Mobile polish 816c7e3 — rows wrap and drop the last-updated column on tablets, load-more stretches full width; on phones the header stacks, toolbar stretches, summary goes 2-up, comments hidden.
  • ROADMAP d7771ac — section 4 checked with notes.

Verification

  • cargo test --workspace --exclude app — 48 passed, no network
  • cargo check --workspace --target wasm32-unknown-unknown — clean
  • cargo fmt --check — clean; clippy only shows the 2 pre-existing warnings in error.rs tests

The sortable table is unusable under 768px, so the dashboard now
watches window.matchMedia("(max-width: 767px)") and forces the card
view when compact; the Table/Cards toggle is hidden via CSS. Resizing
back up restores the previous choice. web-sys gained the
MediaQueryList features for this.
Below the tablet breakpoint the Dashboard/Settings links become a
dropdown panel under the sticky header, toggled by a hamburger button
(aria-label/aria-expanded set). The panel closes when a link is picked,
and the rate badge + theme toggle stay visible in the top row.
Interactive controls (nav links, chips, buttons, inputs, rows) get a
44px minimum height only when the primary pointer is coarse, so touch
screens meet comfortable WCAG AA sizing while desktop density stays
untouched.
On tablets rows wrap instead of overflowing and drop the last-updated
column, and the load-more button stretches full width. On phones the
page header stacks, the dashboard toolbar stretches, the summary strip
goes 2-up, and comments are hidden in list rows.
All four items are done — breakpoint system, table-to-card fallback,
responsive navigation, and coarse-pointer touch targets — with the
acceptance criteria met.
@vercel

vercel Bot commented Aug 7, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
lepo Ready Ready Preview Aug 7, 2026 4:06am

@suradet-ps suradet-ps changed the title feat: Phase 4 — responsive & mobile (breakpoints, card fallback, mobile nav, touch targets) feat: Phase 4 - responsive & mobile (breakpoints, card fallback, mobile nav, touch targets) Aug 7, 2026
@suradet-ps
suradet-ps merged commit 5a5c82e into main Aug 7, 2026
7 of 8 checks passed
@suradet-ps
suradet-ps deleted the phase4-responsive branch August 7, 2026 03:58
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