Repository navigation
feat: split the other component pages into an overview and a page per layer - #69
Merged
Merged
Conversation
Nuxt Content orders the docs by file path, so once a component page is split into a folder, like `checkbox/`, it comes after a page whose name starts with the folder's, like `checkbox-group.md`, since `-` sorts before `/`. The sidebar, the header's menu and the links to the previous and next pages would then list the Checkbox Group before the Checkbox. `sortNavigation()` in `app/lib/navigation.ts` orders the component pages by their navigation title, and leaves the numbered sections as they are. DocsNavigation.vue, which renders the sidebar and the menu, reads it, and UContentSurround.vue replaces Nuxt UI's links to the previous and next pages, which Docus fills in Nuxt Content's order, with the pages before and after in the same order. Co-authored-by: multica-agent <github@multica.ai>
The tests and check-mcp that proved the Button's split now run once per split folder in 3.components/, found from the files, so each component that's split the same way is in the gate without a change to them. The Button's own anchor, #loading and Variants cases stay as they are. Co-authored-by: multica-agent <github@multica.ai>
…o split-tests-uxf-423
The Card's page becomes a folder shaped like the Button's: an Overview, a page for each layer, and its own group in the sidebar. The text moved as it was, apart from link targets, the cards in place of the intro's list of layers, At a glance starting before the paragraph on examples, and the list of the four checklists. Co-authored-by: multica-agent <github@multica.ai>
…ayer The Checkbox page becomes a folder shaped like the Button's: an Overview with a card per layer, and a page each for UI, UX, DX and AX, with that layer's rules and questions. The text moves as it is. Links to the page's own sections now go to the part that holds them. Co-authored-by: multica-agent <github@multica.ai>
… per layer The Checkbox Group's page becomes a folder shaped like the Button's: an Overview, a page for each layer, and its own group in the sidebar. The text moved as it was, apart from link targets, the cards in place of the intro's list of layers, At a glance starting before the paragraph on examples, and the list of the four checklists. Co-authored-by: multica-agent <github@multica.ai>
The Dialog's page becomes a folder shaped like the Button's: an Overview, a page for each layer, and its own group in the sidebar. The text moved as it was, apart from link targets, the cards in place of the intro's list of layers, At a glance starting before the paragraph on examples, and the list of the four checklists. Co-authored-by: multica-agent <github@multica.ai>
The Input page becomes a folder shaped like the Button's: an Overview with the intro, At a glance, the Checklist's intro, the reference implementation and the sources, and a page per layer, each ending with its rules and its questions. The text moves as it is, apart from the parts' descriptions, the cards, the Checklist's links and the links to the Input's own sections, which now point at the page each section lives on.
…o input-sub-pages-uxf-429
The Spinner page becomes a folder shaped like the Button's: an Overview with a card per layer, and a page each for UI, UX, DX and AX, with that layer's rules and questions. The text moves as it is. Links to the page's own sections now go to the part that holds them. Co-authored-by: multica-agent <github@multica.ai>
…o split-spinner-uxf-431
…r layer The Radio Group page becomes a folder shaped like the Button's: an Overview with a card per layer, and a page each for UI, UX, DX and AX, with that layer's rules and questions. The text moves as it is. Links to the page's own sections now go to the part that holds them. Co-authored-by: multica-agent <github@multica.ai>
The Switch page becomes a folder shaped like the Button's: an Overview with a card per layer, and a page each for UI, UX, DX and AX, with that layer's rules and questions. The text moves as it is. Links to the page's own sections now go to the part that holds them. Co-authored-by: multica-agent <github@multica.ai>
The Tooltip's page becomes a folder shaped like the Button's: an Overview, a page for each layer, and its own group in the sidebar. The text moved as it was, apart from link targets, the cards in place of the intro's list of layers, At a glance starting before the paragraph on examples, and the list of the four checklists. Co-authored-by: multica-agent <github@multica.ai>
…ayer The Textarea page becomes a folder shaped like the Button's: an Overview with a card per layer, and a page each for UI, UX, DX and AX, with that layer's rules and questions. The text moves as it is. Links to the page's own sections now go to the part that holds them. Co-authored-by: multica-agent <github@multica.ai>
Links between the ten split components, and the Button's two into the Spinner, now point to the page each section lives on, with targets from readSplitAnchors. A changelog entry announces the splits, and the guides no longer name an unsplit component page. Co-authored-by: multica-agent <github@multica.ai>
alexgrozav
marked this pull request as ready for review
October 22, 2026 15:07
🚀 Deploying Preview to Cloudflare 🚀Preview URL: https://component-sub-pages-uxf-421-opencomponents.blue-water-0397.workers.dev (commit a813218)This URL reflects your latest Preview deploymentPreview Deployments by commit
|
…avigating The name of a split component page in the sidebar and the header's menu now opens and closes its group, rather than linking to its Overview, so readers choose the page they want from the group. Co-authored-by: multica-agent <github@multica.ai>
alexgrozav
marked this pull request as draft
October 23, 2026 09:26
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.
What changed
The other ten component pages now have the shape the Button's got in #54: the Card, Checkbox, Checkbox Group, Dialog, Input, Radio Group, Spinner, Switch, Textarea and Tooltip each become a folder in
content/docs/3.components/. Each folder holds an Overview and a page per layer: User Interface (UI), User Experience (UX), Developer Experience (DX) and Agentic Experience (AX). The text moves as it is. The only changes are the ones the Button's split made: the cards in place of the intro's list of layers, At a glance starting before the paragraph on examples, the four Checklist links, each part's rules under "UI Checklist" and so on, its questions under its own FAQ, and link targets.Once the Checkbox was a folder, Nuxt Content would have listed Checkbox Group before it, since it sorts by file path and
-comes before/.app/lib/navigation.tskeeps the component pages in name order in the sidebar, the header's menu and the links to the previous and next pages.app/components/UContentSurround.vuereplaces Nuxt UI's to read that order. The tests that covered the Button's split, and the Button-only checks inscripts/check-mcp.mjs, now run once for every split component. Links between components go straight to the section's new page. Links from before the split, like/docs/components/input#sizes, still land on the right page through the redirect map.In the sidebar and the header's menu, a component's name opens and closes the list of its pages, the Overview and its layers, without navigating, so you pick the page you want. The group still opens on any of its pages and closes once you leave them.
Agents see no difference.
/raw/docs/components/<component>.mdand.yaml, and the MCP server, serve each component as one page with the outline and contract it has onmain. The FAQ comes back grouped by layer. A changelog entry announces the change, andAGENTS.mdand.github/CONTRIBUTING.mdnow say every component page is split like the Button's.It collects these PRs, each reviewed on its own: #56 (component order), #57 (split tests), #58 to #67 (one per component), #68 (links between components, changelog, guides) and #70 (the name opens the group, without navigating).
To try it, run
pnpm devand open/docs/components/checkbox.Checklist
feat(docs): add the focus guideline.pnpm check-typespasses.pnpm dev. (Checked on apnpm buildserved withwrangler dev.)pnpm build, thenpnpm lighthouse, still scores 100 in every category. (No homepage changes, but the redirect map now covers eleven components and loads on every page, so it ran: 100 in every category on all three runs.)