Stats Bar with Story Card

3x

Revenue Growth

200K+

Active Users

72

NPS Score

99.9%

Uptime

15K+

Open Source Stars

120+

Enterprise Clients

Our office space
About

We help companies ship faster

A design infrastructure company on a mission to make the web more beautiful, one component at a time.

Founded in 2018, we set out to solve a simple problem: developers spend too much time rebuilding common UI patterns. Our component library gives teams a head start with production-ready blocks that are accessible, responsive, and endlessly customizable. Today we serve over 200,000 developers across 50 countries, and our open-source community contributes new components every week. We are backed by world-class investors and guided by a leadership team with decades of experience at companies like Stripe, Vercel, and Figma.

About this block

Stats Bar with Story CardPRO

Horizontal stats row at the top followed by a centered story card with heading, body text, and CTAs.

About14: Stats Bar with Story Card

A fixed six-column stats bar sits above a two-track layout: a portrait image on the left and, on the right, a muted story card holding the badge, heading, description, body copy, and CTAs. Suited for an about page that wants to lead with numbers before the narrative.

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.

Upgrade Now

Installation

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

bash
npx shadcn add "https://ui.beste.co/r/about14?email=YOUR_EMAIL&license_key=YOUR_KEY"

Base UI flavor

bash
npx shadcn add "https://ui.beste.co/r-base/about14?email=YOUR_EMAIL&license_key=YOUR_KEY"

This installs the block to components/beste/block/about14.tsx and the badge and button shadcn/ui primitives it depends on.

Quick start

The installed file exports about14Demo alongside the block: the exact props behind the preview above. Spread it to get a working section in one line.

tsx
import { About14, about14Demo } from "@/components/beste/block/about14";

export default function Page() {
  return <About14 {...about14Demo} />;
}

Then replace the demo with your own props. Written out, a trimmed setup looks like this:

tsx
import { About14 } from "@/components/beste/block/about14";

export default function Page() {
  return (
    <About14
      badge={{ label: "About", variant: "secondary" }}
      heading="We help teams ship faster"
      description="A design infrastructure company on a mission to make the web more beautiful."
      body="Founded in 2020, we set out to give developers a head start on the interfaces they rebuild every project."
      image={{ src: "https://images.unsplash.com/photo-1688024390346-3f6de72f3d45?w=800&h=1000&fit=crop", alt: "Our office" }}
      stats={[
        { title: "Revenue Growth", value: "3x" },
        { title: "Active Users", value: "80K+" },
        { title: "Uptime", value: "99.9%" },
        { title: "Enterprise Clients", value: "40+" },
      ]}
      buttons={[{ label: "Get Started", href: "https://beste.co" }]}
    />
  );
}

Props

PropTypeDefaultDescription
badge{ label: string; variant?: "default" | "secondary" | "outline" }Small label inside the story card
headingstringHeading inside the story card
descriptionstringIntro text inside the story card
bodystringLonger paragraph rendered under the description
image{ src: string; alt: string }Portrait photo in the left column
statsStatItem[][]Numbers rendered in the bar above the two-column layout
buttonsButtonItem[][]CTAs at the bottom of the story card
classNamestringExtra classes for the outer <section>
ts
type StatItem = { title: string; value: string };

type ButtonItem = {
  label: string;
  href?: string;
  variant?: "default" | "secondary" | "outline" | "ghost" | "link" | "destructive";
};

Behavior notes

  • The stats bar always renders as grid-cols-2 sm:grid-cols-3 lg:grid-cols-6, a fixed six-column track at desktop width regardless of how many stats entries are passed; six items line up evenly, other counts leave gaps or wrap into a second row.
  • The image/story split uses lg:grid-cols-[1fr_2fr], so the story card is twice as wide as the image column on desktop.
  • The image container is aspect-[3/4] on mobile but switches to lg:aspect-auto at desktop width, which lets it stretch to match the story card's height via the grid's default row-stretch behavior instead of keeping a fixed ratio.
  • The story card is the only element with a background fill (bg-muted/50) in this block; the stats bar and image sit directly on the page background.

More About blocks

View all About
PRO

about23

Story, Image & Team Row

Two-column layout with company story, stats, and leadership quote on the left, team photo and avatar row on the right.

PRO

about5

Image & Text Split

Side-by-side layout with a tall image on the left and company story, inline stats, and CTAs on the right.

PRO

about66

About with Stats Grid

Two-column about with a tall image on one side and an eyebrow, heading, description, and 2x2 stats grid on the other.

PRO

about24

Company Heritage & Features

Company story with image, border-accented feature highlights, and stats row. Great for craft, heritage, and product-focused brands.

PRO

about3

Timeline & Milestones

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.

PRO

about21

Checklist & Image Split

Two-column layout with checklist highlights on the left, featured image and testimonial quote on the right, plus a full-width stats row.