Skip to content

fix: align website shell and docs layout#12

Merged
smiggleworth merged 1 commit into
mainfrom
fix/website-shared-site-shell
Jul 26, 2026
Merged

fix: align website shell and docs layout#12
smiggleworth merged 1 commit into
mainfrom
fix/website-shared-site-shell

Conversation

@smiggleworth

Copy link
Copy Markdown
Contributor

Closes #11

Summary

Align the Askr website shell and documentation layout with the shared structure used by cntryl/website.

  • Added shared site layout, header, and footer components.
  • Moved docs search into the shared top navbar.
  • Added the shared footer to documentation pages.
  • Routed /docs through the shared marketing-style shell.
  • Refactored child docs pages to use SidebarScope / SidebarInset and theme off-canvas navigation.
  • Preserved Askr branding, catalog routes, content, generated API pages, and package contracts.
  • Updated static verification for the new /docs and docs-shell boundaries.

Verification

  • npm run check
  • 338 generated routes ✅
  • 32,442 API anchors ✅
  • Preview smoke matrix for /, /docs/, representative docs/API routes, and /404/
  • In-app browser visual pass unavailable in this environment; hosted/browser review remains part of CI/review follow-up.

Copilot AI review requested due to automatic review settings July 26, 2026 09:57
@smiggleworth
smiggleworth merged commit edea43c into main Jul 26, 2026
2 checks passed
@smiggleworth
smiggleworth deleted the fix/website-shared-site-shell branch July 26, 2026 09:59

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

This PR refactors the website’s layout composition so both marketing and documentation routes share a single site shell (header/main/footer), aligning Askr’s structure with the shared layout model used by cntryl/website while preserving existing routes and catalog-driven docs behavior.

Changes:

  • Introduces a shared SiteLayout plus shared header/footer components, moving docs search into the global navbar.
  • Refactors docs pages to render sidebar/content/TOC inside the shared shell using SidebarScope / SidebarInset, with updated layout CSS.
  • Routes /docs through the marketing-style shell and updates static verification expectations for the new layout boundaries.

Reviewed changes

Copilot reviewed 8 out of 8 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
src/styles.css Adds shared shell and updated docs layout CSS selectors for the new structure.
src/pages/site-layout.tsx Introduces the shared SiteLayout wrapper (ThemeScope + header/main/footer).
src/pages/site-header.tsx Adds shared header with brand, global docs search, GitHub link, and theme toggle.
src/pages/site-footer.tsx Adds shared footer to be used across marketing and docs routes.
src/pages/marketing/_layout.tsx Switches marketing layout to the new shared SiteLayout.
src/pages/docs/_layout.tsx Refactors docs chrome to use SidebarScope/SidebarInset inside the shared shell.
src/pages/_routes.tsx Routes /docs through the marketing layout and excludes it from the docs-layout group.
scripts/verify-static-output.ts Updates static verification to treat /docs as marketing layout and adjusts docs markers.
Comments suppressed due to low confidence (3)

src/pages/docs/_layout.tsx:79

  • Elements returned from Array.from(subsections).map are missing a key. Add a stable key (label) to the subsection wrapper.
                  <div>

src/pages/docs/_layout.tsx:85

  • Elements returned from pages.map are missing a key. Add key={page.route} to SidebarMenuItem so navigation items reconcile correctly.
                        <SidebarMenuItem>

src/pages/docs/_layout.tsx:133

  • Elements returned from headings.map are missing a key. Use heading.id as the list key to ensure stable reconciliation and avoid warnings.
          <li>

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

asChild
active={page.route === activePath}
size="sm"
<SidebarGroup data-nav-section={section.id}>
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.

refactor: align website shell and docs layout with Cntryl structure

2 participants