Skip to content
UI Kit
Accent color

Museum

For museums, galleries and exhibition halls. Exhibitions with their run, tickets, timed entry, a floor guide and one work with details to zoom into.

5 variants
Switch category

Museum

Exhibitions

Now, soon and the collection on a gliding switch. Each exhibition shows its run as a line that fills, the last days turn amber.

Open in Studio

Tickets

A counter per ticket type, the family ticket counts its people, the audio guide on its own row. The total glides and lists what you picked.

Open in Studio

Timed entry

Pick a day, then an entry time. Each slot shows how full it is with a bar that fills, sold out slots stay visible.

Open in Studio

Floor guide

Levels stacked like sheets, the chosen one slides to the front with its rooms highlighted. The rooms and services of the level are listed next to it.

Open in Studio

Work in focus

One work with numbered points that pulse. Pick one and the picture zooms to the detail, the text opens next to it, step through or zoom back out.

Open in Studio

Details

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

Variants
5
Version
1.0.0 · since 1.1.0
File
components/ui/museum.tsx
Brings along
utilskitbuttoniconrevealsectionmotion
npm packages
None
Languages
English and German, 37 texts of its own

Props

The MuseumProps interface from components/ui/museum.tsx, with the comments from the code.

  • variantoptional
    MuseumVariant

    exhibitionsticketstime-slotsfloor-guideartwork

  • eyebrowoptional
    React.ReactNode
  • titleoptional
    React.ReactNode
  • descriptionoptional
    React.ReactNode
  • exhibitionsoptional
    MuseumExhibition[]
  • todayoptional
    string

    exhibitions: the day to count from, YYYY-MM-DD. Defaults to today in the browser.

  • ticketsoptional
    MuseumTicket[]
  • initialoptional
    Record<string, number>

    tickets: quantities to start with, by ticket id

  • guidePriceoptional
    number

    tickets: price of the audio guide, leave out to hide it

  • daysoptional
    string[]

    time-slots

  • slotsoptional
    MuseumSlot[]
  • levelsoptional
    MuseumLevel[]
  • artworkoptional
    { image?: React.ReactNode; title: string; artist: string; year?: string; medium?: string; room?: string }

    artwork: the picture, its facts and the details to zoom into

  • detailsoptional
    MuseumDetail[]
  • currencyoptional
    string
  • onBookoptional
    (data: Record<string, string>) => void

Built-in texts

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

Show all 37 texts
nowEnglish On nowGerman Aktuell
soonEnglish Coming soonGerman Demnächst
permanentEnglish CollectionGerman Sammlung
showEnglish ShowGerman Zeigen
untilEnglish until {date}German bis {date}
fromEnglish from {date}German ab {date}
daysLeftEnglish {n} days leftGerman Noch {n} Tage
lastDaysEnglish Last {n} daysGerman Nur noch {n} Tage
opensEnglish Opens in {n} daysGerman Eröffnung in {n} Tagen
alwaysEnglish Always on viewGerman Dauerhaft zu sehen
moreEnglish More about the exhibitionGerman Mehr zur Ausstellung
ticketsEnglish TicketsGerman Tickets
fewerEnglish One less {name}German Ein Ticket {name} weniger
more2English One more {name}German Ein Ticket {name} mehr
freeEnglish FreeGerman Frei
coversEnglish for up to {n} peopleGerman für bis zu {n} Personen
guideEnglish Audio guideGerman Audioguide
guideNoteEnglish In six languages, on your own phoneGerman In sechs Sprachen, auf dem eigenen Telefon
totalEnglish TotalGerman Gesamt
peopleEnglish {n} peopleGerman {n} Personen
payEnglish Continue to paymentGerman Weiter zur Zahlung
emptyEnglish Add a ticket to continue.German Wähle ein Ticket, um fortzufahren.
dayEnglish DayGerman Tag
timeEnglish Entry timeGerman Einlasszeit
pickTimeEnglish Pick an entry timeGerman Einlasszeit wählen
placesEnglish {n} places leftGerman Noch {n} Plätze
fullEnglish Fully bookedGerman Ausgebucht
almostEnglish Almost fullGerman Fast voll
chosenEnglish Your entryGerman Dein Einlass
stayEnglish Stay as long as you like after entry.German Nach dem Einlass bleibst du, so lange du willst.
reserveEnglish Reserve {time}German {time} reservieren
levelsEnglish LevelsGerman Ebenen
levelEnglish Level {n}German Ebene {n}
detailEnglish Detail {n} of {total}German Detail {n} von {total}
closeEnglish Back to the whole workGerman Zurück zum ganzen Werk
prevEnglish Previous detailGerman Vorheriges Detail
nextEnglish Next detailGerman Nächstes Detail

Accessibility

Read from the source of the component.

  • Museum handles the keys Arrow up, Arrow down, Arrow left and Arrow right itself.
  • Sets aria-checked, aria-controls, aria-disabled, aria-expanded, aria-label, aria-live, aria-orientation, aria-pressed and aria-selected, so screen readers announce purpose and state.
  • Uses the roles radio, radiogroup, tab and tablist.
  • Announces changes through a live region without moving focus.
  • 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

  • Rises in briefly the first time it comes into view (kit-rise, useInView).
  • Brings animations of its own, calmly timed and without wobble.
  • With reduced motion (prefers-reduced-motion) it stays still. 7 places in the code switch motion off then.

Frequent questions

How do I install Museum?

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

Which variants does Museum have?

5 variants, Exhibitions, Tickets, Timed entry, Floor guide and Work in focus. You pick one with the variant prop, for example variant="tickets".

Can I translate the texts of Museum?

Yes. Museum carries 37 texts of its own in English and German, such as “On now”, “Coming soon” and “Collection”. The language follows the KitProvider, single texts change through the labels prop.

Can an AI assistant build with Museum?

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

Can I adjust Museum without code?

Yes, in the Studio. All 5 variants are editable there, texts, lists and switches. The Studio writes the matching Museum code to copy.

Often searched

Jump to

Copied to the clipboard