App Shell

Frame product UI with a skip link, persistent header, desktop sidebar, and one scrollable main region.

Skip to main content

Signal Ops

Production

All systems normal

Operations

Review active incidents and keep service owners moving.

No active incidents

The production workspace is clear. New incidents will appear here.

Usage Example
@appshell.AppShell(appshell.Config{
    Header:  shellHeader(),
    Sidebar: shellSidebar(),
}) {
    @operationsWorkspace()
}

Target-specific hooks

Use MainID plus root, header, sidebar, and main hooks for application-owned IDs, HTMX attributes, and layout adjustments.

Skip to workspace

Signal Ops

Production

All systems normal

Operations

Review active incidents and keep service owners moving.

No active incidents

The production workspace is clear. New incidents will appear here.

Target-specific hooks
@appshell.AppShell(appshell.Config{
    MainID:        "workspace",
    SkipLinkLabel: "Skip to workspace",
    Header:        shellHeader(),
    Sidebar:       shellSidebar(),
    Content:       operationsWorkspace(),
    RootAttrs:     templ.Attributes{"data-app": "operations"},
    MainAttrs:     templ.Attributes{"data-region": "workspace"},
})

Go API

v0.0.12

The examples above cover behavior and composition. pkg.go.dev is the canonical reference for exported types, functions, methods, and Go documentation.

github.com/araihu/goshtoso/components/appshell
Open v0.0.12 API