A pillar guide hub whose sticky left column carries the pitch, three facts on hairlines and a seal button, while the right column lists every chapter in numbered rows grouped by part.
A pillar guide hub whose sticky left column carries the pitch, three facts on hairlines and a seal button, while the right column lists every chapter in numbered rows grouped by part.
Upgrade to Pro
Pro blocks install through the shadcn CLI with your license key and ship their full source. Docs and live previews stay open to everyone, so you can read every block's details first.
Swap YOUR_EMAIL and YOUR_KEY for the email and license key on your account. Find your license key on your account page.
Radix flavor
npx shadcn add "https://ui.beste.co/r/education104?email=YOUR_EMAIL&license_key=YOUR_KEY"Base UI flavor
npx shadcn add "https://ui.beste.co/r-base/education104?email=YOUR_EMAIL&license_key=YOUR_KEY"This installs the block to components/beste/block/education104.tsx, the badge6 component used for the eyebrow and the button1 seal button that opens the guide.
The installed file exports education104Demo alongside the block: the exact props behind the preview above. Spread it to get a working guide hub in one line.
import { Education104, education104Demo } from "@/components/beste/block/education104";
export default function GuidePage() {
return <Education104 {...education104Demo} />;
}Then replace the demo with your own props. Written out, a trimmed setup looks like this:
import { Education104 } from "@/components/beste/block/education104";
export default function GuidePage() {
return (
<Education104
eyebrow="The long guide"
heading="Running client work without losing the plot"
description="Everything we know about taking a project from a first email to a clean handover."
facts={[
{ label: "Chapters", value: "11" },
{ label: "Reading time", value: "About 90 minutes" },
]}
button={{ label: "Start at chapter one", href: "/guide/first-email" }}
parts={[
{
title: "Before the work",
chapters: [
{ title: "Reading a first email properly", duration: "6 min", href: "/guide/first-email" },
{ title: "The call that decides everything", duration: "9 min", href: "/guide/the-call" },
],
},
]}
/>
);
}| Prop | Type | Default | Description |
|---|---|---|---|
eyebrow | string | – | Badge6 label above the pitch |
heading | string | – | Guide title |
description | string | – | What the guide covers, under the title |
facts | Fact[] | [] | Three short facts on hairlines, in a row from sm up |
button | ActionButton | – | Seal button into the first chapter |
parts | GuidePart[] | [] | Chapter groups, listed in order |
className | string | – | Extra classes for the outer section |
type GuidePart = {
title: string;
chapters: Chapter[];
};
type Chapter = {
title: string;
duration: string;
href: string;
};
type Fact = {
label: string;
value: string;
};
type ActionButton = {
label: string;
href: string;
};parts, so moving a part renumbers everything after it.lg:sticky lg:top-24, so the pitch and the button stay in view while a long chapter list scrolls past. Below lg it is a normal block above the list.Link with the number, the title and the duration on one baseline, and the title moves to the accent colour on hover.education13
A rich text lesson reader with structured content blocks including headings, paragraphs, lists, quotes, and code snippets. Perfect for text-based courses and educational documentation.
education100
A quick facts grid displaying key institutional statistics with values, labels, and descriptions. Perfect for university at-a-glance pages and prospective student information.
education101
An academy section with an eyebrow over a hairline rule, a two-column heading, and three course cards that each float a live progress checklist above a category, title, and lesson count.
education86
A social media connection section with platform cards showing handles and follower counts. Perfect for university marketing and student community building.