Skip to content
UI Kit
Accent color

Map UI components for places and routes

Map screens on a drawn town without a map service. Places with list and pins, a route planner, a live fleet and delivery zones with an address check.

4 variants
Switch category

A map that needs no map service

Many apps need a map, to find a place, to plan a round, to follow a delivery or to say where a shop delivers. The map app here draws its own town in SVG, so the screens work without a map service, without an API key and without loading tiles from elsewhere.

Map app comes in four versions. Place explorer pairs search and category chips with a list sorted by distance and pins that light up together. Route planner lists stops in order with time, distance and duration per leg, by car, bike or on foot, and finds a shorter order in one click. Live fleet moves vehicles on their rounds with a panel for the next stop and a camera that follows. Delivery zones draws zones around the shop with fee, minimum order and time, and an address check names the zone.

Use the drawn map for prototypes, onboarding and screens where the shape matters more than every street. When you need real streets, keep the list, panels and filters and put your own map layer in the same place. On phones explorer switches between map and list, so neither gets squeezed.

Map app

Place explorerNew in 1.2

Search and category chips, a list sorted by distance and pins that light up together. Phones switch between map and list.

Route plannerNew in 1.2

Stops in order with times, distance and duration per leg, car, bike or on foot, a shorter order in one click and the route on the map.

Live fleetNew in 1.2

Vehicles moving on their rounds, filters by status, a panel with next stop, arrival and stops done, and a camera that follows.

Delivery zonesNew in 1.2

Zones drawn around the shop with fee, minimum order and time to edit, a switch per zone and an address check that names the zone.

Details

What Map app brings along, read from the registry and the source.

Area
App
Variants
4
Version
1.0.0 · since 1.2.0
File
components/ui/map-app.tsx
Brings along
utilskitbuttoniconswitch
npm packages
None
Languages
English and German, 74 texts of its own
Studio
Adjust in code

Props

The MapAppProps interface from components/ui/map-app.tsx, with the comments from the code.

  • variantoptional
    MapAppVariant

    explorerroutefleetzones

  • titleoptional
    string
  • subtitleoptional
    string
  • originoptional
    MapPoint

    Where the user is, the start of distances

  • categoriesoptional
    MapCategory[]

    explorer

  • placesoptional
    MapPlace[]
  • stopsoptional
    MapStop[]

    route

  • suggestionsoptional
    MapStop[]

    route: places that can be added as a stop

  • departureoptional
    string

    route: HH:MM of departure

  • vehiclesoptional
    MapVehicle[]

    fleet

  • nowoptional
    string

    fleet: HH:MM that counts as now

  • zonesoptional
    MapZone[]

    zones

  • shopoptional
    { name: string; x: number; y: number }

    zones: the shop the zones belong to

  • addressesoptional
    { label: string; x: number; y: number }[]

    zones: addresses to check

  • currencyoptional
    string
  • onActionoptional
    (action: string, data: Record<string, unknown>) => void | Promise<void>

    Called on route, save, share and the like. Without it the block simulates the request.

Built-in texts

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

