Ballmac UI home

App Shell

The frame of an application page: skip link, sticky header, sidebar that becomes a sheet on small screens, main area, optional aside and footer.

Skip to content
AcmeQ3 planning

Overview

Header and side panels stay put; the page scrolls in the middle.

Open tasks

24

Shipped this week

9

Blocked

2

Due soon

6

Acme workspace · all systems normal

Installation

$ pnpm dlx shadcn@latest add @ballmac/app-shell

Usage

import { AppShell, AppShellSkipLink, AppShellHeader, AppShellSidebarTrigger, AppShellSidebar, AppShellMain, AppShellAside, AppShellFooter, useAppShell } from "@/components/ballmac/app-shell"

The full example is in the Code tab above.

Examples

Compact shell

Compact shell

Narrower header and sidebar through props. Below the lg breakpoint the sidebar opens from the menu button.

Footer

API reference

<AppShell>

PropTypeDefault
headerHeight

Height of the header, used to offset sticky side panels. Any CSS length.

string"3.5rem"
sidebarWidth

Width of the sidebar column from the `lg` breakpoint up.

string"15rem"
asideWidth

Width of the aside column from the `xl` breakpoint up.

string"18rem"

<AppShellSidebar>

PropTypeDefault
label

Accessible name of the landmark and the mobile sheet.

string—

<AppShellAside>

PropTypeDefault
labelstring—

Also accepts the standard attributes of its root element.

Accessibility

KeyAction
TabThe first stop is the skip link; it jumps to the main content
Screen readersHeader, sidebar, main, aside and footer are landmarks
EscapeCloses the mobile sidebar

Use with AI

AppShell > AppShellSkipLink, AppShellHeader (with AppShellSidebarTrigger), AppShellSidebar, AppShellMain, AppShellAside, AppShellFooter. Sizes are CSS variables set by props. With the shadcn MCP server set up (guide), ask your agent:

Add the Ballmac UI App Shell (@ballmac/app-shell) to this project with the shadcn MCP, then use it where it fits.

Use it for

  • Admin and dashboard pages
  • Any page with a sidebar, a main column and optional details

Not for

  • A collapsible icon-rail sidebar; use sidebar
  • Marketing pages; use navbar

Registry JSON: https://ui.ballmac.com/r/app-shell.json

Credits

Free to use in personal and commercial projects.