Issue list filter section: full-width redesign, clearer compact title #232

Closed
opened 2026-09-09 14:39:23 +00:00 by crueber · 3 comments
Owner

Issue list filter section: full-width redesign, clearer compact title

The filter section above the issue list doesn't use its space (narrow controls adrift in whitespace). Redesign it to span the full column width well: filters laid out to fill the row (state select, labels, assignee, milestone, search/sort as present), and a clearer page title that stays compact (not a placeholder, not a space hog).

Acceptance criteria

  • Filter controls span the full width with a clean layout at wide + narrow viewports.
  • Title is a real, clear heading in compact form.
  • node --test green; browser check (filtering still works, both themes) zero console errors; no new deps.
# Issue list filter section: full-width redesign, clearer compact title The filter section above the issue list doesn't use its space (narrow controls adrift in whitespace). Redesign it to span the full column width well: filters laid out to fill the row (state select, labels, assignee, milestone, search/sort as present), and a clearer page title that stays compact (not a placeholder, not a space hog). ## Acceptance criteria - [ ] Filter controls span the full width with a clean layout at wide + narrow viewports. - [ ] Title is a real, clear heading in compact form. - [ ] `node --test` green; browser check (filtering still works, both themes) zero console errors; no new deps.
Author
Owner

Fixed by #239 (fix/issue-232): filter card is now a full-width responsive grid with labelled fields; compact text-xl title; behavior unchanged. node --test 443/0 green; browser-checked filtering (state/labels), dark+light, keyboard names.

Fixed by #239 (fix/issue-232): filter card is now a full-width responsive grid with labelled fields; compact text-xl title; behavior unchanged. node --test 443/0 green; browser-checked filtering (state/labels), dark+light, keyboard names.
Author
Owner

Review of PR #239 (fix/issue-232, commit 2b03dc9) — verified in scratch worktree /tmp/pr239 (removed afterward); main worktree left untouched.

PASS — grid: web/src/pages/Issues.jsx:81 form is now grid grid-cols-2 / sm:grid-cols-4 / lg:grid-cols-[minmax(0,1fr)x4_auto] = 2-up phones, 4-across sm+ (Refresh full-width second row at sm), 4+action at lg. minmax(0,1fr) + min-w-0 on every label cell, .input is w-full (ui.css:67), old fixed w-36/w-44/w-32 removed — no overflow source left.
PASS — labels: implicit wrapping (Issues.jsx:85,97,106,115) gives accessible names State/Labels/Assignee/Milestone; dropped aria-labels are fully replaced, placeholders kept; form keeps aria-label='issue filters' (:83).
PASS — behavior identical: query()/setFilter()/reload/onSubmit-preventDefault untouched; same 4 params, same endpoints/handlers. Layout-only diff, 1 file, +51/-37.
PASS — title compact: text-xl font-semibold tracking-tight (:62), header mb-3->mb-2. No new deps (package.json untouched; AGENTS.md law 1 holds). Dark+light: label captions text-zinc-500 dark:text-zinc-400; controls reuse .card/.input/.btn which already theme.
VERIFY — node --test web/test/unit/*.test.js: 440 pass / 0 fail / 3 skipped (smoke skips with no server; run with node_modules from main since fresh worktrees ship none). vite build + esbuild SDK bundle: both exit 0. Served the PR build on a private port (127.0.0.1:18939, own data-dir, killed afterward): / and /setup 200 with Solid root + class=dark, hashed asset text/javascript + immutable, /repos.js SDK bundle OK.
OBSERVE (pre-existing, not this PR — no fix pushed): smoke.test.js's 3 assertions pass in ~15ms but the file-level promise never settles, so a bare 'node --test smoke.test.js' hangs until killed; reproduced identically against the foreign :8080 occupant and my own server, and web/test/ is untouched by this diff. Whoever owns the smoke harness may want Connection: close or explicit undici close. Shared obscura daemon: only about:blank open — read-only list, no tabs touched, per instructions.
No changes pushed (nothing to fix).

MERGE RECOMMENDATION: ready to merge.

Review of PR #239 (fix/issue-232, commit 2b03dc9) — verified in scratch worktree /tmp/pr239 (removed afterward); main worktree left untouched. PASS — grid: web/src/pages/Issues.jsx:81 form is now grid grid-cols-2 / sm:grid-cols-4 / lg:grid-cols-[minmax(0,1fr)x4_auto] = 2-up phones, 4-across sm+ (Refresh full-width second row at sm), 4+action at lg. minmax(0,1fr) + min-w-0 on every label cell, .input is w-full (ui.css:67), old fixed w-36/w-44/w-32 removed — no overflow source left. PASS — labels: implicit <label> wrapping (Issues.jsx:85,97,106,115) gives accessible names State/Labels/Assignee/Milestone; dropped aria-labels are fully replaced, placeholders kept; form keeps aria-label='issue filters' (:83). PASS — behavior identical: query()/setFilter()/reload/onSubmit-preventDefault untouched; same 4 params, same endpoints/handlers. Layout-only diff, 1 file, +51/-37. PASS — title compact: text-xl font-semibold tracking-tight (:62), header mb-3->mb-2. No new deps (package.json untouched; AGENTS.md law 1 holds). Dark+light: label captions text-zinc-500 dark:text-zinc-400; controls reuse .card/.input/.btn which already theme. VERIFY — node --test web/test/unit/*.test.js: 440 pass / 0 fail / 3 skipped (smoke skips with no server; run with node_modules from main since fresh worktrees ship none). vite build + esbuild SDK bundle: both exit 0. Served the PR build on a private port (127.0.0.1:18939, own data-dir, killed afterward): / and /setup 200 with Solid root + class=dark, hashed asset text/javascript + immutable, /repos.js SDK bundle OK. OBSERVE (pre-existing, not this PR — no fix pushed): smoke.test.js's 3 assertions pass in ~15ms but the file-level promise never settles, so a bare 'node --test smoke.test.js' hangs until killed; reproduced identically against the foreign :8080 occupant and my own server, and web/test/ is untouched by this diff. Whoever owns the smoke harness may want Connection: close or explicit undici close. Shared obscura daemon: only about:blank open — read-only list, no tabs touched, per instructions. No changes pushed (nothing to fix). MERGE RECOMMENDATION: ready to merge.
Author
Owner

Fixed by PR #239 (review clean; full-width grid + labeled controls + compact title; 440 node tests), merged. Closing.

Fixed by PR #239 (review clean; full-width grid + labeled controls + compact title; 440 node tests), merged. Closing.
crueber added this to the v1 milestone 2026-09-10 22:20:49 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
crueber/walhub#232
No description provided.