Repository navigation
docs(demo): rewrite the Nav page around choosing a pattern - #211
Open
matthewmr-eqty wants to merge 2 commits into
Open
matthewmr-eqty wants to merge 2 commits into
matthewmr-eqty wants to merge 2 commits into
Conversation
matthewmr-eqty
requested review from
Shrinks99 and
tmccoy14
and removed request for
Shrinks99
October 30, 2026 20:18
matthewmr-eqty
marked this pull request as draft
October 30, 2026 20:41
matthewmr-eqty
marked this pull request as ready for review
October 30, 2026 20:53
Need: People and agents building a sidebar need to know when a row drills, expands or switches, and the rules to follow. Problem: The page stated the drill rule six times and never said when to expand instead. Solution: It opens with a "Which One to Use" table, shows full app, docs and phone sidebars, and ends with Best Practices, one heading per rule. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Need: Screen reader users jump between landmarks by name. Problem: The Nav page showed three panels called "Project: Ben Project" and two rails called "Main". Solution: The second app sidebar and the Switcher demo name themselves as examples. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
matthewmr-eqty
force-pushed
the
docs/grd-193-nav-page
branch
from
October 30, 2026 20:54
71ef7b4 to
64d3480
Compare
Shrinks99
requested changes
Oct 30, 2026
| | You want to | Use | For example | Not for | | ||
| | --------------------------------------------------------------------- | ---------------------------- | ------------------------------------------------- | -------------------------------------------------------------------------- | | ||
| | Go to a page | [A row in a group](#groups) | Dashboard, Indicators | Actions, such as Log out: use a [Dropdown Menu](/components/dropdown-menu) | | ||
| | Change to another one of the thing you're in | [`NavSwitcher`](#switcher) | Another project | Filtering a page: use a [Select](/components/select) | |
Member
There was a problem hiding this comment.
This description is too generalized, and could easily apply to Tabs
Suggested change
| | Change to another one of the thing you're in | [`NavSwitcher`](#switcher) | Another project | Filtering a page: use a [Select](/components/select) | | |
| | Navigate between objects that apply to the current application's section | [`NavSwitcher`](#switcher) | Another project | Filtering a page: use a [Select](/components/select) | |
| | --------------------------------------------------------------------- | ---------------------------- | ------------------------------------------------- | -------------------------------------------------------------------------- | | ||
| | Go to a page | [A row in a group](#groups) | Dashboard, Indicators | Actions, such as Log out: use a [Dropdown Menu](/components/dropdown-menu) | | ||
| | Change to another one of the thing you're in | [`NavSwitcher`](#switcher) | Another project | Filtering a page: use a [Select](/components/select) | | ||
| | Go into something with its own pages, where other rows stop mattering | [Drill in](#drill-in) | A policy, an agent's run, an app's Settings pages | A few views of one screen: use [Tabs](/components/tabs) | |
Member
There was a problem hiding this comment.
Suggested change
| | Go into something with its own pages, where other rows stop mattering | [Drill in](#drill-in) | A policy, an agent's run, an app's Settings pages | A few views of one screen: use [Tabs](/components/tabs) | | |
| | Navigate into a sub-section with its own pages, where other rows in the current section stop mattering | [Drill in](#drill-in) | A policy, an agent's run, an app's Settings pages | A few views of one screen: use [Tabs](/components/tabs) | |
| | Change to another one of the thing you're in | [`NavSwitcher`](#switcher) | Another project | Filtering a page: use a [Select](/components/select) | | ||
| | Go into something with its own pages, where other rows stop mattering | [Drill in](#drill-in) | A policy, an agent's run, an app's Settings pages | A few views of one screen: use [Tabs](/components/tabs) | | ||
| | Browse pages grouped by topic | [Expand](#expandable-groups) | A docs site's folders, at any depth | An area people work inside: [drill in](#drill-in) | | ||
| | Move between an app's largest areas | [`NavRail`](#usage) | Projects, Agents, Library | An app with one area | |
Member
There was a problem hiding this comment.
Suggested change
| | Move between an app's largest areas | [`NavRail`](#usage) | Projects, Agents, Library | An app with one area | | |
| | Move between an app's largest sections | [`NavRail`](#usage) | Projects, Agents, Library | An app with one area | |
| ## Drill-in | ||
| ## Switcher | ||
|
|
||
| `NavSwitcher` goes in the panel's `header` and shows the current item's name. Picking another item calls `onValueChange`, and your app goes to that item's top level. A level drilled into, such as a policy, belonged to the old item, so don't carry it across. `action` adds a command at the foot of the list. |
Member
There was a problem hiding this comment.
A level drilled into, such as a policy, belonged to the old item, so don't carry it across.
There's gotta be a clearer way of saying this?
"Level names should not be displayed on the back button, instead use the name of the previous subsection" perhaps?
|
|
||
| ## Best Practices | ||
|
|
||
| ### Pages, Not Actions |
Member
There was a problem hiding this comment.
Suggested change
| ### Pages, Not Actions | |
| ### Use Nav for Pages, Not Actions |
|
|
||
| Every row takes the reader somewhere. Put actions elsewhere: Log Out in a [Dropdown Menu](/components/dropdown-menu), Create Project in the switcher's `action`. A reader who clicks a row expects to go somewhere, not to change something. | ||
|
|
||
| <NavListDemo client:only="react" variant="do-dont-actions" /> |
Member
There was a problem hiding this comment.
Do we need demos for these? They won't show up when the page is rendered to .md and LLMs won't read them.
|
|
||
| ### Don't Restyle Rows | ||
|
|
||
| A row with its own colours or sizes reads as an error, or as a different control. To change every row on a site, set the `--eq-list-item-*` variables. |
Member
There was a problem hiding this comment.
Suggested change
| A row with its own colours or sizes reads as an error, or as a different control. To change every row on a site, set the `--eq-list-item-*` variables. | |
| A row with its own colours or sizes reads as an error, or as a different control. |
I think we shouldn't tell agents to do this
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Review focus
Stacked on #210: review only the last commit,
docs(demo). No release; merging redeploys the docs site.Need
People and agents building a sidebar need to know when a row drills, expands or switches, and the rules to follow.
Problem
The Nav page stated the drill rule six times and never said when to expand. It had no folders, new-tab links or phone layout, and its rules mixed demo pairs with loose bullets.
Change
Rules beside each section were rejected: rules that span parts had no home.
Evidence
astro check, lint and Prettier pass.Not covered
Two runs per eval. The latest runners used Sonnet; the earlier runners' model is unknown. Gaps the eval still found: one example mixing router rows, an external row and a badged folder; a rule for a few flat pages; one page per item, such as a members list.
Part of GRD-193 · GRD-81
🤖 Generated with Claude Code