Staaarter

Seasonal Menu Showcase

Seasonal menu section with availability dates, featured dish cards with hover effects, and CTA button. Perfect for promoting winter, spring, summer, or fall menus.

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

npx shadcn add https://staaarter.com/r/seasonal-menu-showcase.json

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

Usage

The file also exports food20Demo, 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 { Food20, food20Demo } from "@/components/blocks/food/food20";

export default function Page() {
  return <Food20 {...food20Demo} />;
}

Props

PropTypeDefaultDescription
headingstringnoneSection heading.
descriptionstringnoneSection intro text below the heading.
seasonstringnoneBadge label above the heading, e.g. "Autumn Menu".
availabilitystringnoneAvailability window text below the description.
dishesSeasonalDish[]noneFeatured dish cards, rendered in a responsive 1/2/3-column grid.
ctaLabelstringnoneLabel for the CTA button; the button only renders when this is set.
classNamestringnoneExtra classes for the outer section element.

Types

type SeasonalDish = {
  name: string;
  description?: string;
  price: string;
  image?: { src: string; alt: string };
};

Behavior notes

  • The season badge, availability line, and CTA button each only render when their respective prop is set.
  • The hover effect on each dish card (image scaling up slightly) is pure CSS via Tailwind's group/group-hover utilities, no JavaScript involved.
  • A dish image falls back to a placeholder when omitted.
  • The CTA button is decorative and inert: there is no real link or navigation wired up.