1 viewer
Back to Components
Component · Layout

AppShell

Top-level layout composer with optional Nav, Sidebar, Drawer, Footer slots and a main content area. Slots stored as named children (slot=nav|sidebar|drawer|footer).

Category
Layout
Slots
6
States
0
Writer
Shared
cre8.primitive.app-shell

Preview

Live renderShared SSR + WASM writers

Main Shell Content Area

Responsive workspace content hosted in primary AppShell slot.
CRE8 Shell · Active
<AppShell id="app-shell-demo">
  <Nav brand="CRE8 RUNTIME" slot="nav">
    <Action href="/view" label="Dashboard" />
  </Nav>
  <Sidebar header="System" slot="sidebar">
    <Action href="/view/components" label="Services" />
  </Sidebar>
  <Container>
    <Text text="Main Shell Content Area" variant="h3" />
    <Text
      text="Responsive workspace content hosted in primary AppShell slot."
    />
  </Container>
  <Footer slot="footer">
    <Text text="CRE8 Shell · Active" />
  </Footer>
</AppShell>

Anatomy

The named parts of the rendered markup. Recipes style these hooks, and every renderer keeps them stable.

SlotDOM class
root.primitive-app-shell
nav—
sidebar—
main.primitive-app-shell__content
drawer—
footer—
body.primitive-app-shell__body
7 rows

States and platforms

The states the contract publishes, the platforms it declares, and the style recipes that dress it.

States
No published states
Platforms
webruntime-node
Recipes
unstyledruntime-console

Renderers

Shared writer
AppShell renders through the one writer the server and the WASM DOM share, so both emit the same markup.

Every tag in the example above renders through a shared writer.

Declared adapters. A status is the manifest's declaration, not a measured parity result.

TargetRendererStatus
webreactexperimental
runtime-nodeview-nodeready
ssrhtml-semanticready
terminalterminal-layoutplanned
4 rows

Accessibility

Semantic structure must stay available without visual styling.

  • Expose meaningful names for interactive controls.
  • Keep keyboard and pointer behavior equivalent where the platform supports it.
  • Publish state with native semantics and data attributes where the adapter supports them.