Checklist & Image Split

Why Us

What sets us apart

We are not just another component library. Here is why teams choose us over building from scratch.

We have spent years refining our approach to component design. Every block in our library is built with accessibility, performance, and developer experience as first-class priorities — not afterthoughts.

  • Production-ready out of the box
  • WCAG 2.1 AA compliant by default
  • Full TypeScript support with strict types
  • Works with any React framework
  • Active community with weekly updates
  • No vendor lock-in — you own the code
Dashboard interface
Switching to this library cut our development time in half. We shipped our entire design system in three weeks instead of three months.
AR

Alex Rivera

VP of Engineering, Acme Corp

About this block

Checklist & Image SplitPRO

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

About21: Checklist & Image Split

A two-column layout: the left column carries the badge, heading, description, body copy, a checklist of differentiators, and CTA buttons, while the right column stacks a featured image over a testimonial quote card. Built for a "why choose us" section that argues its case with a scannable checklist backed by a customer quote.

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/about21?email=YOUR_EMAIL&license_key=YOUR_KEY"

Base UI flavor

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

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

Quick start

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

tsx
import { About21, about21Demo } from "@/components/beste/block/about21";

export default function Page() {
  return <About21 {...about21Demo} />;
}

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

tsx
import { About21 } from "@/components/beste/block/about21";

export default function Page() {
  return (
    <About21
      badge={{ label: "Why Us", variant: "secondary" }}
      heading="What sets us apart"
      description="Here is why teams choose us over building from scratch."
      body="Every block in our library is built with accessibility and performance as first-class priorities."
      highlights={[
        { text: "Production-ready out of the box" },
        { text: "WCAG 2.1 AA compliant by default" },
        { text: "Full TypeScript support" },
        { text: "No vendor lock-in" },
      ]}
      image={{ src: "https://images.unsplash.com/photo-1771777400683-8614965bfce5?w=800&h=600&fit=crop", alt: "Dashboard interface" }}
      quote={{
        text: "Switching to this library cut our development time in half.",
        author: "Alex Rivera",
        role: "VP of Engineering, Acme Corp",
        avatar: { src: "https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?w=100&h=100&fit=crop", alt: "Alex Rivera" },
      }}
      buttons={[{ label: "Get Started", href: "https://beste.co" }]}
    />
  );
}

Props

PropTypeDefaultDescription
badge{ label: string; variant?: "default" | "secondary" | "outline" }Small label in the left column
headingstringHeading in the left column
descriptionstringIntro text in the left column
bodystringSupporting paragraph under description
highlightsHighlightItem[][]Checklist items under body
image{ src: string; alt: string }Featured image at the top of the right column
quote{ text: string; author: string; role: string; avatar?: { src: string; alt: string } }Testimonial card under the image
buttonsButtonItem[][]CTAs at the bottom of the left column
classNamestringExtra classes for the outer <section>
ts
type HighlightItem = { text: string };

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

Behavior notes

  • Unlike most sibling About blocks, the badge/heading/description are not wrapped in a standalone centered header block; they render directly inside the left grid column, left-aligned alongside the checklist and buttons.
  • Each checklist row uses a small Check icon inside a bg-primary/10 circle rather than a bullet, giving the list a completed-task look regardless of any real completion state.
  • The right column stacks the image and quote card vertically with space-y-6; there is no side-by-side variant for those two elements.
  • The image is a fixed aspect-[4/3] box; there is no portrait or panoramic option.
  • highlights has no icon or LucideIcon field per item: every row shares the same Check glyph, so differentiating checklist entries visually is not supported.

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

about13

Company Profile

Asymmetric layout with company story and image on the left, and a vertical list of company details on the right. Great for press and investor pages.

PRO

about32

Two Image Layout

Centered heading with description, followed by two images side-by-side. Configurable image ratio (equal, left larger, right larger). Always horizontal on mobile.

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

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.