Show all 74 texts
mapEnglish MapGerman Karte
listEnglish ListGerman Liste
placesEnglish PlacesGerman Orte
allEnglish AllGerman Alle
searchEnglish Search placesGerman Orte suchen
resultsEnglish {n} placesGerman {n} Orte
noMatchEnglish No place matches. Try another word or category.German Kein Ort passt. Versuch ein anderes Wort oder eine andere Kategorie.
openUntilEnglish Open until {t}German Geöffnet bis {t}
opensAtEnglish Opens at {t}German Öffnet um {t}
reviewsEnglish {n} reviewsGerman {n} Bewertungen
awayEnglish {d} awayGerman {d} entfernt
routeEnglish RouteGerman Route
detailsEnglish DetailsGerman Details
closeEnglish CloseGerman Schließen
zoomInEnglish Zoom inGerman Vergrößern
zoomOutEnglish Zoom outGerman Verkleinern
locateEnglish Show my positionGerman Meinen Standort zeigen
resetEnglish Show everythingGerman Alles zeigen
youEnglish You are hereGerman Du bist hier
mapLabelEnglish Map. Arrow keys move it, plus and minus zoom.German Karte. Pfeiltasten verschieben sie, Plus und Minus zoomen.
selectedEnglish {name} selectedGerman {name} ausgewählt
stopsEnglish StopsGerman Stopps
addStopEnglish Add stopGerman Stopp hinzufügen
pickStopEnglish Choose a placeGerman Ort wählen
removeEnglish Remove {name}German {name} entfernen
upEnglish Move {name} upGerman {name} nach oben
downEnglish Move {name} downGerman {name} nach unten
optimizeEnglish Shorten the routeGerman Route verkürzen
optimizedEnglish Order changed, {m} fasterGerman Reihenfolge geändert, {m} schneller
alreadyBestEnglish This order is already the shortestGerman Diese Reihenfolge ist schon die kürzeste
carEnglish CarGerman Auto
bikeEnglish BikeGerman Rad
walkEnglish WalkGerman Zu Fuß
modeEnglish Travel modeGerman Verkehrsmittel
totalEnglish TotalGerman Gesamt
durationEnglish DurationGerman Dauer
returnToEnglish Ends at {name}German Ende bei {name}
backAtEnglish Back atGerman Zurück um
legEnglish {d} · {t}German {d} · {t}
stayEnglish {t} stayGerman {t} Aufenthalt
startEnglish StartGerman Start
sendRouteEnglish Send to phoneGerman Aufs Telefon senden
sentEnglish Route sentGerman Route gesendet
vehiclesEnglish VehiclesGerman Fahrzeuge
movingEnglish On the wayGerman Unterwegs
idleEnglish ParkedGerman Geparkt
delayedEnglish Running lateGerman Verspätet
followEnglish FollowGerman Folgen
followingEnglish Following {name}German {name} wird verfolgt
nextStopEnglish Next stopGerman Nächster Stopp
arrivesEnglish ArrivesGerman Ankunft
stopsDoneEnglish {a} of {b} stopsGerman {a} von {b} Stopps
speedEnglish SpeedGerman Tempo
driverEnglish DriverGerman Fahrer
callEnglish Call driverGerman Fahrer anrufen
liveEnglish LiveGerman Live
pausedEnglish PausedGerman Pausiert
zonesEnglish Delivery zonesGerman Liefergebiete
zoneEnglish ZoneGerman Zone
feeEnglish Delivery feeGerman Liefergebühr
minOrderEnglish Minimum orderGerman Mindestbestellwert
minutesEnglish Delivery timeGerman Lieferzeit
minutesUnitEnglish minGerman Min.
activeEnglish Delivers to this zoneGerman Liefert in diese Zone
saveEnglish Save zoneGerman Zone speichern
savingEnglish Saving…German Wird gespeichert…
savedEnglish Zone savedGerman Zone gespeichert
checkEnglish Check an addressGerman Adresse prüfen
checkPickEnglish Choose an addressGerman Adresse wählen
inZoneEnglish {zone} · delivery {fee} · about {t}German {zone} · Lieferung {fee} · etwa {t}
outsideEnglish Outside the zones, pickup in the shop works anytimeGerman Außerhalb der Zonen, Abholung im Laden geht jederzeit
zoneOffEnglish {zone} is paused, pickup in the shop works anytimeGerman {zone} pausiert, Abholung im Laden geht jederzeit
shopEnglish ShopGerman Laden
freeEnglish freeGerman kostenlos

Accessibility

Read from the source of the component.

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

  • 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.

Frequent questions

How do I install Map app?

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

Which variants does Map app have?

4 variants, Place explorer, Route planner, Live fleet and Delivery zones. You pick one with the variant prop, for example variant="route".

Can I translate the texts of Map app?

Yes. Map app carries 74 texts of its own in English and German, such as “Map”, “List” and “Places”. The language follows the KitProvider, single texts change through the labels prop.

Can an AI assistant build with Map app?

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

Often searched

Jump to

Copied to the clipboard