Alder Row in numbers
A key numbers band for a development: a short heading above four figures (homes, a bedroom range, the starting price and the completion year) in two columns on tablets and four on desktop, each under its own hairline and never wrapping. The figures count up from zero in order once the row scrolls into view, ranges count both ends, and currency, plain and grouped number formats are chosen per figure.
A key numbers band for a development: a short heading above four figures (homes, a bedroom range, the starting price and the completion year) in two columns on tablets and four on desktop, each under its own hairline and never wrapping. The figures count up from zero in order once the row scrolls into view, ranges count both ends, and currency, plain and grouped number formats are chosen per figure.
Upgrade to Pro
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://beste.dev/r/realestate67?email=YOUR_EMAIL&license_key=YOUR_KEY"Base UI flavor
npx shadcn add "https://beste.dev/r-base/realestate67?email=YOUR_EMAIL&license_key=YOUR_KEY"This installs the block to components/beste/block/realestate67.tsx plus the Badge24 eyebrow component it imports; no shadcn/ui primitives are needed.
The installed file exports realestate67Demo alongside the block: the exact props behind the preview above. Spread it to get a working section in one line.
import { Realestate67, realestate67Demo } from "@/components/beste/block/realestate67";
export default function Page() {
return <Realestate67 {...realestate67Demo} />;
}Then replace the demo with your own props. Written out, a trimmed setup looks like this:
import { Realestate67 } from "@/components/beste/block/realestate67";
export default function Page() {
return (
<Realestate67
eyebrow="Alder Row in numbers"
heading="A small riverside development, in four numbers"
figures={[
{ label: "Homes", value: 24 },
{ label: "Bedrooms", value: 2, to: 4 },
{ label: "Prices from", value: 640000, format: "currency" },
]}
currency="USD"
locale="en-US"
labels={{ to: "to" }}
/>
);
}| Prop | Type | Default | Description |
|---|---|---|---|
eyebrow | string | – | Short line above the heading, drawn with a rule in front of it. |
heading | string | – | One-line heading above the figures. |
figures | Figure[] | [] | The figures in the row; four fill the desktop grid. |
currency | string | – | ISO currency code for currency figures, USD when omitted. |
locale | string | – | Locale for number formatting, en-US when omitted. |
labels | { to?: string } | {} | The word between the two ends of a range figure. |
className | string | – | Extra classes merged onto the section. |
type Figure = {
label: string;
value: number;
to?: number;
prefix?: string;
suffix?: string;
format?: "number" | "currency" | "plain";
};to renders both ends of the range and counts them at the same time, with the labels.to word between them in the smaller muted style used for prefix and suffix.format picks the Intl.NumberFormat style: number groups thousands, currency adds the currency symbol with no decimals, and plain drops grouping so years read as 1872, not 1,872.prefers-reduced-motion the figures render their final values at once and nothing rises or draws.lg and four from lg, so figures never squeeze on tablets; each figure stays on one line (whitespace-nowrap), with its label under it and its hairline above.