AppShell
A minimal responsive shell for header, sidebar, and main content.
#Default usage
Console
Workspace overview
Use AppShell as a layout primitive, not a full app framework.
#Usage
import {
AppShell,
AppShellHeader,
AppShellMain,
AppShellSidebar,
Card,
CardContent,
CardHeader,
CardTitle,
Header,
HeaderBrand,
Sidebar,
SidebarItem,
SidebarNav,
SidebarSection,
SidebarSectionTitle,
} from "@froggdesign/enter-ui";
export function Example() {
return (
<AppShell style={{ minHeight: 300 }}>
<AppShellHeader><Header><HeaderBrand>Console</HeaderBrand></Header></AppShellHeader>
<AppShellSidebar>
<Sidebar>
<SidebarSection>
<SidebarSectionTitle>Workspace</SidebarSectionTitle>
<SidebarNav><SidebarItem href="#" active>Overview</SidebarItem></SidebarNav>
</SidebarSection>
</Sidebar>
</AppShellSidebar>
<AppShellMain style={{ padding: 20 }}>
<Card>
<CardHeader><CardTitle>Workspace overview</CardTitle></CardHeader>
<CardContent>Use AppShell as a layout primitive, not a full app framework.</CardContent>
</Card>
</AppShellMain>
</AppShell>
);
}#Patterns
Settings
No sidebar
The shell can collapse to a header and content layout.
#Accessibility
AppShellMain renders a main landmark. Avoid nesting multiple main landmarks in a real page.
#API
AppShell:sidebar="left"orsidebar="none".- Slot components map to header, sidebar, and main grid regions.
- Responsive CSS hides the sidebar under the package breakpoint.
#Styling
Every exported component accepts className when it renders an element. EnterUI styles use .eui-* classes and --eui-* variables mapped from FroggDesign theme tokens.
