Status Page Shell
openstatus/status-page-shellFreeBlock
Outer chrome wrappers (StatusPageShell + StatusPageMain) around header / main / footer. Routing-agnostic with embed-aware Tailwind classes that activate only when an ancestor sets data-embed
Install it
npx shadcn@latest add https://openstatus.dev/r/status-page-shell.jsonSource
1import { cn } from "@/lib/utils";23/**4 * StatusPageShell — outer chrome wrapper around `<header>`, `<main>`, and5 * `<footer>`.6 *7 * Bare structural `<div>` with sensible defaults (full-height column with8 * gap). Routing-agnostic: it knows nothing about embed mode. Apps that9 * support embedding wrap this with their own provider that toggles10 * `group/embed` + `data-embed` / `data-hide-*` attributes from above.11 *12 * Override `min-h-screen` via `className` (e.g. `min-h-0`) when mounting13 * inside a constrained container like a dashboard preview card.14 */15export function StatusPageShell({16 className,17 ...props18}: React.ComponentProps<"div">) {19 return (20 <div21 data-slot="status-page-shell"22 className={cn("flex min-h-screen flex-col gap-4", className)}23 {...props}24 />25 );26}2728/**29 * StatusPageMain — inner `<main>` content column.30 *31 * Centers content at `max-w-2xl` with the canonical padding and column32 * layout. Routing- and embed-agnostic: callers that support an embed mode33 * layer their own `group-data-*` classes via `className`.34 */35export function StatusPageMain({36 className,37 ...props38}: React.ComponentProps<"main">) {39 return (40 <main41 data-slot="status-page-main"42 className={cn(43 "mx-auto flex w-full max-w-2xl flex-1 flex-col px-3 py-2",44 className,45 )}46 {...props}47 />48 );49}
Files it writes
More from openstatus
All 26 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| Status Bannerstatus-banner | openstatus | Blocks | Free | no deps | |
| Status Barstatus-bar | openstatus | Blocks | Free | 1 dep | |
| Status Blank Statesstatus-blank | openstatus | Blocks | Free | no deps | |
| Status Calendarstatus-calendar | openstatus | Blocks | Free | 3 deps | |
| Status Page Chromestatus-chrome | openstatus | Blocks | Free | no deps | |
| Status Page (Complete)status-complete | openstatus | Blocks | Free | no deps | |
| Status Componentstatus-component | openstatus | Blocks | Free | 2 deps | |
| Status Component Groupstatus-component-group | openstatus | Blocks | Free | no deps |
