Four Parts About

About Polaris

We are a creative studio that builds brands worth believing in — no filler, no fluff.

01Who

A tight crew of designers, writers, and engineers who would rather ship something honest than something safe.

02What

Identity systems, editorial sites, and product interfaces — built to feel inevitable and last for years.

03How

Small teams, short loops, real prototypes. We make the work, test it in the open, and sharpen it together.

04Why

Because most brands sound the same. We exist to give the good ones a voice that actually carries.

Mara Quill

Founder & Creative Director

Start a Project
About this block

Four Parts AboutPRO

A type-led about with an oversized statement and a four-part Who/What/How/Why grid.

About55: Four Parts About

Type-led about section with no imagery: an oversized statement heading sits above a four-part Who/What/How/Why style grid, each entry auto-numbered from its position in the array, closing with an optional signature and CTA row.

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

Base UI flavor

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

This installs the block to components/beste/block/about55.tsx, the badge6 component it uses for the eyebrow label, the button1 component it uses for the CTA, and its dependencies.

Quick start

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

tsx
import { About55, about55Demo } from "@/components/beste/block/about55";

export default function Page() {
  return <About55 {...about55Demo} />;
}

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

tsx
import { About55 } from "@/components/beste/block/about55";

export default function Page() {
  return (
    <About55
      label="About Polaris"
      heading="We are a creative studio that builds <strong>brands worth believing in.</strong>"
      parts={[
        { label: "Who", body: "A tight crew of designers, writers, and engineers." },
        { label: "What", body: "Identity systems, editorial sites, and product interfaces." },
        { label: "How", body: "Small teams, short loops, real prototypes." },
        { label: "Why", body: "Because most brands sound the same." },
      ]}
      signature={{ name: "Mara Quill", role: "Founder & Creative Director" }}
      button={{ label: "Start a Project", href: "/contact" }}
    />
  );
}

Props

PropTypeDefaultDescription
labelstringEyebrow text rendered in a Badge6
headingstringOversized statement heading; supports inline HTML (<strong>, entities)
partsPartItem[][]Four-part grid entries, auto-numbered by array position
signatureSignatureOptional name/role pair in the footer row
buttonActionLinkOptional CTA rendered as a Button1 with an arrow icon in the footer row
classNamestringExtra classes for the outer <section>
ts
type PartItem = { label: string; body: string };
type Signature = { name: string; role: string };
type ActionLink = { label: string; href: string };

Behavior notes

  • Each parts entry's number (01, 02, 03, 04) is generated from its array index (String(index + 1).padStart(2, "0")), not a prop; reordering the array reorders the numbers automatically.
  • Both the section heading and each part's body render through dangerouslySetInnerHTML, so both accept inline HTML: the demo uses <strong> in the heading and HTML entities (&mdash;) in a couple of body strings.
  • The grid is fixed at md:grid-cols-4 and does not adapt column count to parts.length; passing fewer or more than four entries changes row wrapping rather than column width.
  • The footer row (signature and button) only renders its wrapper when at least one of the two is present, and each half renders independently if the other is omitted.
  • There is no image or media slot anywhere in this component; it is a purely typographic layout.

More About blocks

View all About
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

about47

Split Panel About

A hard light/dark split about panel: dark statement side and a light image-and-facts side.

PRO

about8

Stats with Descriptions

Four-column stats grid with large numbers, titles, and supporting descriptions. Perfect for impact and results sections.

PRO

about60

Team Member Grid

Team section with an eyebrow, big heading, description and CTA above a responsive grid of people cards (portrait image, name, role).

PRO

about34

About Stats Grid

About section: eyebrow label, two-tone heading, two portraits beside a 2x2 stats grid.

PRO

about82

Band and Figures

An about section built around a wide photograph that drifts inside its frame: a serif heading that settles in word by word above it, then an intro with a sliding-marker pill beside four ruled serif figures that count up as they arrive.