Custom Shadcn Frame for React and Tailwind CSS. Displays related content in a structured frame.
import {
Frame,
FrameDescription,
FrameFooter,
FrameHeader,
FramePanel,
FrameTitle,
} from "@/components/byosui/frame"Browse 19 production-ready Shadcn Frame components for dashboards, forms, and product UI. These examples follow the Radix UI implementation with accessible primitives from the Radix stack and stay fully compatible with Shadcn Create so radius, color, and typography match your configured theme.
Browse all 19 Shadcn Frame components for copy-ready layouts, dashboards, and forms built with Tailwind CSS in the ReUI library.
<Frame>
<FramePanel>
<FrameHeader>
<FrameTitle>Frame Title</FrameTitle>
<FrameDescription>Frame Description</FrameDescription>
</FrameHeader>
<div className="p-5">Frame Content</div>
<FrameFooter>Frame Footer</FrameFooter>
</FramePanel>
</Frame>You can customize the border radius of the frame and its panels using the --frame-radius CSS variable.
<Frame className="[--frame-radius:var(--radius-lg)]">
<FramePanel>...</FramePanel>
</Frame>The root container for one or more frame panels.
A card-like container within the frame that holds header, content, and footer.
A container for the title and description, with default padding.
Heading for the frame panel.
Supporting text for the frame panel.
A container for actions or additional information at the bottom of the panel.
import {
Frame,
FrameDescription,
FrameFooter,
FrameHeader,
FramePanel,
FrameTitle,
} from "@/components/byosui/frame"
export function Pattern() {
return (
<Frame className="w-full">
<FrameHeader>
<FrameTitle>Section header</FrameTitle>
<FrameDescription>Description for the section</FrameDescription>
</FrameHeader>
<FramePanel>
<h2 className="text-sm font-semibold">Section title</h2>
<p className="text-muted-foreground text-sm">Section description</p>
</FramePanel>
<FrameFooter>
<p className="text-muted-foreground text-sm">Section footer</p>
</FrameFooter>
</Frame>
)
}
import {
Frame,
FrameDescription,
FrameHeader,
FramePanel,
FrameTitle,
} from "@/components/byosui/frame"
export function Pattern() {
return (
<Frame className="w-full" variant="ghost">
<FrameHeader>
<FrameTitle>No Outer Border</FrameTitle>
<FrameDescription>
This frame uses variant="ghost" to remove the outer border.
</FrameDescription>
</FrameHeader>
<FramePanel>
<p className="text-muted-foreground text-sm">
The outer container of this frame has no border, only the background
and panels are visible.
</p>
</FramePanel>
</Frame>
)
}
import {
Frame,
FrameDescription,
FrameHeader,
FramePanel,
FrameTitle,
} from "@/components/byosui/frame"
export function Pattern() {
return (
<Frame className="w-full">
<FrameHeader>
<FrameTitle>Section header</FrameTitle>
<FrameDescription>Description for the section</FrameDescription>
</FrameHeader>
<FramePanel>
<h2 className="text-sm font-semibold">Separated panel</h2>
<p className="text-muted-foreground text-sm">Section description</p>
</FramePanel>
<FramePanel>
<h2 className="text-sm font-semibold">Separated panel</h2>
<p className="text-muted-foreground text-sm">Section description</p>
</FramePanel>
</Frame>
)
}
import {
Frame,
FrameDescription,
FrameHeader,
FramePanel,
FrameTitle,
} from "@/components/byosui/frame"
export function Pattern() {
return (
<Frame dense className="w-full max-w-sm">
<FrameHeader>
<FrameTitle>Inventory Check</FrameTitle>
<FrameDescription>Real-time stock monitoring</FrameDescription>
</FrameHeader>
<FramePanel>
<h2 className="text-sm font-semibold">Warehouse A</h2>
<p className="text-muted-foreground text-sm">
Dense mode removes outer padding for a more compact appearance.
</p>
</FramePanel>
</Frame>
)
}
import {
Frame,
FrameDescription,
FrameHeader,
FramePanel,
FrameTitle,
} from "@/components/byosui/frame"
export function Pattern() {
return (
<Frame className="w-full" stacked dense>
<FrameHeader>
<FrameTitle>Section header</FrameTitle>
<FrameDescription>Description for the section</FrameDescription>
</FrameHeader>
<FramePanel>
<h2 className="text-sm font-semibold">Stacked panel</h2>
<p className="text-muted-foreground text-sm">Section description</p>
</FramePanel>
<FramePanel>
<h2 className="text-sm font-semibold">Stacked panel</h2>
<p className="text-muted-foreground text-sm">Section description</p>
</FramePanel>
</Frame>
)
}
import {
Frame,
FrameDescription,
FrameHeader,
FramePanel,
FrameTitle,
} from "@/components/byosui/frame"
export function Pattern() {
return (
<Frame className="w-full" stacked>
<FrameHeader>
<FrameTitle>Section header</FrameTitle>
<FrameDescription>Description for the section</FrameDescription>
</FrameHeader>
<FramePanel>
<h2 className="text-sm font-semibold">Stacked panel</h2>
<p className="text-muted-foreground text-sm">Section description</p>
</FramePanel>
<FramePanel>
<h2 className="text-sm font-semibold">Stacked panel</h2>
<p className="text-muted-foreground text-sm">Section description</p>
</FramePanel>
</Frame>
)
}
import {
Frame,
FrameDescription,
FrameHeader,
FramePanel,
FrameTitle,
} from "@/components/byosui/frame"
export function Pattern() {
return (
<Frame stacked className="w-full max-w-sm">
<FrameHeader>
<FrameTitle>Server Logs</FrameTitle>
<FrameDescription>Recent activity and errors</FrameDescription>
</FrameHeader>
<FramePanel>
<h2 className="text-sm font-semibold">Auth Service</h2>
<p className="text-muted-foreground text-sm">
Successfully logged in user: admin
</p>
</FramePanel>
<FramePanel>
<h2 className="text-sm font-semibold">Database</h2>
<p className="text-muted-foreground text-sm">
Query execution time: 12ms
</p>
</FramePanel>
<FramePanel>
<h2 className="text-sm font-semibold">Storage</h2>
<p className="text-muted-foreground text-sm">
Upload complete: image.png
</p>
</FramePanel>
</Frame>
)
}