Zostel
Brand Icons

Icons

Every brand icon and every place, as components. The files come from the brand’s generators, so the code can never drift from the drawings.

Preview

Amenities — one component, four dialects

variantWi-FiBedsCaféACLockersLaundry
roundel (master)Wi-Fi (roundel)Beds (roundel)Café (roundel)AC (roundel)Lockers (roundel)Laundry (roundel)
ui
lineWi-Fi (line)Beds (line)Café (line)AC (line)Lockers (line)Laundry (line)
duotoneWi-Fi (duotone)Beds (duotone)Café (duotone)AC (duotone)Lockers (duotone)Laundry (duotone)

Backpacking — the line icons

MountainsMountains
TentTent
CampfireCampfire
CompassCompass
BackpackBackpack
Sleeping bagSleeping bag
TrekTrek

Any icon, any set — ZostelIcon (544 icons, 2124 files)

zostel-roundel · passport
zo-duotone · quest
zostel-ui · verified · currentColor
zostel-line · surf

Places — every place Zostel is live (PlaceIcon)

Hampi: the stone charioticon
Hampi tiletile
mono · currentColor
Hampi display picturedp

Landmarks and nature — the master drawings

Taj Mahal, AgraTaj Mahal
Charminar, HyderabadCharminar
India Gate, DelhiIndia Gate
SunSun
Pine TreePine

Usage

tsx
import {
  WifiIcon, BedIcon, TentIcon, SleepingBagIcon, TajMahalIcon, MenuIcon,
  ZostelIcon, PlaceIcon,
} from "zostel-ui";

<WifiIcon />                                  {/* the master amenity roundel */}
<WifiIcon variant="ui" />                     {/* Zostel UI weight, in the text colour */}
<BedIcon variant="duotone" size={32} />       {/* Zo duotone */}
<SleepingBagIcon color="currentColor" />      {/* a line icon in one colour */}
<TajMahalIcon size={96} />                    {/* the master drawing */}

{/* any of the icons in any set: zostel-roundel · zostel-line · zostel-ui · zo-duotone */}
<ZostelIcon set="zostel-ui" name="verified" color="currentColor" size={24} />

{/* every place Zostel is live: icon · tile · mono · dp */}
<PlaceIcon slug="hampi" variant="tile" size={64} />

Named icons (WifiIcon, TentIcon, TajMahalIcon…)

size
Type: number
Default: 24

Width and height, px.

variant
Type: "roundel" | "ui" | "line" | "duotone"
Default: "roundel"

Amenity icons only: the master roundel, or the same idea in another dialect.

color
Type: string
Default: —

One colour instead of the drawing’s own (roundels keep theirs); "currentColor" follows the text.

title
Type: string
Default: —

Accessible name; defaults to what it draws. An empty title (title="") makes it decorative, hidden from screen readers (aria-hidden): for a glyph beside words or inside a control that has its own name, e.g. <ChevronRightIcon title="" /> in a Button with an aria-label.

animated
Type: boolean
Default: false

A slow pulse; still for reduced motion.

ZostelIcon

name
Type: string
Default: —

An icon name from /brand/icons/index.json (wifi, trek, passport…).

set
Type: "zostel-roundel" | "zostel-line" | "zostel-ui" | "zo-duotone"
Default: "zostel-line"

The dialect.

color
Type: string
Default: —

Needed for zostel-ui (its files are currentColor): pass "currentColor".

size / title / className
Type:
Default: —

As above.

PlaceIcon

slug
Type: string
Default: —

A live place: manali, hampi, pokhara… (/brand/places/index.json).

variant
Type: "icon" | "tile" | "mono" | "dp"
Default: "icon"

Its own colours · on its own colour · one colour · the 1080 display picture.

color / size / title
Type:
Default: —

As above (color with mono).

Which set when

zostel-roundel — amenities, features and badges. zostel-line — editorial and print, 48 px and up. zostel-ui — product UI at 16–32 px, always in currentColor. zo-duotone — Zo Trips, Zo Selections and Zo World. The whole library, with downloads, is on /icons; every place’s kit is on /destinations.