Industry Portrait Tiles

(Fields we know)

Four industries where we already know the questions.

Not because we are specialists, but because we have been wrong in each of them at least twice.

Stacked print publications on a table

Publishing

Catalogues, journals and the reading order that decides whether any of it gets finished.

Nine titles, four presses

See publishing work
Pared-back retail interior with monochrome shelving

Retail

Rooms, shelves and packaging that has to survive fluorescent light and a busy Saturday.

Eighteen rooms opened

See retail work
Audio hardware on a calibration bench

Hardware

Objects whose interface is one dial, and the words that have to make the dial obvious.

Three products shipped

See hardware work
Architectural wayfinding signage in a public building

Civic

Buildings where people arrive lost and the design has thirty seconds to fix that.

Nine buildings signed

See civic work
About this block

Industry Portrait TilesPRO

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.

Usecase46: Industry Portrait Tiles

Four industries as tall portrait tiles: a photograph, the sector, what the work involves, and a ruled foot carrying the proof line with its own link. No section CTA, so the tiles are the only way out.

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

Base UI flavor

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

This installs the block to components/beste/block/usecase46.tsx plus the badge7 eyebrow it uses.

Quick start

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

tsx
import { Usecase46, usecase46Demo } from "@/components/beste/block/usecase46";

export default function Page() {
  return <Usecase46 {...usecase46Demo} />;
}

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

tsx
import { Usecase46 } from "@/components/beste/block/usecase46";

export default function Page() {
  return (
    <Usecase46
      badge={{ label: "Fields we know" }}
      heading="Four industries where we already know the questions."
      description="Not because we are specialists, but because we have been wrong in each of them."
      sectors={[
        {
          src: "/sectors/publishing.jpg",
          alt: "Stacked print publications",
          sector: "Publishing",
          description: "Catalogues, journals and the reading order that decides the rest.",
          proof: "Nine titles, four presses",
          href: "/work/publishing",
          linkLabel: "See publishing work",
        },
        {
          src: "/sectors/retail.jpg",
          alt: "Retail interior with monochrome shelving",
          sector: "Retail",
          description: "Rooms, shelves and packaging that has to survive a busy Saturday.",
          proof: "Eighteen rooms opened",
          href: "/work/retail",
          linkLabel: "See retail work",
        },
      ]}
    />
  );
}

Props

PropTypeDefaultDescription
badge{ label: string }–Eyebrow label rendered as a Badge7
headingstring–Section heading in the left header column
descriptionstring–Supporting paragraph in the right header column
sectorsSectorTile[][]Industry tiles, rendered in order
classNamestring–Extra classes for the outer <section>
ts
type SectorTile = {
  src: string;
  alt: string;
  sector: string;
  description: string;
  proof: string;
  href: string;
  linkLabel: string;
};

Behavior notes

  • Each tile is flex flex-col with the ruled foot on mt-auto, so the proof line and its link stay level across the row however long the descriptions run.
  • Every sector carries its own href and linkLabel, so the section needs no shared CTA at the bottom and each industry can point somewhere different.
  • Links are underlined text rather than buttons, which keeps four of them in one row from reading as four competing calls to action.
  • Photographs sit above the copy in a aspect-[4/5] portrait frame with no hover treatment: the picture is content, not an affordance.
  • The grid steps one, two then four columns (sm:grid-cols-2 lg:grid-cols-4), so a four-sector set stays a two-by-two block on a tablet instead of squeezing.
  • Row gaps are larger than column gaps (gap-x-6 gap-y-12), so stacked tiles stay separated when the grid wraps.
  • The header is md:items-end, so the supporting paragraph sits on the heading's baseline rather than beside its first line.

More Use Case blocks

View all Use Case
PRO

usecase52

Placement Mosaic Grid

PRO

usecase58

Linked Setting Tiles

FREE

usecase4

Industry Solutions Grid

Get Pro access