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
Use it with AI
- 1. Copy the link.
- 2. Write to your agent in your own words and drop the link into the sentence.
- 3. The agent opens the link and installs the component from the registry.
put this on the home page as the hero:
https://vibeui.ru/c/restaurant-003?lang=en&theme=dark
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…