Skip to content
UI Kit
Accent color

Travel

For tour operators, travel agencies and guides. Destinations with seasons, a trip at a glance, the itinerary day by day, departures with prices and what is included.

5 variants
Switch category

Travel

Destinations

An editorial grid by region, the first trip wide. Each card shows nights, the price and the best months as bars that grow in.

Open in Studio

Trip overview

Pictures with parallax and thumbnails, four facts with the activity level as dots, highlights that rise in, the price and two actions.

Open in Studio

Itinerary

Day by day on a line. While you read, the sticky map fills the route up to that day and the stop pulses.

Open in Studio

Dates and prices

Departures with availability, sold out ones stay visible with a waiting list. Pick one, set travellers and a single room, the total glides.

Open in Studio

What is included

Included services as a hairline grid that rises in, what is not included on a dashed card, extras that add to the trip price as you tick them.

Open in Studio

Details

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

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

Props

The TravelProps interface from components/ui/travel.tsx, with the comments from the code.

  • variantoptional
    TravelVariant

    destinationsoverviewitinerarydates-pricesincluded

  • eyebrowoptional
    React.ReactNode
  • titleoptional
    React.ReactNode
  • descriptionoptional
    React.ReactNode
  • destinationsoptional
    TravelDestination[]
  • daysoptional
    TravelDay[]
  • mapoptional
    React.ReactNode

    itinerary: a route drawing behind the stops, e.g. a map

  • departuresoptional
    TravelDeparture[]
  • singleSupplementoptional
    number

    dates-prices: the single room supplement per person

  • includedoptional
    { icon?: IconName; title: string; text?: string }[]
  • notIncludedoptional
    string[]
  • extrasoptional
    { id: string; title: string; text?: string; price: number }[]
  • basePriceoptional
    number

    included: the base price per person the extras add to

  • tripoptional
    { name: string; nights: number; group: string; level: number; stays: string; price: number; highlights: string[]; image?: React.ReactNode; gallery?: React.ReactNode[]; }

    overview: the facts of one trip

  • currencyoptional
    string
  • onBookoptional
    (data: Record<string, string>) => void
  • linksoptional
    { dates?: string }

    Where the jumps go, sections of the same page by default: #dates

Built-in texts

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

Show all 43 texts
regionsEnglish RegionsGerman Regionen
allEnglish AllGerman Alle
fromEnglish from {price}German ab {price}
nightsEnglish {n} nightsGerman {n} Nächte
seasonEnglish Best time to travelGerman Beste Reisezeit
monthsEnglish J,F,M,A,M,J,J,A,S,O,N,DGerman J,F,M,A,M,J,J,A,S,O,N,D
monthsLongEnglish January,February,March,April,May,June,July,August,September,October,November,DecemberGerman Januar,Februar,März,April,Mai,Juni,Juli,August,September,Oktober,November,Dezember
dayEnglish Day {n}German Tag {n}
stayEnglish NightGerman Übernachtung
mealsEnglish MealsGerman Verpflegung
distanceEnglish On the roadGerman Unterwegs
routeEnglish RouteGerman Route
departuresEnglish DeparturesGerman Termine
datesEnglish DatesGerman Reisezeitraum
priceEnglish Price per personGerman Preis pro Person
statusEnglish AvailabilityGerman Verfügbarkeit
guaranteedEnglish GuaranteedGerman Durchführung garantiert
seatsEnglish {n} seats leftGerman Noch {n} Plätze
fewEnglish Only {n} leftGerman Nur noch {n}
soldOutEnglish Fully bookedGerman Ausgebucht
waitlistEnglish Waiting listGerman Warteliste
pickEnglish ChooseGerman Wählen
pickedEnglish ChosenGerman Gewählt
travellersEnglish TravellersGerman Reisende
fewerEnglish One lessGerman Eine Person weniger
moreEnglish One moreGerman Eine Person mehr
singleEnglish Single roomGerman Einzelzimmer
singleNEnglish plus {price} per personGerman zzgl. {price} pro Person
totalEnglish TotalGerman Gesamt
bookEnglish Book this departureGerman Diesen Termin buchen
pickFirstEnglish Choose a departureGerman Termin wählen
includedEnglish IncludedGerman Inklusive
notIncludedEnglish Not includedGerman Nicht inklusive
extrasEnglish Add to your tripGerman Dazu buchen
tripPriceEnglish Trip price per personGerman Reisepreis pro Person
durationEnglish DurationGerman Dauer
groupEnglish Group sizeGerman Gruppengröße
levelEnglish Activity levelGerman Anspruch
levelNEnglish {n} of 5German {n} von 5
stayTypeEnglish StaysGerman Unterkünfte
highlightsEnglish HighlightsGerman Höhepunkte
seeDatesEnglish See dates and pricesGerman Termine und Preise ansehen
downloadEnglish Download itineraryGerman Reiseverlauf herunterladen

Accessibility

Read from the source of the component.

  • Travel handles the keys Arrow up, Arrow down, Arrow left, Arrow right and Space itself.
  • Sets aria-checked, aria-disabled, aria-label, aria-live and aria-pressed, so screen readers announce purpose and state.
  • Uses the roles group, radio and radiogroup.
  • 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

  • Rises in briefly the first time it comes into view (kit-rise, useInView).
  • Moves with the scroll, its progress follows the position on the page.
  • 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 Travel?

With aiw add @ai-website/travel. The command puts components/ui/travel.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 Travel have?

5 variants, Destinations, Trip overview, Itinerary, Dates and prices and What is included. You pick one with the variant prop, for example variant="overview".

Can I translate the texts of Travel?

Yes. Travel carries 43 texts of its own in English and German, such as “Regions”, “All” and “Best time to travel”. The language follows the KitProvider, single texts change through the labels prop.

Can an AI assistant build with Travel?

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

Can I adjust Travel without code?

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

Often searched

Jump to

Copied to the clipboard