Layered about over a faint scrolling studio-word marquee with offset images and stats.
A two-column about section with a text block on the left and an offset, overlapping pair of images on the right, laid over a faint infinite marquee of a single studio word scrolling behind everything at low opacity. A compact stats row sits under the CTA button.
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/about44?email=YOUR_EMAIL&license_key=YOUR_KEY"Base UI flavor
npx shadcn add "https://ui.beste.co/r-base/about44?email=YOUR_EMAIL&license_key=YOUR_KEY"This installs the block to components/beste/block/about44.tsx, the badge6 and button1 components it uses for the eyebrow label and CTA button, and its dependencies.
The installed file exports about44Demo alongside the block: the exact props behind the preview above. Spread it to get a working section in one line.
import { About44, about44Demo } from "@/components/beste/block/about44";
export default function AboutPage() {
return <About44 {...about44Demo} />;
}Then replace the demo with your own props. Written out, the same setup looks like this:
import { About44 } from "@/components/beste/block/about44";
export default function AboutPage() {
return (
<About44
label="Inside the studio"
heading="We are a small team of <strong>obsessive makers</strong>."
description="We strip a product back to its sharpest idea, then design every surface around it."
button={{ label: "Meet the team", href: "https://beste.co" }}
marqueeWord="Northwind"
images={[
{
src: "https://images.unsplash.com/photo-1521737604893-d14cc237f11d?w=900&h=1125&fit=crop",
alt: "Team reviewing layouts",
},
{
src: "https://images.unsplash.com/photo-1497032205916-ac775f0649ae?w=800&h=800&fit=crop",
alt: "Designer sketching at a desk",
},
]}
stats={[
{ value: "8", label: "Years in business." },
{ value: "150+", label: "Projects shipped." },
]}
/>
);
}| Prop | Type | Default | Description |
|---|---|---|---|
label | string | – | Eyebrow badge text above the heading |
heading | string | – | Section statement; supports inline <strong> for primary-colored highlights |
description | string | – | Supporting paragraph under the heading |
button | ActionLink | – | CTA rendered as a Button1 with an arrow icon |
marqueeWord | string | – | Single word scrolled behind the layout as a faint background marquee |
images | ImageItem[] | [] | Source images for the offset cluster; only the first two are ever shown |
stats | StatItem[] | [] | Compact stat row under the CTA button |
className | string | – | Extra classes for the outer <section> |
type ImageItem = { src: string; alt: string };
type ActionLink = { label: string; href: string };
type StatItem = { value: string; label: string };images.slice(0, 2): passing more than two images silently drops the rest, and passing one image renders only the larger top image with no offset second photo.marqueeWord exactly twice and animates the track by translateX(-50%) over 42 seconds, linear and infinite, so the second copy lands exactly where the first started, creating a seamless loop. It is aria-hidden and sits at text-foreground/[0.04] opacity, so it reads as texture rather than content.<style> tag scoped to the component rather than a Tailwind config animation, so no tailwind.config changes are needed after install.aspect-[3/4] at 80% width anchored right (ml-auto), and the second is a smaller aspect-square card at 60% width pulled up -mt-16 with a background-colored border, layering it over the first image's bottom-left corner.lg, the grid collapses to a single column and the image cluster stacks below the text column in source order.about46
An about intro followed by a horizontally scrollable strip mixing image, stat, quote and values cards.
about36
Asymmetric about with a bleeding image, vertical edge label, offset copy and an inline stats row.
about24
Company story with image, border-accented feature highlights, and stats row. Great for craft, heritage, and product-focused brands.
about39
About anchored by an oversized numeral with a paragraph and a horizontal image strip.
about28
Full-width animated marquee stats ticker, split layout with intro text and leadership avatars on the left, full-height image on the right. For SaaS and product companies.
about37
Three uneven columns: a studio fact index, an oversized statement, and a portrait with signature.