Skip to content

Unify list rows, page headers and the sidebar - #893

Merged
enaboapps merged 3 commits into
mainfrom
883-rows-headers-sidebar
Sep 25, 2026
Merged

enaboapps merged 3 commits into
mainfrom
883-rows-headers-sidebar

Conversation

@enaboapps

@enaboapps enaboapps commented Sep 25, 2026 •

Copy link
Copy Markdown
Contributor

Closes #883. Stacked on #892, tracked in #891.

What changed

  • Home status rows, Help setup and troubleshooting rows, paired devices, forwarding profiles and the setup guide's input-access row share one grouped-row card. Actions sit on the right and drop under the text only when the list is narrower than 560px, using a container query.
  • Rows whose subject had a bare icon now use the same neutral icon tile as status rows, so text aligns across a list.
  • Page headers put the subtitle under the title. The decorative Settings, Help and Paired devices corner icons are gone. Help, Switches and Mobile gain a one-line subtitle.
  • Paired devices and Switch Forwarding were full nested views with their own h1 inside Mobile. They are now sections with an h2 header. The profile editor's focus fallback follows the new header class.
  • The sidebar's active page is a raised surface with a brand bar and brand icon instead of a solid red block. It sets aria-current="page" and shows a Highlight outline under forced colours.

Validation

On this head:

  • npm run lint passed
  • npm test passed: 224 Vitest tests and 5 Node tests
  • npm run build passed
  • cargo fmt --check, cargo clippy --all-targets -D warnings and cargo test passed (566 tests, 1 ignored). No Rust changes in this stack.
  • Rendered Home, Help, Mobile, profiles and setup in headless Chrome at 920px and 620px, light and dark.

Review follow-up

An independent review of this layer's head raised these points, now addressed:

  • Under forced colours, the current page's nav button draws a CanvasText focus ring when focused. Before, its Highlight outline hid focus.
  • Paired devices and Switch Forwarding are plain containers rather than labelled regions, so screen readers don't announce each tab's name twice. The empty paired-devices heading is now an h3.
  • The profile editor's focus fallback is already covered by the existing test that deletes a custom profile and expects focus on New profile.

🤖 Generated with Claude Code

Rebase validation (2026-09-25)

Rebased onto current main (7fb8fce, including #881) in stack order. git range-diff shows every commit in this PR is patch-equivalent to its previous head, and the intended parent remains its PR base. On the final stack tip (40c75cc), Node 24.19.0 lint, tests and build passed; Rust 1.97.1 format check, Clippy and tests passed. An independent review of the updated PR heads found no actionable findings. CI is rerunning on each new head.

@enaboapps enaboapps added this to the v1.0.0-rc.16 milestone Sep 25, 2026
@enaboapps
enaboapps force-pushed the 883-rows-headers-sidebar branch from 29dd84b to b9c822c Compare September 25, 2026 10:56
@enaboapps
enaboapps marked this pull request as ready for review September 25, 2026 11:49
OwenMcGirr and others added 2 commits September 25, 2026 12:49
Status, task, device and profile lists share one grouped-row card: icon,
text and trailing actions, dropping actions under the text only when the
list is narrow. Every row subject gets the same icon tile. Page headers
put the subtitle under the title and drop decorative corner icons, and
the nested Mobile sub-views use section headers instead of a second h1.
The sidebar marks the active page with a raised surface and brand bar and
exposes it with aria-current.

Closes #883

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The forced-colours outline marking the current page replaced the focus
ring on that same button. Focus now draws its own CanvasText ring there.
The Mobile sub-views become plain containers so screen readers do not
announce each tab's name twice as a region, and the empty paired-devices
heading drops to h3 beneath its section heading.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@enaboapps
enaboapps force-pushed the 883-rows-headers-sidebar branch from b9c822c to ff5c0f1 Compare September 25, 2026 11:50
@enaboapps
enaboapps marked this pull request as draft September 25, 2026 11:50
Base automatically changed from 882-design-system to main September 25, 2026 13:09
@enaboapps
enaboapps marked this pull request as ready for review September 25, 2026 13:10
@enaboapps
enaboapps merged commit 5ea7661 into main Sep 25, 2026
6 checks passed
@enaboapps
enaboapps deleted the 883-rows-headers-sidebar branch September 25, 2026 13:32
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.

Unify list rows, page headers and sidebar in the main window

2 participants