Staaarter

Kitchen Team Grid

Team member cards with portrait photos, roles, experience badges, and hover image zoom. Perfect for staff introductions and restaurant about pages.

By Staaarter Team
Food
Docs
Live preview

Docs

Installation

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

npx shadcn add https://staaarter.com/r/kitchen-team-grid.json

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

Usage

The file also exports food25Demo, 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 { Food25, food25Demo } from "@/components/blocks/food/food25";

export default function Page() {
  return <Food25 {...food25Demo} />;
}

Props

PropTypeDefaultDescription
headingReactNodenoneSection heading.
descriptionstringundefinedSection intro text.
membersTeamMember[]noneTeam member cards rendered in a responsive 2/3-column grid.
classNamestringnoneExtra classes for the outer section element.

Types

type TeamMember = {
  name: string;
  role: string;
  experience: string;
  photo?: MediaSlotImage;
};

Behavior notes

  • The hover zoom on each portrait is pure CSS (`hover:scale-110` with a `transition-transform` on the MediaSlot image, clipped by the card's `overflow-hidden` wrapper) - no JavaScript, so this stays a plain server component.
  • experience renders as an outline badge next to the member's name and role; it is a plain display string (e.g. "12 yrs"), not a computed value.
  • Photos use MediaSlot and fall back to a placeholder gradient when a member's photo is omitted.