Two-column about section with mission statement, company stats, and team member grid. Perfect for company pages and landing sections.
Two-column about section: a mission paragraph paired with a 2x2 stat tile grid on one side, and a 2x2 team member grid of avatar cards on the other, closed out with a row of CTA buttons beneath both columns.
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/about1?email=YOUR_EMAIL&license_key=YOUR_KEY"Base UI flavor
npx shadcn add "https://ui.beste.co/r-base/about1?email=YOUR_EMAIL&license_key=YOUR_KEY"This installs the block to components/beste/block/about1.tsx and the badge, button, and avatar shadcn/ui primitives it depends on.
The installed file exports about1Demo alongside the block: the exact props behind the preview above. Spread it to get a working section in one line.
import { About1, about1Demo } from "@/components/beste/block/about1";
export default function Page() {
return <About1 {...about1Demo} />;
}Then replace the demo with your own props. Written out, the same setup looks like this:
import { About1 } from "@/components/beste/block/about1";
export default function Page() {
return (
<About1
badge={{ label: "About Us", variant: "secondary" }}
heading="Building the future of digital experiences"
description="A team of designers, engineers, and strategists crafting products people love."
mission="Our mission is to empower businesses with beautifully crafted, accessible, and performant digital products."
stats={[
{ title: "Founded", value: "2018" },
{ title: "Team Members", value: "45+" },
]}
team={[
{ name: "Sarah Chen", role: "CEO & Co-Founder", avatar: { src: "https://images.unsplash.com/photo-1494790108377-be9c29b29330", alt: "Sarah Chen" } },
{ name: "Marcus Johnson", role: "CTO & Co-Founder", avatar: { src: "https://images.unsplash.com/photo-1500648767791-00dcc994a43e", alt: "Marcus Johnson" } },
]}
buttons={[{ label: "Join Our Team", href: "https://beste.co" }]}
/>
);
}| Prop | Type | Default | Description |
|---|---|---|---|
badge | { label: string; variant?: "default" | "secondary" | "outline" } | – | Pill above the heading; only rendered when badge is truthy |
heading | string | – | Section heading |
description | string | – | Section intro text |
mission | string | – | Mission statement paragraph in the left column |
stats | StatItem[] | [] | Stat tiles below the mission paragraph |
team | TeamMember[] | [] | Avatar cards in the right column |
buttons | ButtonItem[] | [] | CTA buttons below both columns |
className | string | – | Extra classes for the outer <section> |
type StatItem = { title: string; value: string };
type TeamMember = {
name: string;
role: string;
avatar?: { src: string; alt: string };
};
type ButtonItem = {
label: string;
href?: string;
variant?: "default" | "secondary" | "outline" | "ghost" | "link" | "destructive";
};<div> when at least one of badge, heading, or description is set, so an about section with none of the three collapses cleanly instead of leaving empty spacing.stats renders in a fixed grid-cols-2 regardless of how many items are passed; five or more stats wrap to a third row rather than reflowing to three columns.team also renders in a fixed grid-cols-2; each Avatar falls back to an AvatarFallback built from the initials of member.name (first letter of each space-separated word) when member.avatar is not supplied, so avatars are never blank.mission/stats render regardless of whether team has any entries, and vice versa, since each is gated by its own truthiness check inside the shared lg:grid-cols-2 row.variant="default"; every button beyond that still defaults to "default" too (unlike usecase10, which alternates default/outline), so an unstyled multi-button array renders all buttons in the same primary style unless each sets its own variant.about23
Two-column layout with company story, stats, and leadership quote on the left, team photo and avatar row on the right.
about66
Two-column about with a tall image on one side and an eyebrow, heading, description, and 2x2 stats grid on the other.
about8
Four-column stats grid with large numbers, titles, and supporting descriptions. Perfect for impact and results sections.
about34
About section: eyebrow label, two-tone heading, two portraits beside a 2x2 stats grid.
about20
Wide team photo, member list with avatars, team stats grid, and a culture quote. A rich team showcase layout.
about60
Team section with an eyebrow, big heading, description and CTA above a responsive grid of people cards (portrait image, name, role).