Skip to content
UI Kit
Accent color

Restaurant website sections

For restaurants, bistros and wine bars, next to the menu. Table booking on a drawn floor plan, special evenings with seats left, the room by time of day and private dining for groups.

4 variants
Switch category

Everything around the table

Next to the menu, a restaurant website answers three questions, is there a table, what is special this month and what does the evening feel like. These sections answer them with drawn rooms, seats left and prices that follow the size of the party. For the menu itself the kit has its own category for menus.

Table booking picks the day, the party and a time, slots with few tables carry an amber dot, and the area is chosen on a drawn floor plan. Special evenings show wine dinners, chef's table and supper clubs as date cards with a seat bar, the running order slides in course by course. Atmosphere draws the dining room from lunch to dinner to the late bar, with volume, music and dress beside it. Private dining keeps the rooms that fit the group open, picks the right one and estimates the menu for everyone.

Put table booking high on the page, most visitors come to reserve. Special evenings sell best with the seats left in view. Private dining deserves its own page for companies and families, linked from the footer and from the booking.

Restaurant

Table bookingNew in 1.2

Pick the day, the party and a time, few tables carry an amber dot. The area is chosen on a drawn floor plan whose tables set in while scrolling, free ones in green, the chosen area in the accent.

Special eveningsNew in 1.2

Wine dinners, chef’s table and supper clubs as date cards with a seat bar, few seats turn amber. Pick one, the running order slides in course by course and the price on the button glides with the seats.

AtmosphereNew in 1.2

The dining room drawn by time of day. Switch from lunch to dinner to the late bar, the windows darken, the lamps glow, candles flicker and the room fills. Volume, music and dress swap alongside.

Private diningNew in 1.2

Drag the group size, rooms that fit stay open and the right one is chosen for you. Pick a menu, the estimate for the whole group glides along and the request goes out with one button.

Details

What Restaurant brings along, read from the registry and the source.

Variants
4
Version
1.0.0 · since 1.2.0
File
components/ui/restaurant.tsx
Brings along
utilskitbuttoniconsectionmotion
npm packages
None
Languages
English and German, 45 texts of its own
Studio
Adjust in code

Props

The RestaurantProps interface from components/ui/restaurant.tsx, with the comments from the code.

  • variantoptional
    RestaurantVariant

    reservationeveningsatmosphereprivate-dining

  • eyebrowoptional
    React.ReactNode
  • titleoptional
    React.ReactNode
  • descriptionoptional
    React.ReactNode
  • daysoptional
    RestaurantDay[]

    reservation

  • slotsoptional
    { time: string; free: number }[]

    reservation: times "HH:MM", with free tables

  • areasoptional
    RestaurantArea[]
  • maxPartyoptional
    number

    reservation: largest party for a normal table

  • eveningsoptional
    RestaurantEvening[]

    evenings

  • moodsoptional
    RestaurantMood[]

    atmosphere

  • roomsoptional
    RestaurantRoom[]

    private-dining

  • menusoptional
    RestaurantMenuOption[]
  • minGuestsoptional
    number
  • maxGuestsoptional
    number
  • currencyoptional
    string

Built-in texts

Restaurant writes these texts itself. The language follows the KitProvider, the labels prop replaces single ones.

