Two-column layout with checklist highlights on the left, featured image and testimonial quote on the right, plus a full-width stats row.
A two-column layout: the left column carries the badge, heading, description, body copy, a checklist of differentiators, and CTA buttons, while the right column stacks a featured image over a testimonial quote card. Built for a "why choose us" section that argues its case with a scannable checklist backed by a customer quote.
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/about21?email=YOUR_EMAIL&license_key=YOUR_KEY"Base UI flavor
npx shadcn add "https://ui.beste.co/r-base/about21?email=YOUR_EMAIL&license_key=YOUR_KEY"This installs the block to components/beste/block/about21.tsx and the avatar, badge, and button shadcn/ui primitives it depends on.
The installed file exports about21Demo alongside the block: the exact props behind the preview above. Spread it to get a working section in one line.
import { About21, about21Demo } from "@/components/beste/block/about21";
export default function Page() {
return <About21 {...about21Demo} />;
}Then replace the demo with your own props. Written out, a trimmed setup looks like this:
import { About21 } from "@/components/beste/block/about21";
export default function Page() {
return (
<About21
badge={{ label: "Why Us", variant: "secondary" }}
heading="What sets us apart"
description="Here is why teams choose us over building from scratch."
body="Every block in our library is built with accessibility and performance as first-class priorities."
highlights={[
{ text: "Production-ready out of the box" },
{ text: "WCAG 2.1 AA compliant by default" },
{ text: "Full TypeScript support" },
{ text: "No vendor lock-in" },
]}
image={{ src: "https://images.unsplash.com/photo-1771777400683-8614965bfce5?w=800&h=600&fit=crop", alt: "Dashboard interface" }}
quote={{
text: "Switching to this library cut our development time in half.",
author: "Alex Rivera",
role: "VP of Engineering, Acme Corp",
avatar: { src: "https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?w=100&h=100&fit=crop", alt: "Alex Rivera" },
}}
buttons={[{ label: "Get Started", href: "https://beste.co" }]}
/>
);
}| Prop | Type | Default | Description |
|---|---|---|---|
badge | { label: string; variant?: "default" | "secondary" | "outline" } | – | Small label in the left column |
heading | string | – | Heading in the left column |
description | string | – | Intro text in the left column |
body | string | – | Supporting paragraph under description |
highlights | HighlightItem[] | [] | Checklist items under body |
image | { src: string; alt: string } | – | Featured image at the top of the right column |
quote | { text: string; author: string; role: string; avatar?: { src: string; alt: string } } | – | Testimonial card under the image |
buttons | ButtonItem[] | [] | CTAs at the bottom of the left column |
className | string | – | Extra classes for the outer <section> |
type HighlightItem = { text: string };
type ButtonItem = {
label: string;
href?: string;
variant?: "default" | "secondary" | "outline" | "ghost" | "link" | "destructive";
};Check icon inside a bg-primary/10 circle rather than a bullet, giving the list a completed-task look regardless of any real completion state.space-y-6; there is no side-by-side variant for those two elements.aspect-[4/3] box; there is no portrait or panoramic option.highlights has no icon or LucideIcon field per item: every row shares the same Check glyph, so differentiating checklist entries visually is not supported.about23
Two-column layout with company story, stats, and leadership quote on the left, team photo and avatar row on the right.
about5
Side-by-side layout with a tall image on the left and company story, inline stats, and CTAs on the right.
about13
Asymmetric layout with company story and image on the left, and a vertical list of company details on the right. Great for press and investor pages.
about32
Centered heading with description, followed by two images side-by-side. Configurable image ratio (equal, left larger, right larger). Always horizontal on mobile.
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.
about66
Two-column about with a tall image on one side and an eyebrow, heading, description, and 2x2 stats grid on the other.