Life At The Studio

A captioned masonry photo wall of studio life with an intro and a roles CTA.

PRO

Careers45: Life At The Studio

A careers "life at the studio" section that renders an eyebrow badge, a <strong>-aware heading, a lead paragraph, a CSS-column masonry wall of captioned photos with a hover zoom and a bottom gradient overlay, and a bordered closing row pairing a CTA line with a Button1 link to open roles.

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.

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

Base UI flavor

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

This installs the block to components/beste/block/careers45.tsx.

Quick start

The installed file exports careers45Demo alongside the block: the exact props behind the preview above. Spread it to get a working studio photo wall in one line.

tsx
import { Careers45, careers45Demo } from "@/components/beste/block/careers45";

export default function Page() {
  return <Careers45 {...careers45Demo} />;
}

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

tsx
import { Careers45 } from "@/components/beste/block/careers45";

export default function Page() {
  return (
    <Careers45
      label="Life at the studio"
      heading="Work we <strong>actually care about.</strong>"
      lead="One floor, fourteen people, and a wall that never stops filling up."
      moments={[
        {
          src: "https://example.com/floor.jpg",
          alt: "Studio floor with designers at shared tables",
          caption: "The studio floor, mid-afternoon",
          aspect: "aspect-[4/5]",
        },
        {
          src: "https://example.com/critique.jpg",
          alt: "Team gathered around a whiteboard",
          caption: "Friday critique, no slides allowed",
          aspect: "aspect-[4/3]",
        },
      ]}
      ctaText="Like the look of it?"
      button={{ label: "See open roles", href: "/careers" }}
    />
  );
}

Props

PropTypeDefaultDescription
labelstringEyebrow text rendered through Badge6; omitted when falsy
headingstringSection heading, supports inline <strong>
leadstringIntro paragraph under the heading
momentsMoment[][]Photos rendered as masonry figures
ctaTextstringCopy line in the closing CTA row
buttonActionLinkLink fed into the Button1 CTA
classNamestringExtra classes for the outer <section>
ts
type Moment = {
  src: string;
  alt: string;
  caption: string;
  // Tailwind aspect class, e.g. "aspect-[4/5]", varies the masonry rhythm
  aspect: string;
};

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

Behavior notes

More Careers blocks

View all Careers
PRO

careers42

Studio Culture

Culture statement and tenets beside a three-image studio-life collage.

PRO

careers50

Careers Gallery Header

Centered careers intro with eyebrow, highlighted heading and supporting copy above a three-image gallery — one wide frame beside two portraits.

PRO

careers40

Open Roles

A studio jobs list with role meta, salary and apply arrows.

PRO

careers8

Job Detail Page

Single job posting detail with responsibilities, requirements, nice-to-haves, and apply CTA. Full position description layout.

PRO

careers14

Meet the Team Gallery

Team member photo grid with names and roles. Square portrait layout for showcasing leadership and team composition.

PRO

careers48

Join The Studio

Sticky employer-value intro beside a scrollable open-roles list.