Skip to content

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

Merged
matthewmr-eqty merged 5 commits into
mainfrom
feat/grd-193-nav-expandable
Nov 2, 2026
Merged

matthewmr-eqty merged 5 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 nav spacing came from each part's own padding, with special cases.

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.
  • Containers put one 2px gap between nav items, and a group label carries its own 12px headroom, so no header or group needs a special case. --eq-switcher-name-fade lets a site set its fade.
  • NavDrill keeps each folder's state by its value. Badge and Icon render spans, so they're valid inside a folder header.
  • With JavaScript off, closed folders show open, and the header leaves out aria-expanded until it loads.
  • Hover fills show only with a mouse or trackpad. MotionCollapsibleContent no longer grows when it first renders open.

Evidence

pr210-folders image
  • ui tests (192), 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; nav spacing in six header cases, before and after (unlabelled under a switcher 0 → 2px; labelled and drilled unchanged; plain title 6px lower).

Review focus

Merging publishes 5.3.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 four changes on upgrade: a quieter ›, hover fills only with a mouse, plain-title panels 6px lower, and Badge and Icon typed as spans. 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.3.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"
drill away and back ──▶ folders with a value keep their state

Part of GRD-193 · GRD-81

🤖 Generated with Claude Code

@matthewmr-eqty
matthewmr-eqty marked this pull request as draft October 30, 2026 19:53
@matthewmr-eqty
matthewmr-eqty force-pushed the feat/grd-193-nav-expandable branch from 67edc09 to 7e9d852 Compare October 30, 2026 19:56
@matthewmr-eqty
matthewmr-eqty marked this pull request as ready for review October 30, 2026 20:09
@matthewmr-eqty
matthewmr-eqty added this pull request to stack #213 October 30, 2026 20:12
@matthewmr-eqty
matthewmr-eqty marked this pull request as draft October 30, 2026 20:41
@matthewmr-eqty
matthewmr-eqty marked this pull request as ready for review October 30, 2026 20:53

@tmccoy14 tmccoy14 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice work on the folder groups. A handful of things below; the version clash is the one that blocks merging.

Comment thread packages/ui/package.json Resolved
@matthewmr-eqty
matthewmr-eqty force-pushed the feat/grd-193-nav-expandable branch from 014ea8b to 2dc1170 Compare November 2, 2026 16:39
@matthewmr-eqty matthewmr-eqty changed the title feat(ui): release 5.1.0 with folder groups that open and close in Nav feat(ui): release 5.2.0 with folder groups that open and close in Nav Nov 2, 2026
matthewmr-eqty and others added 4 commits November 2, 2026 12:04
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>
…m one gap

Need: Apps on 5.2.0 get Nav folders that behave the same through drills, themes and every header.
Problem: NavDrill rebuilt levels and lost folder state and current styling, Badge and Icon put divs in buttons, and nav spacing was padding plus special cases.
Solution: Folders remember their state by `value`, ghost rows count as current, Badge and Icon render spans, the nudge resolves any length, and containers own one 2px gap.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…em collapsed

Need: Readers with JavaScript off can reach every link in a Nav folder, and screen readers hear its true state.
Problem: Closed folders stayed shut with no way to open them, and server HTML announced them as collapsed; the docs site worked around it by reaching into Equality's markup.
Solution: Under `scripting: none` every folder shows open without its arrow, and the trigger leaves `aria-expanded` out until it mounts.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…e-merge

# Conflicts:
#	packages/ui/CHANGELOG.md
@matthewmr-eqty matthewmr-eqty changed the title feat(ui): release 5.2.0 with folder groups that open and close in Nav feat(ui): release 5.3.0 with folder groups that open and close in Nav Nov 2, 2026

@Shrinks99 Shrinks99 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good!

@matthewmr-eqty
matthewmr-eqty merged commit e8a0137 into main Nov 2, 2026
1 check passed
@matthewmr-eqty
matthewmr-eqty deleted the feat/grd-193-nav-expandable branch November 2, 2026 18:58
matthewmr-eqty added a commit that referenced this pull request Nov 3, 2026
Need: Sites upgrading to @eqtylab/docs 0.16.0 need the Equality release its sidebar is built from.
Problem: The peer range allowed 5.2.0, the Button release, which has no Nav folders.
Solution: Require 5.3.0, the release #210 shipped them in.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.

3 participants