sigilUI

App Shell

Full-page layout shell with header, sidebar, main content, and footer slots via CSS grid.

@sigil-ui/componentsReact

Preview

Live preview Interactive

Import

import { AppShell } from "@sigil-ui/components";

Usage

<AppShell
    header={<div className="px-4 py-2 text-sm font-medium border-b border-[color:var(--s-border)] bg-[var(--s-surface)]">Header</div>}
    sidebar={<div className="p-3 text-xs text-[var(--s-text-muted)]">Sidebar</div>}
    sidebarWidth={160}
    className="min-h-0 h-48 w-full max-w-2xl border border-[color:var(--s-border)] bg-[var(--s-background)] overflow-hidden"
  >
    <div className="p-4 text-sm text-[var(--s-text)]">Main content area</div>
  </AppShell>
<AppShell sidebar={<nav>Panel</nav>} sidebarPosition="right" sidebarWidth={300}>
  Content
</AppShell>

Without sidebar

<AppShell header={<header>Header</header>}>
  Full-width content area
</AppShell>

Props

PropTypeDefaultDescription
headerReactNode—Header content (spans full width)
sidebarReactNode—Sidebar content
footerReactNode—Footer content (spans full width)
sidebarWidthnumber | string256Sidebar width (number = px)
sidebarPosition"left" | "right""left"Which side the sidebar appears on
classNamestring—Additional CSS classes