Staaarter

Values with Team Photo

Full-width team photo with a three-column values grid below. Great for culture pages and brand storytelling.

By Staaarter Team
About
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/values-with-team-photo.json

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

Usage

The file also exports about2Demo, 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 { About2, about2Demo } from "@/components/blocks/about/about2";

export default function Page() {
  return <About2 {...about2Demo} />;
}

Props

PropTypeDefaultDescription
headingstringnoneSection heading.
descriptionstringundefinedSection intro text.
photo{ src: string; alt: string }undefinedPhoto above the values grid; renders a placeholder when omitted.
valuesValueItem[]noneValue cards, each with an icon, title, and description.
classNamestringnoneExtra classes for the outer section element.

Types

type ValueItem = {
  icon: LucideIcon;
  title: string;
  description: string;
};

Behavior notes

  • The photo slot always renders at a fixed 21:9 aspect ratio; without a photo prop it shows a neutral gradient placeholder instead of collapsing, so the layout never jumps once a real photo is added.
  • icon is a LucideIcon component reference (e.g. ShieldCheck imported from lucide-react), not a string name or a rendered element; the component does const Icon = value.icon internally, so callers pass the icon component itself.
  • values renders in a fixed 3-column grid on small screens and up; it does not reflow for counts other than 3.