Chaptered About

Polaris studio team reviewing printed work on a long table
The Studio

Polaris is a creative studio that builds brands worth remembering.

Ch. 01

We started with one stubborn belief

Good design is never decoration. Back in 2014 we left agency desks because the best ideas kept dying in committee. Polaris began as three people, one rented room, and a promise to ship work we would actually sign.

Ch. 02

Strategy before a single pixel

Every engagement opens with weeks of listening — to founders, to customers, to the quiet contradictions inside a category. The brand platform we write becomes the spine that every headline, color, and motion choice answers to.

Ch. 03

Craft is the part nobody can fake

We obsess over kerning at 2am and argue about easing curves like they matter, because they do. From identity systems to product interfaces, the difference between fine and unforgettable lives in the last ten percent.

Ch. 04

Built to outlast the launch

A rebrand is not a finish line. We hand over living systems — tokens, components, and playbooks — so the teams we partner with can grow the work for years without us in the room.

Start a Chapter With Us
About this block

Chaptered AboutPRO

A pinned studio image beside a numbered, chaptered about story.

About50: Chaptered About

A sticky, pinned portrait on the left runs alongside a heading and a numbered, chaptered story on the right, each chapter labeled "Ch. 01", "Ch. 02" and so on, separated by top borders.

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

Base UI flavor

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

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

Quick start

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

tsx
import { About50, about50Demo } from "@/components/beste/block/about50";

export default function AboutPage() {
  return <About50 {...about50Demo} />;
}

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

tsx
import { About50 } from "@/components/beste/block/about50";

export default function AboutPage() {
  return (
    <About50
      label="The company"
      heading="We build products <strong>worth remembering</strong>."
      image={{
        src: "https://images.unsplash.com/photo-1522071820081-009f0129c71c?w=800&h=1067&fit=crop",
        alt: "Team reviewing printed work on a long table",
      }}
      chapters={[
        {
          title: "We started with one stubborn belief",
          body: "Good design is never decoration. We left our old jobs to build something better.",
        },
        {
          title: "Strategy before a single pixel",
          body: "Every engagement opens with weeks of listening, to founders and to customers.",
        },
      ]}
      button={{ label: "Start a chapter with us", href: "https://beste.co" }}
    />
  );
}

Props

PropTypeDefaultDescription
labelstringEyebrow badge text above the heading
headingstringStatement heading; supports inline <strong> for primary-colored highlights
imageImageItemPinned portrait in the left column
chaptersChapter[][]Ordered story chapters rendered below the heading
buttonActionLinkCTA rendered as a Button1 after the chapters
classNamestringExtra classes for the outer <section>
ts
type ImageItem = { src: string; alt: string };
type Chapter = { title: string; body: string };
type ActionLink = { label: string; href: string };

Behavior notes

  • The image column uses lg:sticky lg:top-24 lg:self-start on an aspect-[3/4] frame, so on desktop it stays pinned in view while the chapters column scrolls past it; below lg the two columns stack in source order with no sticky behavior.
  • Each chapter's index is generated from its array position (padStart(2, "0")) and rendered as "Ch. 01", "Ch. 02", and so on; there is no id/number field on the Chapter type to override this numbering.
  • Chapters are separated by a border-t with first:mt-0 first:border-t-0 first:pt-0, so the first chapter has no leading divider or top margin while every later one does.
  • The CTA button sits after the full chapter list, not beside the heading, so it always reads as the section's closing action regardless of how many chapters are passed.

More About blocks

View all About
PRO

about53

Pinned Photos About

About with two subtly rotated, captioned studio photos clustered beside the statement.

PRO

about39

Numeral About

About anchored by an oversized numeral with a paragraph and a horizontal image strip.

PRO

about63

Studio Story Split

Image-led about split with a tall portrait, an offset statement heading, supporting copy, mono studio facts, and a seal CTA.

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

about41

Story Rail About

Sticky eyebrow rail beside a story column and an offset captioned image.

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.