Four-column grid of office cards with city, country, address, and team size. Ideal for global companies.
A fixed four-column grid of office cards, each topped with a pin icon, the city as the card title, the country beneath it, and optional address and team-size lines. A centered header and CTA row bracket the grid. Built for distributed or multi-office companies that want a scannable location directory.
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/about18?email=YOUR_EMAIL&license_key=YOUR_KEY"Base UI flavor
npx shadcn add "https://ui.beste.co/r-base/about18?email=YOUR_EMAIL&license_key=YOUR_KEY"This installs the block to components/beste/block/about18.tsx and the badge and button shadcn/ui primitives it depends on.
The installed file exports about18Demo alongside the block: the exact props behind the preview above. Spread it to get a working section in one line.
import { About18, about18Demo } from "@/components/beste/block/about18";
export default function Page() {
return <About18 {...about18Demo} />;
}Then replace the demo with your own props. Written out, a trimmed setup looks like this:
import { About18 } from "@/components/beste/block/about18";
export default function Page() {
return (
<About18
badge={{ label: "Our Offices", variant: "secondary" }}
heading="Where you can find us"
description="We are a distributed team with hubs around the world."
offices={[
{ city: "Austin", country: "United States", address: "500 Congress Ave", teamSize: "10 people" },
{ city: "Lisbon", country: "Portugal", teamSize: "6 people" },
{ city: "Singapore", country: "Singapore", address: "1 Raffles Place" },
]}
buttons={[{ label: "See Open Positions", 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 | – | Section intro text |
offices | OfficeItem[] | [] | Office cards, each requiring city and country |
buttons | ButtonItem[] | [] | CTAs centered under the grid |
className | string | – | Extra classes for the outer <section> |
type OfficeItem = {
city: string;
country: string;
address?: string;
teamSize?: string;
};
type ButtonItem = {
label: string;
href?: string;
variant?: "default" | "secondary" | "outline" | "ghost" | "link" | "destructive";
};sm:grid-cols-2 lg:grid-cols-4 layout, not a dynamic column count keyed off offices.length (Section 4.4 of the standard): four offices fill the row evenly at desktop width, and other counts leave a partial last row rather than reflowing to 2 or 3 columns.address and teamSize are independently optional per office; a card with only city/country set renders just the icon, city, and country with no gap left where the missing lines would have been.teamSize, when present, is styled as a small colored line (text-primary) beneath the address, visually distinct from the muted address text above it.MapPin icon; there is no per-office icon or image slot.about64
Principles section with a header and a three-column grid of six bordered cards, each pairing a circular icon with a title and description.
about7
Three-column grid of team member cards with avatars, roles, and short bios. Great for leadership and team pages.
about60
Team section with an eyebrow, big heading, description and CTA above a responsive grid of people cards (portrait image, name, role).
about68
A team section with an eyebrow over a hairline rule, a two-column heading, and a grid of portrait cards each with a name and role.
about8
Four-column stats grid with large numbers, titles, and supporting descriptions. Perfect for impact and results sections.
about16
Three-column cards for vision, mission, and values with labeled headers. Clean editorial layout for company positioning.