Three Values

What we stand for

Threethingswewillnottradeaway.

They are written on nothing but the way we work. If you notice one missing, tell us.

How this shows up in a session

Time over speed

We would rather take a season than force a week. A breakthrough that arrives on schedule is usually a performance.

Honesty over comfort

Gently, and only when you ask, we say what we think. Neutral nodding is not the same as care.

Small over big

Three practitioners, one address. We will not grow faster than the listening can keep up.

About this block

Three ValuesPRO

A values section: a serif heading that settles in word by word beside the intro and a pill action, then three soft muted cards with a round icon, a serif title and a description that rise into view in turn.

About81: Three Values

Three values as cards: a wide heading and a short intro over a row of soft panels, each opening on a circled icon above a serif title and a paragraph of what the value actually costs to keep.

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

Base UI flavor

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

This installs the block to components/beste/block/about81.tsx plus the button22 sliding-marker pill and the text1 word stagger it uses.

Quick start

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

tsx
import { About81, about81Demo } from "@/components/beste/block/about81";

export default function Page() {
  return <About81 {...about81Demo} />;
}

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

tsx
import { About81 } from "@/components/beste/block/about81";

export default function Page() {
  return (
    <About81
      eyebrow="What we stand for"
      heading="Three things we will not trade away."
      description="They are written on nothing but the way we work."
      button={{ label: "How this shows up in a session", href: "/method", tone: "outline" }}
      values={[
        { icon: Hourglass, title: "Time over speed", description: "We would rather take a season than force a week." },
        { icon: Scale, title: "Honesty over comfort", description: "Gently, and only when you ask, we say what we think." },
        { icon: Leaf, title: "Small over big", description: "Three practitioners, one address, and no plans to scale." },
      ]}
    />
  );
}

Props

PropTypeDefaultDescription
eyebrowstringSmall-caps line above the heading
headingstringSection heading, rendered as an h2 through Text1
descriptionstringShort intro in the narrow right column
buttonActionButtonPill action under the intro
valuesValue[][]Value cards, three across from md
classNamestringExtra classes for the outer <section>
ts
type Value = {
  icon: LucideIcon;
  title: string;
  description: string;
};

type ActionButton = {
  label: string;
  href: string;
  tone?: "primary" | "light" | "dark" | "outline";
};

Behavior notes

  • icon takes the Lucide component itself, not a name string, so the icons are tree-shaken with the rest of your bundle and there is no icon map to keep in sync. Import what you need from lucide-react and pass it through.
  • The icon sits in a size-12 circle filled with bg-background on a bg-muted card, so the mark reads as a hole punched in the panel rather than a badge stuck onto it. That inversion is why the card surface is a solid fill and not a tinted one.
  • Cards enter with a 0.12s stagger by index, so a three-up row resolves left to right instead of appearing as one slab.
  • Value titles are h3 under the section h2, keeping the outline correct when this block sits inside a longer about page.
  • The heading and the intro sit in one 12-column grid with the intro pushed to md:col-start-9, so the two columns stay apart at wide widths instead of the intro drifting under the heading.
  • Nothing in the cards is interactive: there is no hover state and no link, and button is the only clickable element in the section.

More About blocks

View all About
PRO

about16

Vision Mission Values

Three-column cards for vision, mission, and values with labeled headers. Clean editorial layout for company positioning.

PRO

about75

Practitioner Portraits

A team section: a serif heading that settles in word by word beside the intro and a pill action, then three portrait photographs that drift inside their frames as the page scrolls, each with a serif name, a small-caps role and a short bio.

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.

PRO

about34

About Stats Grid

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

PRO

about57

Values And Mission Statement

Two centered statements on a dark surface, each with an accent heading, an uppercase paragraph, and a small label beneath.

PRO

about61

Belief Statement Values

Two-column about section with a sticky eyebrow and big heading on the left and a long belief paragraph above a border-separated values list on the right.