feat(ui): make maintainer data tables responsive and keyboard-accessible (#794) - #5665
Conversation
…ble (JSONbored#794) Adds a shared TableScroll primitive: a focusable (tabIndex 0), role=region, aria-label'd horizontal-scroll container so wide tables are scrollable by keyboard alone (WCAG 2.1.1), not just pointer. Adopts it on the maintainer quality table and the two maintainer-panel tables (reviewability queue + permission remediation), which previously had no scroll region at all, and adds the missing scope="col" headers and an sr-only <caption> to each so assistive tech announces the columns and a table name. No behavior/logic change; apps/gittensory-ui only.
|
Superagent didn't find any vulnerabilities or security issues in this PR. |
JSONbored
left a comment
There was a problem hiding this comment.
Can you please fix the mobile + desktop badges, to make them fit much nicer/not wrap onto multiple lines? RIght now they look really rough.
Also, if you could fix the mobile table views - they wrap onto multiple lines as well and it makes for a poor UX (i know this is out of scope, but you earn more points for it so win/win :) ) - update screenshots when you're done, and voila, i'll merge/approve.
Thanks a bunch!
|
Warning 🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨 ⏸️ LoopOver review result - manual review recommendedReview updated: 2026-07-14 05:26:51 UTC
⏸️ Suggested Action - Manual Review
Review summary Nits — 5 non-blocking
Review context
Contributor next steps
Signal definitions
[BETA] Chat with GittensoryAsk Gittensory a question about this PR directly in a comment — grounded only in the same cached, public-safe facts shown above, never a new claim.
Full command reference: https://gittensory.aethereal.dev/docs/gittensory-commands Visual preview
Click any thumbnail to open the full-size screenshot. Before = production · After = this PR's preview deploy. 🟩 Safe / merged · 🟦 Advisory · 🟨 Held for review · 🟥 Blocked / closed 💰 Earn for open-source contributions like this. Gittensor lets GitHub contributors earn for the work they already do — register to start earning →. Checked by LoopOver, a quiet PR intelligence layer for OSS maintainers.
|
Owner review follow-up: long badge labels (e.g. NEEDS-AUTHOR, Public-safe) wrapped onto multiple lines and mobile table cells wrapped too, which read as rough. Add whitespace-nowrap to StatusPill/BoundaryBadge (with shrink-0 dots) so labels never wrap, and to the maintainer data tables so cells stay single-line and scroll inside the TableScroll region instead of wrapping.
|
Thanks for the review! Fixed both: added |
Owner review follow-up: the pills read too large in the tables. Shrink StatusPill and BoundaryBadge to a 10px font with tighter padding/gap and a smaller dot, so they fit the dense maintainer tables. Colors (STATUS_STYLES / per-status tones) are unchanged.
|
Both addressed: badges are now compact (10px font, tighter padding + smaller dot) and keep their per-status colors (green REVIEW-NOW/CLEAN, amber NEEDS-AUTHOR/ELEVATED, mint WATCH/LOW), and cells stay single-line and scroll instead of wrapping. Updated the before/after evidence across desktop/tablet/phone. ?? |


Summary
Makes the maintainer console's data tables responsive and accessible, and applies the badge/table polish from the owner review.
TableScrollprimitive (data-table.tsx): a focusable (tabIndex={0}),role="region"+aria-label'd horizontal-scroll container, so wide tables are scrollable by keyboard alone (WCAG 2.1.1), not just by pointer. Adopted on the maintainer quality table and the twomaintainer-paneltables (reviewability queue + permission remediation), which previously had no scroll region at all. Addedscope="col"headers and ansr-only <caption>to each.NEEDS-AUTHOR,REVIEW-NOW, …) wrapped onto two lines and mobile table cells wrapped onto many lines. Addedwhitespace-nowrap(+shrink-0dots) toStatusPill/BoundaryBadgeand the tables so labels/cells stay single-line and scroll inside the region. Then shrank the pills to a10pxfont with tighter padding/gap and a smaller dot so they fit the dense tables — colors (per-status tones) unchanged.No behavior/logic change;
apps/gittensory-uionly. Closes #794.Scope
CONTRIBUTING.md; no GitHub Pages/VitePress/site//CNAME.Validation
npm run ui:lint— changed files clean.npm run ui:typecheck— 0 errors.npm run ui:test— 18 passing (newTableScrolltest + the existingcontributor-quality-table,maintainer-panel, andgate-precision-cardbadge-consumer suites, unchanged and green).git diff --check.apps/**only, no coverage obligation.Safety
UI Evidencebelow (GitHub-hosted JPG thumbnails; not committed to the repo).UI Evidence
gittensory-uiis dark-mode-only, so there's no theme dimension — each viewport, before → after. Before: badges wrap onto two lines, cells wrap onto many lines. After: compact single-line badges (same per-status colors), rows scroll in the focusable region.Notes
TableScrolland the compact-badge tweak are shared/reusable; the remaining app tables can adopt them in follow-ups.