Image Topped Discipline Cards

(The four rooms)

Everything we make falls into one of these.

Four disciplines, photographed at the point where each one stops being a file and starts being an object.

Large printed letterforms laid out as a type specimen

Letterforms

Commissioned type and the licensing that keeps it usable.

Four typefaces drawn since 2019

Unbranded paper packaging in soft daylight

Packaging

Structure, artwork and the die lines a producer will accept.

Eleven ranges in production

Architectural wayfinding signage in a public building

Signage

Systems for buildings, drawn to survive a change of tenant.

Nine buildings, fourteen hundred signs

Studio monitor showing a website layout in progress

Screens

Pages and components your own team can extend without us.

Six systems handed over

About this block

Image Topped Discipline CardsPRO

Four soft cards each opening with a full-bleed photograph, then a display title, one explanatory sentence and a ruled tally line pinned to the bottom of the card.

Feature249: Image Topped Discipline Cards

Four soft cards, each opening with a photograph and closing on a ruled fact line, under a two-column header. The pill CTA sits under the row, so the whole section reads as one catalogue page.

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

Base UI flavor

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

This installs the block to components/beste/block/feature249.tsx plus the badge7 eyebrow and button12 pill button it uses.

Quick start

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

tsx
import { Feature249, feature249Demo } from "@/components/beste/block/feature249";

export default function Page() {
  return <Feature249 {...feature249Demo} />;
}

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

tsx
import { Feature249 } from "@/components/beste/block/feature249";

export default function Page() {
  return (
    <Feature249
      badge={{ label: "The four rooms" }}
      heading="Everything we make falls into one of these."
      description="Four disciplines, photographed where each stops being a file."
      cards={[
        {
          src: "/disciplines/type.jpg",
          alt: "Printed letterforms",
          title: "Letterforms",
          description: "Commissioned type and the licensing that keeps it usable.",
          meta: "Four typefaces drawn since 2019",
        },
        {
          src: "/disciplines/packaging.jpg",
          alt: "Unbranded paper packaging",
          title: "Packaging",
          description: "Structure, artwork and die lines a producer will accept.",
          meta: "Eleven ranges in production",
        },
      ]}
      button={{ label: "Commission one of these", href: "/contact" }}
    />
  );
}

Props

PropTypeDefaultDescription
badge{ label: string }Eyebrow label rendered as a Badge7
headingstringSection heading in the left header column
descriptionstringSupporting paragraph in the right header column
cardsFeatureCard[][]Discipline cards, rendered in order
buttonActionButtonPill CTA under the row, rendered as Button12
classNamestringExtra classes for the outer <section>
ts
type FeatureCard = {
  src: string;
  alt: string;
  title: string;
  description: string;
  meta: string;
};

type ActionButton = {
  label: string;
  href: string;
};

Behavior notes

  • Cards are flex flex-col with the meta line on mt-auto, so the ruled fact stays flush with the bottom of every card even when one description runs two lines longer than the rest.
  • That closing rule is border-current/10 rather than the default border token, which keeps it a shade of the card's own surface instead of a hard line across it.
  • The image sits inside the card's overflow-hidden rounded-md, so the picture inherits the card's top corners without a second radius.
  • Photographs hold aspect-[4/3] at every width and carry no hover treatment, which is deliberate: the pictures are content here, not affordances.
  • The grid steps from one column to sm:grid-cols-2 and then lg:grid-cols-4, so a four-card set stays a two-by-two block on a tablet instead of squeezing into four narrow columns.
  • The header is md:items-end, so the supporting paragraph sits on the heading's baseline rather than beside its first line.
  • The CTA is in a flex wrapper under the row, which keeps the pill at its natural width and left-aligned with the grid.

More Feature blocks

View all Feature
PRO

feature311

Linked Photo Cards

Three bordered cards, each one a whole link with a photograph drifting across its top, a quiet category line, a serif title, an excerpt and an arrow pinned to the foot of the card.

PRO

feature251

Deliverable Cards With Media

Three soft cards, each floating its own media piece over a dotted field before an eyebrow, a title, an explanation and a ruled delivery note, laid out as a plain grid with no horizontal scrolling.

FREE

feature195

Four Cards With Centered Icon

Four equal feature cards on a clean background, each with a large circular icon badge above a bold h3 title. Ideal for outlining the steps or pillars of a service offering.

PRO

feature307

Linked Figure Cards

Four hairline cards, each a whole link that leads with a large serif figure and an optional unit, then a title, a line of context and an arrow that lifts on hover.

PRO

feature185

Image Feature Cards Grid over Media

Three-column image feature cards grid with sticky header over background media and glass-morphism styling

PRO

feature243

Compact Asset Cards

A feature with an eyebrow over a hairline rule, a two-column heading, and three bordered cards that each float a compact live micro-asset above a title and description.