Stacked Photo Bands

(Three situations)

Full-width, because these are full-width problems.

Each band below is a job that started small and turned into the reason the whole system had to exist.

Pared-back retail interior with monochrome shelving
(Opening week)

Everything printed, delivered and on the wall in nine days

A lease signed earlier than planned and a room that had to look finished before anyone had chosen a chair.

Open print publication with a clean two-column layout
(Annual report)

Two hundred pages that people actually read to the end

Data, photography and a reading order argued out before a single page was designed.

68%

Reached the final section

See the report
Architectural wayfinding signage in a public building
(Building handover)

A signage kit the facilities team could run themselves

Eleven components, one short guide, and no phone call to the studio every time a tenant moves.

1,400

Signs installed since

See the kit
About this block

Stacked Photo BandsPRO

Three tall photographic bands stacked full width, each carrying an eyebrow, display title, explanation, one outcome figure and its own outline pill link over a tinted scrim; the three-column foot only forms from lg up so the sentence keeps its measure on a tablet.

Usecase48: Stacked Photo Bands

Three full-width photographic bands, each carrying its own eyebrow, statement, story, figure and outline CTA on a rule inside the picture. Every band is one complete case.

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

Base UI flavor

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

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

Quick start

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

tsx
import { Usecase48, usecase48Demo } from "@/components/beste/block/usecase48";

export default function Page() {
  return <Usecase48 {...usecase48Demo} />;
}

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

tsx
import { Usecase48 } from "@/components/beste/block/usecase48";

export default function Page() {
  return (
    <Usecase48
      badge={{ label: "Three situations" }}
      heading="Full-width, because these are full-width problems."
      description="Each band is a job that turned into the reason the system had to exist."
      bands={[
        {
          eyebrow: "Opening week",
          title: "Everything printed, delivered and on the wall in nine days",
          description: "A lease signed earlier than planned and a room that had to look finished.",
          figure: "9 days",
          figureTitle: "Brief to opening",
          buttonLabel: "Read what shipped",
          href: "/work/opening",
          src: "/bands/retail.jpg",
          alt: "Retail interior with monochrome shelving",
        },
        {
          eyebrow: "Annual report",
          title: "Two hundred pages that people actually read to the end",
          description: "Data, photography and a reading order argued out first.",
          figure: "68%",
          figureTitle: "Reached the final section",
          buttonLabel: "See the report",
          href: "/work/report",
          src: "/bands/report.jpg",
          alt: "Open print publication",
        },
      ]}
    />
  );
}

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
bandsBandScenario[][]Photographic bands, rendered top to bottom
classNamestringExtra classes for the outer <section>
ts
type BandScenario = {
  eyebrow: string;
  title: string;
  description: string;
  figure: string;
  figureTitle: string;
  buttonLabel: string;
  href: string;
  src: string;
  alt: string;
};

Behavior notes

  • The foot of each band only becomes three columns from lg up. At tablet width the sentence would be squeezed into a four-word column, so the figure and the CTA share a row underneath it instead, using lg:contents to dissolve their wrapper when the wide layout takes over.
  • Each band carries its own CTA inside the picture, so the section needs no shared button at the bottom and every case can point somewhere different.
  • A flat bg-foreground/65 wash covers the whole photograph rather than a gradient, because content runs from the eyebrow down to the figure and needs even contrast the whole way.
  • Text tokens inside a band are fixed background shades and the Badge7 is passed className="text-background/70", correct for a surface that is a dark photograph in both themes.
  • The rule under the statement is border-background/30, a shade of the copy colour rather than the theme border token, so it belongs to the picture.
  • Bands hold min-h-[420px] growing to md:min-h-[480px] and are justify-end, so the copy stays anchored to the foot however tall the band gets.
  • The CTA carries shrink-0, so a long button label keeps its width instead of being compressed by the figure beside it.

More Use Case blocks

View all Use Case
PRO

usecase49

Audience Tabs With Photo

Pill tabs for each audience swap a split panel holding a tall photograph beside a title, summary and ruled list of what that audience actually gets.

PRO

usecase45

Alternating Scenario Rows

Three use cases as image and text rows, each numbered and carrying a story, two ruled outcome figures and its own outline pill link; pictures stay top-aligned and the side only alternates from lg, so a tablet keeps every image at the top left.

PRO

usecase51

Two Route Photo Columns

Two picture-led routes side by side, each with an eyebrow, title, dotted-rule expectations list and its own pill CTA, separated on desktop by a small pill divider sitting between the columns.

PRO

usecase58

Linked Setting Tiles

Six photographic tiles in a three-column grid, every one a whole link: the photograph drifts behind a gradient carrying a meta line, a serif title, a sentence of context and an arrow that lifts on hover.

PRO

usecase53

Single Case Photo Story

One client story told in three photographed steps, opening with the client name on a ruled block beside the heading and closing with three oversized outcome figures.

PRO

usecase46

Industry Portrait Tiles

Four tall image tiles, one per industry, each followed by an explanation and a ruled foot pairing a proof line with a plain link into that sector's work.