Skip to main content
Clever Ops

Tasting Menu

Seasonal tasting menu React block, a centered serif course procession with one per-head price and wine pairing in mono. Tailwind tokens, degustation calm.

Preview & code

Loading Tasting Menu preview

Installation

pnpm dlx shadcn@latest add @cleverui/tasting-menu

Requires the @cleverui registry in your components.json, a one-off, two-line setup.

Usage

tsx
import { TastingMenu } from '@/components/blocks/tasting-menu'
Exampletsx
import { TastingMenu } from '@/components/blocks/tasting-menu'

export default function TastingMenuDemo() {
  return (
    <TastingMenu
      eyebrow="Spring"
      heading="Tasting menu"
      intro="Seven courses of what the market gave us this morning."
      pricePerHead="145 per person"
      pairing={{ label: 'Wine pairing', price: '+95' }}
      note="Menu changes weekly · Please advise dietary needs when booking · Last seating 8:30"
      courses={[
        {
          name: 'Oyster & mignonette',
          note: 'Portarlington Pacific, champagne vinegar, finger lime',
          marks: ['GF', 'DF'],
        },
        {
          name: 'Asparagus & soft egg',
          note: 'Riverbend spears, brown butter, hazelnut',
          marks: ['V', 'N'],
        },
        {
          name: 'Crudo of snapper',
          note: 'Citrus oil, green chilli, young fennel',
          marks: ['GF', 'DF'],
        },
        {
          name: 'Hand-cut pasta',
          note: 'Morels, aged pecorino, wild garlic',
          marks: ['V'],
        },
        {
          name: 'Market fish',
          note: 'Charred leek, saffron broth, copper coast salt',
          marks: ['GF'],
          supplement: '+18',
        },
        {
          name: 'Dry-aged duck',
          note: 'Cherry, turnip, jus, a little mustard leaf',
          marks: ['GF'],
        },
        {
          name: 'Rhubarb & cream',
          note: 'Forced Yorkshire, cultured cream, oat crumble',
          marks: ['V'],
        },
      ]}
    />
  )
}

API reference

TastingMenu accepts the following props.

PropTypeDefaultDescription
eyebrowstring'Spring'season or menu name, spaced small-caps serif
headingstring'Tasting menu'
introstringone italic serif sentence from the kitchen
courses*TastingCourse[]5–9 courses in serving order
pricePerHead*stringpreformatted, e.g. "145 per person", the only mandatory price
pairing{ label: string; price: string }wine pairing line
notestringmono footnote (menu changes weekly, dietary notice, last seating)

…plus everything from React.HTMLAttributes<HTMLElement>: className, event handlers, aria attributes and the rest pass straight through.

Referenced types

Typestsx
export interface TastingCourse {
  name: string
  /** one italic line */
  note?: string
  /** preformatted add-on, e.g. "+18" */
  supplement?: string
  /** dietary codes: V, VG, GF, N, DF */
  marks?: string[]
}

Frequently asked questions

How do I install the Tasting Menu component?

Register the @cleverui registry in your components.json ("@cleverui": "https://cleverops.com.au/r/{name}.json"), then run `npx shadcn@latest add @cleverui/tasting-menu`. The shadcn CLI copies the source into your project, you own the code from that point. You can also copy the source directly from this page.

What dependencies does Tasting Menu require?

Tasting Menu uses motion on top of React and Tailwind CSS. You don't need to install it manually, the shadcn CLI resolves and installs npm dependencies automatically when you add the component.

Can I theme Tasting Menu to match my brand?

Yes. The component is styled entirely with Tailwind utilities over standard design tokens (primary, background, muted, border), so it inherits your existing shadcn/ui theme automatically. Change your CSS variables and the component follows, no source edits needed for palette, radius, or fonts.

Want this built for you?

CleverUI is built by the Clever Ops web team. If you'd rather ship a hand-coded, fast, custom website than assemble one, we build them for Australian businesses every week.

Explore web development services