About composed inside a bordered studio card with header marks, portrait and a stats strip.
About section composed entirely inside a single bordered card: a registry-style header row (eyebrow badge opposite a free-form mark like a founding date), an asymmetric heading/description/CTA split against an inset portrait, and a bottom stats strip, all divided by internal rules.
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/about42?email=YOUR_EMAIL&license_key=YOUR_KEY"Base UI flavor
npx shadcn add "https://ui.beste.co/r-base/about42?email=YOUR_EMAIL&license_key=YOUR_KEY"This installs the block to components/beste/block/about42.tsx, the badge6 and button1 components it uses for the eyebrow label and the CTA, and its dependencies.
The installed file exports about42Demo alongside the block: the exact props behind the preview above. Spread it to get a working section in one line.
import { About42, about42Demo } from "@/components/beste/block/about42";
export default function Page() {
return <About42 {...about42Demo} />;
}Then replace the demo with your own props. Written out, a trimmed setup looks like this:
import { About42 } from "@/components/beste/block/about42";
export default function Page() {
return (
<About42
label="The Studio"
registryMark="No. 016 / Est. 2016"
heading="Polaris is a small studio that ships <strong>brand systems built to outlast the launch</strong>."
description="We are a tight crew of designers and engineers working out of one room by the water."
button={{ label: "Read our field notes", href: "https://beste.co" }}
image={{
src: "https://images.unsplash.com/photo-1522202176988-66273c2fd55f?w=1000&h=1250&fit=crop",
alt: "Studio workspace with natural light",
}}
stats={[
{ value: "120+", label: "Brand systems shipped." },
{ value: "9 yrs", label: "Building by the water." },
{ value: "6", label: "People, one room." },
{ value: "31", label: "Industry awards earned." },
]}
/>
);
}| Prop | Type | Default | Description |
|---|---|---|---|
label | string | – | Eyebrow label rendered inside the badge |
registryMark | string | – | Free-form mark opposite the badge in the header row |
heading | string | – | Rendered via dangerouslySetInnerHTML; <strong> spans render text-primary |
description | string | – | Paragraph below the heading |
button | ActionLink | – | CTA at the bottom of the left column |
image | ImageItem | – | Inset portrait, bordered like a photo mounted in the card |
stats | StatItem[] | [] | Four-column strip at the bottom of the card |
className | string | – | Extra classes for the outer <section> |
type ActionLink = { label: string; href: string };
type ImageItem = { src: string; alt: string };
type StatItem = { value: string; label: string };rounded-md border bg-card p-8 md:p-12), unlike sibling About blocks that render directly against the page background.registryMark is unstructured free-form text (the demo uses "No. 016 / Est. 2016"), not a composed date/number pair; whatever string is passed renders as-is in a tracked uppercase style.justify-between, so the CTA is pinned to the bottom of its column regardless of how much heading and description text precedes it, while the portrait keeps a fixed 4:5 aspect ratio and its own border, reading as a photo mounted inside the frame.md with dividers between entries, matching the four stats in the demo; it does not resize its column count based on stats.length.ArrowUpRight instead of the component's default ArrowRight.about58
About section on a soft muted card with a monospace parenthetical eyebrow, a bold studio wordmark, a large centered statement, a logos strip, and a four-column stats band.
about46
An about intro followed by a horizontally scrollable strip mixing image, stat, quote and values cards.
about54
A cinematic wide image with an overlapping inset content card and a stat ribbon.
about37
Three uneven columns: a studio fact index, an oversized statement, and a portrait with signature.
about52
About styled as a technical spec sheet with coordinate marks, a data column and a portrait.
about49
About built around a dark founder portrait card with a pull-quote, signature, and supporting stats.