Frame
Group raised panels inside a shared frame.
Pro plan
Installation
pnpm dlx shadcn@4.18.0 add @siteplane/frameComplete the one-time setup first. Registry JSON lists source files and dependencies.
For this page’s examples, also install:
pnpm dlx shadcn@4.18.0 add @siteplane/separatorUsage
import { Frame, FramePanel } from "@/siteplane/components/frame";
<Frame>
<FramePanel>Content</FramePanel>
</Frame>;Composition
Frame
├── FrameHeader
│ ├── FrameTitle
│ └── FrameDescription
├── FramePanel
└── FrameFooterSeparated panels
Place several FramePanel parts directly inside Frame; adjacent panels are spaced apart automatically.
Members
Storage
Stacked sections
To stack sections inside one panel, remove the panel padding and divide the sections with a Separator.
Payment method
Billing contact
API reference
All parts accept native attributes, refs, children and string className. Frame is a div with a muted background, rounded corners and padding; FramePanel is a padded card surface with the same edge as Card; FrameHeader, FrameTitle, FrameDescription and FrameFooter render div, so a page with many frames adds no landmarks. There are no owned size, variant or state props. Use native headings within the title where needed; FrameTitle does not create one.
Usage notes
Frame owns presentation only. Use Card for a card with its own header, content and actions, or CardFrame for cards joined within a surrounding surface.
A panel is lighter than the muted frame around it. It draws the same hairline as a Card and adds no border or shadow of its own.