Staaarter

Chef's Specials Feature

Alternating layout showcasing dishes with large images, chef's notes as blockquotes, and pricing. Perfect for highlighting signature items and chef recommendations.

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 media-slot dependencies and any missing npm packages, and installs them straight into your project.

npx shadcn add https://staaarter.com/r/chefs-specials-feature.json

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

Usage

The file also exports food8Demo, 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 { Food8, food8Demo } from "@/components/blocks/food/food8";

export default function Page() {
  return <Food8 {...food8Demo} />;
}

Props

PropTypeDefaultDescription
headingReactNode"Chef's Specials"Section heading.
descriptionstringnoneSection intro text below the heading.
dishesDish[][]Featured dishes, each rendered as an image/notes row that alternates sides by array position.
classNamestringnoneExtra classes for the outer section element.

Types

type Dish = {
  name: string;
  price: string;
  note: string;
  chefName?: string;
  photo?: { src: string; alt: string };
};

Behavior notes

  • Each dish's image and text column swap sides on alternating rows (even index: image left, odd index: image right) using lg:order-last.
  • The chef's note renders as a blockquote; chefName only renders when set, so the attribution line can be omitted per-dish.
  • photo is optional per dish; when omitted, MediaSlot renders its own decorative placeholder rather than a broken image.
  • This is a plain server component: no client-side state, no event handlers anywhere in the tree.