Plain resources section: a heading above three guide cards, each with a reading time, a title, a line of copy and a Read the guide link. Theme tokens only, light and dark.
import { ArrowRightIcon } from "@phosphor-icons/react/dist/ssr"
import { cn } from "cn"
import { Heading } from "@/components/editorial/heading"
import {
Section,
SectionContent,
SectionDescription,
SectionHeader,
SectionTitleGroup,
} from "@/components/editorial/section"
import { buttonVariants } from "@/components/ui/button"
import {
Card,
CardContent,
CardDescription,
CardFooter,
CardHeader,
CardTitle,
} from "@/components/ui/card"
// The copy: change text here, not in the markup.
const COPY = {
title: "Guides",
body: "Short, practical reads on planning and shipping with a small team.",
read: "Read the guide",
} as const
const GUIDES = [
{
kind: "Guide · 6 min",
title: "Write a plan people read",
body: "Owners, dates and one sentence of why: the three things every line needs.",
href: "#",
},
{
kind: "Guide · 8 min",
title: "Run a ten-minute standup",
body: "Let the digest carry the news so the meeting only handles what is blocked.",
href: "#",
},
{
kind: "Guide · 5 min",
title: "Hand off without a meeting",
body: "What goes in the handoff note, and what the next person should never have to ask.",
href: "#",
},
] as const
export default function MinimalResources01() {
return (
<Section>
<SectionHeader>
<SectionTitleGroup>
<Heading>{COPY.title}</Heading>
</SectionTitleGroup>
<SectionDescription>{COPY.body}</SectionDescription>
</SectionHeader>
<SectionContent>
<ul
role="list"
className="grid grid-cols-1 gap-4 @5xl/section:grid-cols-3"
>
{GUIDES.map((guide) => (
<li key={guide.title} className="flex">
<Card className="w-full">
<CardHeader className="gap-2">
<p className="text-sm text-muted-foreground">{guide.kind}</p>
<CardTitle role="heading" aria-level={3}>
{guide.title}
</CardTitle>
</CardHeader>
<CardContent className="flex-1">
<CardDescription>{guide.body}</CardDescription>
</CardContent>
<CardFooter>
<a
href={guide.href}
data-slot="button"
className={cn(
buttonVariants({ variant: "link" }),
"h-auto p-0 font-semibold"
)}
>
{COPY.read}
<span className="sr-only">: {guide.title}</span>
<ArrowRightIcon data-icon="inline-end" aria-hidden="true" />
</a>
</CardFooter>
</Card>
</li>
))}
</ul>
</SectionContent>
</Section>
)
}
pnpm dlx shadcn add @01orbital/minimal-resources-01npx shadcn add @01orbital/minimal-resources-01yarn shadcn add @01orbital/minimal-resources-01bunx --bun shadcn add @01orbital/minimal-resources-01Free under the MIT license. Add the @01orbital registry to components.json once (install guide), then run the command.
It lands at components/blocks/resources/minimal-resources-01/index.tsx, as source you own and edit.
import MinimalResources01 from "@/components/blocks/resources/minimal-resources-01"
export default function Example() {
return <MinimalResources01 />
}npm: @phosphor-icons/react, cn. The CLI installs them for you.
Registry pieces it installs with it:
Frosted Glass Guide Cards
Two-column grid of dark Headline Cards on frosted glass over the scene backdrop, each with a guide title, summary, round arrow link and an author avatar with topic. Pinned dark.
Tabbed Customer Story Grid
Customer stories filtered by product tabs in the header. Each tab shows a two-column grid of cards with client, industry, arrow link, a full-bleed image and a caption. Instrument Serif titles.