Two-column layout with company story, stats, and leadership quote on the left, team photo and avatar row on the right.
Two-column about section: company story, an inline stats row, and a leadership pull-quote sit on the left, while the right column stacks a hero photo above a compact avatar grid of team members. Below the lg breakpoint both columns collapse into a single stacked layout.
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/about23?email=YOUR_EMAIL&license_key=YOUR_KEY"Base UI flavor
npx shadcn add "https://ui.beste.co/r-base/about23?email=YOUR_EMAIL&license_key=YOUR_KEY"This installs the block to components/beste/block/about23.tsx and the badge, button, and avatar shadcn/ui primitives it depends on.
The installed file exports about23Demo alongside the block: the exact props behind the preview above. Spread it to get a working about section in one line.
import { About23, about23Demo } from "@/components/beste/block/about23";
export default function AboutPage() {
return <About23 {...about23Demo} />;
}Then replace the demo with your own props. Written out, a trimmed setup looks like this:
import { About23 } from "@/components/beste/block/about23";
export default function AboutPage() {
return (
<About23
badge={{ label: "About Us", variant: "secondary" }}
heading="Crafting products people love"
description="We combine engineering rigor with thoughtful design."
image={{
src: "https://images.unsplash.com/photo-1522071820081-009f0129c71c?w=800&h=600&fit=crop",
alt: "Team at work",
}}
stats={[
{ title: "Team Members", value: "45+" },
{ title: "Countries", value: "12" },
]}
quote={{
text: "Our goal is to build the foundation every team ships on.",
author: "Sarah Chen",
role: "CEO & Co-Founder",
}}
team={[
{ name: "Sarah Chen", role: "CEO" },
{ name: "Marcus Johnson", role: "CTO" },
]}
buttons={[{ label: "Our Story", href: "https://beste.co" }]}
/>
);
}| Prop | Type | Default | Description |
|---|---|---|---|
badge | { label: string; variant?: "default" | "secondary" | "outline" } | – | Eyebrow badge above the heading |
heading | string | – | Section heading |
description | string | – | Lead paragraph directly under the heading |
body | string | – | Secondary paragraph, rendered smaller and muted below description |
image | { src: string; alt: string } | – | Hero photo at the top of the right column |
team | TeamMember[] | [] | Avatar grid rendered below the image |
stats | StatItem[] | [] | Inline numeric stat row under the body text |
quote | QuoteItem | – | Optional leadership pull-quote with avatar |
buttons | ButtonItem[] | [] | CTA row under the quote |
className | string | – | Extra classes for the outer <section> |
type TeamMember = {
name: string;
role: string;
avatar?: { src: string; alt: string };
};
type StatItem = { title: string; value: string };
type QuoteItem = {
text: string;
author: string;
role: string;
avatar?: { src: string; alt: string };
};
type ButtonItem = {
label: string;
href?: string;
variant?: "default" | "secondary" | "outline" | "ghost" | "link" | "destructive";
};grid-cols-2 sm:grid-cols-4 layout regardless of how many entries team has; it is not the dynamic column-count pattern, so a fifth member simply wraps to a second row instead of the grid recalculating.quote is passed, and wraps the text in curly quote HTML entities (“/”) unconditionally, so plain straight quotes in quote.text would double up visually.quote.text string contains a literal em dash ("Our goal is not just to build components — it is to build the foundation...") reproduced here exactly as it appears in the source.lg breakpoint the two-column grid becomes a single column, so the image and team grid stack directly beneath the story content rather than staying side by side.about21
Two-column layout with checklist highlights on the left, featured image and testimonial quote on the right, plus a full-width stats row.
about5
Side-by-side layout with a tall image on the left and company story, inline stats, and CTAs on the right.
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.
about1
Two-column about section with mission statement, company stats, and team member grid. Perfect for company pages and landing sections.
about66
Two-column about with a tall image on one side and an eyebrow, heading, description, and 2x2 stats grid on the other.
about20
Wide team photo, member list with avatars, team stats grid, and a culture quote. A rich team showcase layout.