Four-column stats grid with large numbers, titles, and supporting descriptions. Perfect for impact and results sections.
Four-column stats grid where each card carries a large number, a short title, and a supporting sentence, going further than a bare stat row by giving every metric its own explanation.
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/about8?email=YOUR_EMAIL&license_key=YOUR_KEY"Base UI flavor
npx shadcn add "https://ui.beste.co/r-base/about8?email=YOUR_EMAIL&license_key=YOUR_KEY"This installs the block to components/beste/block/about8.tsx, along with the shadcn/ui badge and button components it depends on.
The installed file exports about8Demo alongside the block: the exact props behind the preview above. Spread it to get a working section in one line.
import { About8, about8Demo } from "@/components/beste/block/about8";
export default function AboutPage() {
return <About8 {...about8Demo} />;
}Then replace the demo with your own props. Written out, a trimmed setup looks like this:
import { About8 } from "@/components/beste/block/about8";
export default function AboutPage() {
return (
<About8
badge={{ label: "By the Numbers", variant: "secondary" }}
heading="Impact you can measure"
description="We let our results speak for themselves."
stats={[
{ title: "Active Users", value: "200K+", description: "Used in production every month." },
{ title: "Components", value: "800+", description: "Ready-to-use blocks across 30 categories." },
{ title: "Uptime", value: "99.9%" },
]}
buttons={[{ label: "Start Building", href: "https://beste.co" }]}
/>
);
}| Prop | Type | Default | Description |
|---|---|---|---|
badge | { label: string; variant?: "default" | "secondary" | "outline" } | – | Small label above the heading |
heading | string | – | Section heading |
description | string | – | Intro paragraph under the heading |
stats | StatItem[] | [] | Cards rendered in the four-column grid |
buttons | ButtonItem[] | [] | CTA row at the bottom |
className | string | – | Extra classes for the outer <section> |
type StatItem = {
title: string;
value: string;
description?: string;
};
type ButtonItem = {
label: string;
href?: string;
variant?: "default" | "secondary" | "outline" | "ghost" | "link" | "destructive";
};sm:grid-cols-2 lg:grid-cols-4. Four stats (the demo count) fill exactly one row at lg, but other counts leave a partial row rather than rebalancing to a different column count.rounded-md bg-muted/50 p-6) rather than plain text on the section background, and every field inside a card is centered.description is optional per stat, so some cards can show only the number and title while others carry the explanatory sentence beneath.text-4xl to text-5xl at md, larger than the section heading itself once at desktop width.about66
Two-column about with a tall image on one side and an eyebrow, heading, description, and 2x2 stats grid on the other.
about1
Two-column about section with mission statement, company stats, and team member grid. Perfect for company pages and landing sections.
about34
About section: eyebrow label, two-tone heading, two portraits beside a 2x2 stats grid.
about23
Two-column layout with company story, stats, and leadership quote on the left, team photo and avatar row on the right.
about2
Full-width team photo with a three-column values grid below. Great for culture pages and brand storytelling.
about3
Two-column layout with company stats on the left and a vertical timeline of milestones on the right. Ideal for company history and growth stories.