Components
Admin shell and navigation
Give editors a stable workspace with grouped destinations and clear current location.
On this page
Purpose and placement
Give editors a stable workspace with grouped destinations and clear current location.
Anatomy
| Part | Behavior |
|---|---|
| Sidebar | Grouped publishing and operational destinations. |
| Publication identity | Name and link back to the public site. |
| Account controls | Authenticated operator context. |
| Mobile drawer | Menu, backdrop and close behavior. |
Configuration and contract
| Input or decision | Implementation |
|---|---|
| AdminShellNavigation | publicationName, publicationHomeHref, sections and accountControls. |
| Sections | Grouped labels, routes and icons; source matches the longest pathname destination. |
| Desktop geometry | 15.75rem sidebar is coordinated with content and sticky save bar. |
States and feedback
- Current location uses aria-current.
- Drawer closed/open on phone.
- Auth gate is native in production; capture identity is editor@example.org in an isolated copy.
Usage rules
- Use the existing group structure before adding a new destination.
- Do not expose operator email in a public marketing screenshot.
- A link to the public site is different from leaving the current unsaved editor safely.
Accessibility and verification
Check drawer focus, Escape, background interaction and focus return. Current-page indication should be understandable without only color.
Source references
| File | Responsibility |
|---|---|
| components/admin/admin-shell-navigation.tsx | Audited Townwell implementation; use this file when extending this interface. |
| app/admin/(shell)/layout.tsx | Audited Townwell implementation; use this file when extending this interface. |
Examples from the app
Actual Boise Today and Townwell UI with synthetic editorial, business, review, media metadata and analytics. Existing Boise imagery; no live data changes. Captured at 2× resolution or higher. Select an image to inspect it full size.
Related topics
Source audit: 2026-10-07 · Revision ce8bc72b96da · Documentation v0.1