A first-day agenda held in one bordered panel, with timestamped hairline rows naming what happens, who is needed, how long it takes, and which parts are optional.
A first-day agenda held in one bordered panel, with timestamped hairline rows naming what happens, who is needed, how long it takes and which parts are optional.
Free block
This block is free. No license or account is required: install it with the CLI and use it in unlimited projects.
Radix flavor
npx shadcn add "https://ui.beste.co/r/onboarding36"Base UI flavor
npx shadcn add "https://ui.beste.co/r-base/onboarding36"This installs the block to components/beste/block/onboarding36.tsx plus the badge23 and button21 components it uses for the eyebrow and the action.
The installed file exports onboarding36Demo alongside the block: the exact props behind the preview above. Spread it to get a working agenda in one line.
import { Onboarding36, onboarding36Demo } from "@/components/beste/block/onboarding36";
export default function GoLivePage() {
return <Onboarding36 {...onboarding36Demo} />;
}Then replace the demo with your own props. Written out, a trimmed setup looks like this:
import { Onboarding36 } from "@/components/beste/block/onboarding36";
export default function GoLivePage() {
return (
<Onboarding36
badge={{ label: "Day one" }}
heading="The whole first day, hour by hour, written down in advance"
description="So you can see how much of your team's time this actually costs."
dayLabel="A typical go-live Monday"
entries={[
{
time: "08:00",
title: "We watch, you work",
description: "Your normal morning runs on the new system while two of us sit on a call.",
who: "Your team, as usual",
},
{
time: "13:00",
title: "Clinician walkthrough",
description: "Ten minutes on the record and the note template.",
who: "Clinicians, 10 minutes each",
optional: true,
},
]}
optionalLabel="Optional"
closing="Nothing above needs a room booked or a training day."
button={{ label: "Book a go-live date", href: "/go-live" }}
/>
);
}| Prop | Type | Default | Description |
|---|---|---|---|
badge | { label: string } | – | Eyebrow above the heading, rendered through Badge23 |
heading | string | – | Section heading, capped at max-w-2xl |
description | string | – | Supporting paragraph, capped at max-w-xl |
dayLabel | string | – | Panel header naming the day |
entries | AgendaEntry[] | [] | The agenda, in the order it happens |
optionalLabel | string | – | The word shown on optional entries |
closing | string | – | Paragraph beside the closing action |
button | { label: string; href: string } | – | Booking action |
className | string | – | Extra classes for the outer section |
type ActionLink = {
label: string;
href: string;
};
type AgendaEntry = {
time: string;
title: string;
description: string;
who: string;
optional?: boolean;
};who is required on every entry and is written as a combined actor and duration, for example "Practice manager, 20 minutes". That single string is what lets the reader total the real cost of the day.entry.optional is true and optionalLabel is set, so the label can be removed globally without editing every entry.tabular-nums so the column stays aligned.border-b with last:border-b-0, so the agenda closes flush against the panel edge rather than drawing a rule on top of the border.bg-background on a bg-muted section, which is how the set raises a single object off the page.who column is right-aligned from md and stacks under the description below it.onboarding39
An onboarding section setting out four dated milestones as bordered cards, each closing on the figure it should hit, above a soft panel that floats a live progress metric on an image tile.
onboarding34
A getting-started section whose role pills swap a sticky summary column and the numbered steps beside it, each step carrying its own title, explanation, and honest time estimate.
onboarding7
Card-based progress tracker showing completion percentage and a checklist of tasks with visual status. Perfect for gamified onboarding that motivates users to finish setup.
onboarding33
A setup panel pairing a soft progress column, where an oversized percentage and accent bar react to what is ticked, with hairline checklist rows that each carry a description and a jump-in link.