Skip to content
THE COMPONENT LIBRARY
Skip to content

Component reference

AppShell

Application regions with a header, rails and footer.

Preview

Live preview

Changes apply to this preview only.

Width adapts to the available space

More examples

Different configurations and compositions using the real Pimolu API. Each preview runs independently and follows the site appearance.

Editor with a status footer

A header and footer around a document, without navigation rails.

Open preview

Main content only

Both rails are optional. The shell collapses to a single column while keeping the header, main and footer landmarks.

Open preview

Custom rail widths

sidebarWidth and asideWidth accept any CSS length or a number of pixels. The shell sets the matching custom properties.

Open preview

Usage

Choose AppShell for generic application structure and DashboardLayout for its opinionated workspace composition.

API reference

Generated from the public TypeScript declarations. Native HTML attributes are inherited where the component extends them; this reference includes Pimolu props and selected common native attributes.

PimoluAppShellProps

Type source
PimoluAppShellProps public API
NameTypeDefaultDescription
headerRequiredReactNode—Full-width application header. Required: every shell has chrome.
sidebarReactNode—Optional navigation rail, usually a Sidebar.
childrenRequiredReactNode—Main application content.
footerReactNode—Optional full-width footer.
asideReactNode—Optional complementary rail on the inline end.
stickyHeaderboolean | undefinedfalseKeep the header visible while the content scrolls.
sidebarWidthProperty.Width<string | number> | undefined16remWidth of the sidebar. Defaults to 16rem.
asideWidthProperty.Width<string | number> | undefined18remWidth of the aside. Defaults to 18rem.
sidebarLabelstring | undefined"Sidebar"Accessible name of the sidebar landmark. Defaults to "Sidebar".
asideLabelstring | undefined"Aside"Accessible name of the aside landmark. Defaults to "Aside".
defaultValuestring | number | readonly string[] | undefined—Standard React/HTML attribute.
classNamestring | undefined—Standard React/HTML attribute.
styleCSSProperties | undefined—Standard React/HTML attribute.
aria-labelstring | undefined—Defines a string value that labels the current element.
onChangeChangeEventHandler<HTMLDivElement, Element> | undefined—Standard React/HTML attribute.
onClickMouseEventHandler<HTMLDivElement> | undefined—Standard React/HTML attribute.
headerRequired

ReactNode

No default extracted.

Full-width application header. Required: every shell has chrome.

sidebar

ReactNode

No default extracted.

Optional navigation rail, usually a Sidebar.

childrenRequired

ReactNode

No default extracted.

Main application content.

footer

ReactNode

No default extracted.

Optional full-width footer.

aside

ReactNode

No default extracted.

Optional complementary rail on the inline end.

stickyHeader

boolean | undefined

Default: false

Keep the header visible while the content scrolls.

sidebarWidth

Property.Width<string | number> | undefined

Default: 16rem

Width of the sidebar. Defaults to 16rem.

asideWidth

Property.Width<string | number> | undefined

Default: 18rem

Width of the aside. Defaults to 18rem.

sidebarLabel

string | undefined

Default: "Sidebar"

Accessible name of the sidebar landmark. Defaults to "Sidebar".

asideLabel

string | undefined

Default: "Aside"

Accessible name of the aside landmark. Defaults to "Aside".

defaultValue

string | number | readonly string[] | undefined

No default extracted.

Standard React/HTML attribute.

className

string | undefined

No default extracted.

Standard React/HTML attribute.

style

CSSProperties | undefined

No default extracted.

Standard React/HTML attribute.

aria-label

string | undefined

No default extracted.

Defines a string value that labels the current element.

onChange

ChangeEventHandler<HTMLDivElement, Element> | undefined

No default extracted.

Standard React/HTML attribute.

onClick

MouseEventHandler<HTMLDivElement> | undefined

No default extracted.

Standard React/HTML attribute.

Accessibility

  • Name navigation/aside regions and verify one main landmark in the standalone document.
Read the accessibility guide →