EEnterUI
DocsComponentsThemesDonation
Get Started
      • PageLayout
      • AppShell
      • SplitView
      • ResizablePanel
EnterUIDocsLayout UtilitiesApp LayoutShells and PanelsAppShell
Layout UtilitiesUpdated 6 May 2026

AppShell

A minimal responsive shell for header, sidebar, and main content.

AppShell defines how EnterUI handles a minimal responsive shell for header, sidebar, and main content, including default structure, accessible states, and token-driven styling.

#Default usage

App shell

Use AppShell as structure, then compose Header and Sidebar inside it.

Console

Workspace

Overview

Workspace overview

Use AppShell as a layout primitive, not a full app framework.
Code
<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>

#Import

Code
import {
  AppShell,
  AppShellHeader,
  AppShellMain,
  AppShellSidebar,
  Card,
  CardContent,
  CardHeader,
  CardTitle,
  Header,
  HeaderBrand,
  Sidebar,
  SidebarItem,
  SidebarNav,
  SidebarSection,
  SidebarSectionTitle,
} from "@froggdesign/enter-ui-react";

#Patterns

No sidebar

Use sidebar none for focused pages or detail views.

Settings

No sidebar

The shell can collapse to a header and content layout.

Workspace shell

Use variant workspace for dense product apps with a persistent sidebar and independently scrolling main region.

Operations

Desk

Search
Workspace

Live operations

Main content scrolls independently in workspace mode.

#Accessibility

AppShellMain renders a main landmark. Avoid nesting multiple main landmarks in a real page.

#API

  • AppShell: sidebar="left" or sidebar="none", variant="default" or variant="workspace", and optional sidebarWidth.
  • 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.

PreviousPageLayout
NextSplitView

On this page

  1. Default usage
  2. Import
  3. Patterns
  4. Accessibility
  5. API
  6. Styling