Staaarter

How We Think

A sticky studio intro with a portrait beside a stack of numbered principles. The left column stays pinned while a longer right-column principle list scrolls past it on large screens.

By Staaarter Team
Agency
Docs
Live preview

Docs

Installation

A real shadcn registry command, not a copy-paste stand-in: it fetches this block plus its media-slot dependencies and any missing npm packages, and installs them straight into your project.

npx shadcn add https://staaarter.com/r/how-we-think.json

Prefer not to use the CLI? Copy the source from the Code toggle above into src/components/blocks/agency/agency13.tsx instead.

Usage

The file also exports agency13Demo, the exact props behind the preview above. Spread it to get a working section in one line, then replace it with your own data.

import { Agency13, agency13Demo } from "@/components/blocks/agency/agency13";

export default function Page() {
  return <Agency13 {...agency13Demo} />;
}

Props

PropTypeDefaultDescription
portraitMediaSlotImagenonePortrait photo shown in the left column at a 3:4 aspect ratio.
headingstringnoneShort intro heading beneath the portrait.
descriptionstringnoneShort intro paragraph beneath the heading.
principlesPrinciple[]noneNumbered list rendered in the right column, in array order.
classNamestringnoneExtra classes for the outer section element.

Types

type Principle = {
  title: string;
  description: string;
};

Behavior notes

  • The left column uses a real CSS `position: sticky` (lg:sticky lg:top-24), not JavaScript, so it works in a plain Server Component; it only takes effect once the right column's content is taller than the viewport at lg breakpoints and above.
  • Numbers in the principle list are derived from the array index (zero-padded to two digits), reusing the same pattern as About6, so reordering the array changes the displayed numbers automatically.
  • Columns stack vertically with no sticky behavior below the lg breakpoint.