Restaurant

Menu with sections and a cursor photo

A restaurant menu: sections as tabs, dishes as a list with a dotted leader to the price, ingredients and “spicy”, “veg”, “chef” tags. A pill under the active tab slides to the chosen one; switching a section cascades the dishes in; hovering a dish floats its photo by the cursor.

What you can change

  • sections: sections, notes, dishes with text, price, tags and photo
  • eyebrow, title, lede, fullLabel, fullHref
  • accent and background, tone

A link for your AI agent: preview, code and instructions.

Preview

1440pxHost theme

Use it with AI

  1. 1. Copy the link.
  2. 2. Write to your agent in your own words and drop the link into the sentence.
  3. 3. The agent opens the link and installs the component from the registry.
AI
1Pick it here

put this on the home page as the hero:

https://vibeui.ru/c/restaurant-003?lang=en&theme=dark

2Paste into the chat
3Get it in your project

Not sure where to paste it? Step-by-step guide

Show the full instructions

What the link says, spelled out. Use it when your agent cannot open links — paste this text instead.

Loading…

For developers

The install command lives in the “Component source” block below — a signed link that stays valid for 24 hours.

Technical notes

One file, zero dependencies, “use client” for tabs and the photo. Tabs are role=tab with aria-selected; under the active one a pill (li data-part=pill) whose position and size are measured in useLayoutEffect from the button's offsetLeft/offsetWidth and written straight into the pill's style (no state), sliding via transform/width over .5s, a ResizeObserver re-measures on resize. The list remounts with a new key on a section change — @keyframes with a --n×60ms delay. A dish row: a serif name, the leader is flex:1 with a dotted bottom border, the price nowrap. Tags get data-kind by the word start (veg/hot/chef) and their colour. The photo is one position:fixed <img>; cursor coordinates go into the --x/--y CSS variables on onMouseMove without re-rendering; hidden on devices without hover. Two dish columns from 48rem (container query). Palette --vibeui-restaurant-003-* is neutral: ink and paper via light-dark(), the site colours come through the accent, ink and background props; Playfair Display and Manrope via <link precedence> from Google Fonts with system fallbacks. tone pins the scheme, accent, ink and background override colours.

Tags

  • restaurant
  • cafe
  • bar
  • food
  • menu
  • dining
  • tabs
  • dishes
  • price
  • leader
Component source

The same file your agent installs. Here in case you would rather copy it by hand.

Loading…