Skip to content

App Shell

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

Default Rendered example
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()
}

Built-in text: the development API provides expressions.AppShell for application defaults, request preferences, and individual component overrides. Read the expression guide.

Target-specific hooks

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

Target-specific hooks Rendered example
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.4.0

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.4.0 API