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
headingstring–Heading in the left column
descriptionstring–Intro text in the left column
bodystring–Supporting 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
classNamestring–Extra 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

PRO

about5

Image & Text Split

PRO

about13

Company Profile

Get Pro access