Show all 45 texts
dayEnglish DayGerman Tag
closedEnglish ClosedGerman Ruhetag
guestsEnglish GuestsGerman Personen
lessEnglish One guest lessGerman Eine Person weniger
moreEnglish One guest moreGerman Eine Person mehr
bigGroupEnglish From {n} guests our private room is the better fit.German Ab {n} Personen passt unser Separee besser.
timeEnglish TimeGerman Uhrzeit
areaEnglish Where would you like to sit?German Wo möchtest du sitzen?
planEnglish Floor planGerman Raumplan
tablesFreeEnglish {n} tables freeGerman {n} Tische frei
tableFreeEnglish 1 table freeGerman 1 Tisch frei
fullEnglish Fully bookedGerman Ausgebucht
reserveEnglish Reserve a table for {n}German Tisch für {n} reservieren
reservedEnglish Your table is reserved. A confirmation is on its way.German Dein Tisch ist reserviert. Die Bestätigung ist unterwegs.
summaryEnglish {guests} guests · {day} · {time}German {guests} Personen · {day} · {time}
seatsLeftEnglish {n} of {total} seats leftGerman Noch {n} von {total} Plätzen
soldOutEnglish Sold out, join the waiting listGerman Ausverkauft, auf die Warteliste
perPersonEnglish per personGerman pro Person
programEnglish The eveningGerman Der Abend
hostedByEnglish With {name}German Mit {name}
bookEnglish Book {n} seats for {price}German {n} Plätze für {price} buchen
bookOneEnglish Book 1 seat for {price}German 1 Platz für {price} buchen
bookedEnglish Booked. We look forward to seeing you.German Gebucht. Wir freuen uns auf dich.
waitlistEnglish Join the waiting listGerman Auf die Warteliste
waitlistedEnglish You are on the waiting list. We write to you as soon as a seat opens up.German Du stehst auf der Warteliste. Wir schreiben dir, sobald ein Platz frei wird.
eveningsEnglish EveningsGerman Abende
moodEnglish Time of dayGerman Tageszeit
volumeEnglish VolumeGerman Lautstärke
quietEnglish QuietGerman Ruhig
livelyEnglish LivelyGerman Lebhaft
musicEnglish MusicGerman Musik
dressEnglish DressGerman Kleidung
goodForEnglish Good forGerman Passt für
hoursEnglish ServedGerman Geöffnet
groupSizeEnglish Group sizeGerman Gruppengröße
personsEnglish {n} guestsGerman {n} Personen
roomEnglish RoomGerman Raum
fitsEnglish Seats {min} to {max}German {min} bis {max} Plätze
tooSmallEnglish From {n} guestsGerman Ab {n} Personen
tooBigEnglish Up to {n} guestsGerman Bis {n} Personen
menuEnglish MenuGerman Menü
estimateEnglish Estimate for your groupGerman Schätzung für eure Gruppe
estimateNoteEnglish Drinks are charged as consumed. We send a firm offer within a day.German Getränke nach Verbrauch. Ein festes Angebot kommt innerhalb eines Tages.
requestEnglish Request an offerGerman Angebot anfragen
requestedEnglish Thank you. We will send your offer within a day.German Danke. Dein Angebot kommt innerhalb eines Tages.

Accessibility

Read from the source of the component.

  • Restaurant handles the keys Arrow up, Arrow down, Arrow left and Arrow right itself.
  • Sets aria-checked, aria-label, aria-live and aria-valuetext, so screen readers announce purpose and state.
  • Uses the roles img, radio, radiogroup and status.
  • Announces changes through a live region without moving focus.
  • Every field has a label, visible or for screen readers.
  • Adds text for screen readers where icons and graphics stand alone.
  • Shows a visible focus ring when used with the keyboard.
  • The server renders the starting state in full, JavaScript only adds the interaction.

Motion

  • Brings animations of its own, calmly timed and without wobble.
  • With reduced motion (prefers-reduced-motion) it stays still. 3 places in the code switch motion off then.

Frequent questions

How do I install Restaurant?

With aiw add @ai-website/restaurant. The command puts components/ui/restaurant.tsx into your project, the code is yours from then on. It brings along button, icon, section and motion. It needs no further npm packages.

Which variants does Restaurant have?

4 variants, Table booking, Special evenings, Atmosphere and Private dining. You pick one with the variant prop, for example variant="evenings".

Can I translate the texts of Restaurant?

Yes. Restaurant carries 45 texts of its own in English and German, such as “Day”, “Closed” and “Guests”. The language follows the KitProvider, single texts change through the labels prop.

Can an AI assistant build with Restaurant?

Yes. Through the MCP server of the aiw CLI, Claude, Cursor, GitHub Copilot, Windsurf, Codex and Gemini find Restaurant with aiw_components and install it with aiw_add @ai-website/restaurant. Name the variant in your prompt, for example variant="reservation", and the assistant writes your content straight into the props.

Often searched

Jump to

Copied to the clipboard