// Generated by scripts/generate-showcase.mjs. Do not edit directly. page PublicPageShellDetail { layout = "showcase" state playground_maxWidth = ctx.url.searchParams.get("pg_maxWidth") ?? "full" state playground_fullWidth = (ctx.url.searchParams.get("pg_fullWidth") ?? "false") === "true" state playground_headerOffset = ctx.url.searchParams.get("pg_headerOffset") ?? "none" state playground_background = ctx.url.searchParams.get("pg_background") ?? "default" state playground_overflow = ctx.url.searchParams.get("pg_overflow") ?? "clip" state playground_minHeight = ctx.url.searchParams.get("pg_minHeight") ?? "screen" state playground_size = ctx.url.searchParams.get("pg_size") ?? "default" state playground_color = ctx.url.searchParams.get("pg_color") ?? "primary" state playground_variant = ctx.url.searchParams.get("pg_variant") ?? "default" state playground_class = ctx.url.searchParams.get("pg_class") ?? "showcase-instance showcase-instance--1" seo { title = "Public Page Shell" description = "Provide the outer responsive structure, width, background, slots, overflow, and minimum-height behavior for public pages." } view {
Layout component

Public Page Shell

Provide the outer responsive structure, width, background, slots, overflow, and minimum-height behavior for public pages.

10 props3 slots0 outputsTheme readyResponsive
Interactive playground

Configure Public Page Shell

Change any prop and inspect the server-rendered component immediately.

Live preview
Header slot
Public page content
Footer slot
Component code
<PublicPageShell
  fullWidth="false">
  <div data-slot="before">
    <div class="showcase-slot">before slot</div>
  </div>
  <div data-slot="after">
    <div class="showcase-slot">after slot</div>
  </div>
</PublicPageShell>
Component props10 controls
Live examples

Designed for real product surfaces

Compare configurations and resize the browser to check responsive behavior.

Recommended

Complete public page shell

Use the shell around a complete marketing or public-service page.

01
Live preview
Header slot
Public page content
Footer slot
Component usage.wrn
<PublicPageShell
  maxWidth="xl"
  fullWidth="false">
  <div data-slot="before">
    <div class="showcase-slot">before slot</div>
  </div>
  <div class="showcase-shell-preview">
    <header>Header slot</header>
    <main>Public page content</main>
    <footer>Footer slot</footer>
  </div>
  <div data-slot="after">
    <div class="showcase-slot">after slot</div>
  </div>
</PublicPageShell>
Compact

Constrained documentation shell

Keep long-form documentation readable with a compact content width.

02
Live preview
Header slot
Public page content
Footer slot
Component usage.wrn
<PublicPageShell
  maxWidth="compact"
  fullWidth="false"
  headerOffset="sm"
  background="soft"
  size="sm"
  variant="secondary">
  <div data-slot="before">
    <div class="showcase-slot">before slot</div>
  </div>
  <div class="showcase-shell-preview">
    <header>Header slot</header>
    <main>Public page content</main>
    <footer>Footer slot</footer>
  </div>
  <div data-slot="after">
    <div class="showcase-slot">after slot</div>
  </div>
</PublicPageShell>
Advanced

Full-bleed landing page

Allow full-width sections while keeping overflow and minimum-height behavior consistent.

03
Live preview
Header slot
Public page content
Footer slot
Component usage.wrn
<PublicPageShell
  size="lg"
  variant="success">
  <div data-slot="before">
    <div class="showcase-slot">before slot</div>
  </div>
  <div class="showcase-shell-preview">
    <header>Header slot</header>
    <main>Public page content</main>
    <footer>Footer slot</footer>
  </div>
  <div data-slot="after">
    <div class="showcase-slot">after slot</div>
  </div>
</PublicPageShell>
Component API

Props and configuration

All content and behavior shown above is supplied through these props and slots.

PropTypeDefaultRequired
maxWidthstring"full"No
fullWidthbooleantrueNo
headerOffsetstring"none"No
backgroundstring"default"No
overflowstring"clip"No
minHeightstring"screen"No
sizestring"default"No
colorstring"primary"No
variantstring"default"No
classstring""No
} }