Skip to Content

App shell

The frame around every signed-in screen: a sidebar with the brand tile and grouped navigation, and a blurred glass header with the account menu at its top right. Your own pages render in the main area. Here it holds the home page that buildpad init generates.

What generates this

  • buildpad init installs the design-system module. It writes components/layout/AuthenticatedShell.tsx from packages/cli/templates/components/layout/AuthenticatedShell.tsx, the sidebar entries in components/layout/navigation.ts, and the .bp-* shell styles in app/globals.css. It also writes the home page, app/[lang]/(authenticated)/page.tsx, from packages/cli/templates/app/authenticated-page.tsx.
  • buildpad add api-routes adds app/[lang]/(authenticated)/layout.tsx. That layout wraps every page in the route group with the shell. Route modules such as buildpad add users-routes add their own sidebar entries.

Home screen

The generated home page, inside the full shell.

Header anatomy

The breadcrumb on the left and the actions on the right, ending with the account menu. Search, notifications and the language switcher can each be turned off with a prop on AuthenticatedShell. In a workspace with several locales the shell adds a LanguageSwitcher, and a ScopeSwitcher passed through headerActions lets a user in several scopes switch between them.

The brand tile and the grouped navigation (entries without a section go under “Main Menu”).

Account menu

The account menu opens under the avatar at the top right of the header.

On a phone

Below the sm breakpoint the sidebar collapses behind a burger. Opening it covers the page under the header.

Built from

  • Navigation: sidebar links, the active state and Burger
  • Overlays: the account Menu and the header Tooltips
  • Selection: the scope and language Selects
  • Feedback: the no-scope Alert
  • Buttons: subtle ActionIcons, the ink CTA and variant="light" color="secondary"
  • Data display: Avatar and Card
  • Typography: the Inter Tight brand name, Title and dimmed Text
  • Layout: Stack, Group and Divider
  • Page sections pattern: page headers and content blocks for the main area
  • Foundations: --ds-brand-mark, --ds-primary-50 / -200, --ds-border-color and --ds-gray-50
Last updated on