Skip to content

feat(ui): release 5.1.0 with folder groups that open and close in Nav - #210

Open
matthewmr-eqty wants to merge 2 commits into
mainfrom
feat/grd-193-nav-expandable
Open

matthewmr-eqty wants to merge 2 commits into
mainfrom
feat/grd-193-nav-expandable

Conversation

@matthewmr-eqty

@matthewmr-eqty matthewmr-eqty commented Oct 30, 2026 •

Copy link
Copy Markdown
Contributor

Need

Docs sites and apps need sidebar folders readers open and close, built from Equality rather than hand-rolled.

Problem

Nav could only drill into a new level, so a docs tree had no Equality part. Its hints each set their own colour, apps hand-built new-tab arrows, and the gap under the switcher depended on the group below it.

Change

  • NavListExpandable adds folders that keep their links in server HTML, open themselves around the current row, and move with the drill's motion, now named once as --eq-nav-motion-*.
  • --eq-list-item-muted-color colours every hint (›, ⌄, ‹, ↕, ↗). Each takes its row's colour on hover and on the current row.
  • target="_blank" rows draw their own ↗, "(opens in a new tab)" and rel.
  • The switcher keeps the 12px group gap whatever follows it, and --eq-switcher-name-fade lets a site set its fade.
  • Hover fills show only with a mouse or trackpad. MotionCollapsibleContent no longer grows when it first renders open.

Evidence

pr210-folders pr210-before-after
  • ui tests (180), the full build, lint, Prettier and astro check pass on this commit alone.
  • Checked in the browser: a folder opening on first load runs no transition (12 ran before the fix); hint colours at rest and on hover; the ↗'s accessible name; switcher gaps (unlabelled 0 → 12px, labelled and drilled unchanged).

Review focus

Merging publishes 5.1.0. Start with NavListExpandable and how a folder opens around the current row in nav-list.tsx, then nav-list.module.css and nav.module.css. Studio sees two changes on upgrade: a quieter ›, and hover fills only with a mouse. The Nav page that documents all this is its own PR, after this one.

Not covered

Studio's e2e/policy-subnav.spec.ts hasn't run against 5.1.0 (GRD-192). The live Nav page lags these parts until the docs PR merges. @eqtylab/docs 0.16.0 follows and must drop its own ↗.

Flow

row becomes current ──▶ folders around it open (instantly on first load)
reader closes folder ──▶ stays closed until the next page inside it
row hovered or current ──▶ its muted marks take the row's colour
target="_blank" ──▶ ↗ + "(opens in a new tab)" + rel="noopener noreferrer"

Part of GRD-193 · GRD-81

🤖 Generated with Claude Code

Need: Docs sites and apps need sidebar folders readers can open and close, built from Equality instead of hand-rolled.
Problem: Nav could only drill into a new level, so a docs tree had no Equality part, and its hints each set their own colour.
Solution: NavListExpandable adds folders that keep their links in server HTML and open around the current page. One muted colour styles every hint, and new-tab rows draw their own ↗.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…er arrow under reduced motion

Need: Readers in high-contrast mode, or with reduced motion on, need the same cues as everyone else.
Problem: Forced colours boxed every row and left the current rail item unmarked; a folder's arrow still turned with reduced motion on; a leaving drill level jumped 12px under a switcher; a nudge of 0 still nudged.
Solution: Only the current row and rail item keep a border in forced colours, the arrow drops its transition, the leaving level keeps the switcher gap, and a 0 nudge is honoured.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@matthewmr-eqty
matthewmr-eqty marked this pull request as ready for review October 30, 2026 20:53

This branch has not been deployed

No deployments
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