Hostel Card
A Zostel in a list: its picture, name, place, tags, a price per night and one action.
Preview
Manali, Himachal Pradesh
The rating and the amount are samples.
Usage
import { HostelCard } from "zostel-ui";
<HostelCard
name="Zostel Manali"
location="Manali, Himachal Pradesh"
imageUrl="/brand/scenes/valleys.svg"
rating={4.6}
pricePerNight={1234}
tags={["Wi-Fi", "Café", "Treks"]}
onBook={() => book("manali")}
/>Props
| Prop | Type | Default | Description |
|---|---|---|---|
name | string | — | The stay: “Zostel Manali”, “Zostel Homes Bhor”. |
location | string | — | Place and state. |
imageUrl | string | — | A cover: a photo of the stay, or its landscape (/brand/scenes/<family>.svg). Never stock photos. |
rating | number | — | Out of 5, on a badge. |
pricePerNight | number | — | Shown as ₹1,234 /night. |
currency | string | "INR" | ISO 4217 code: INR (₹1,23,456), NPR, THB (฿12,345)… Printed with formatPrice. |
tags | string[] | [] | Amenities or what to do. |
onBook | () => void | — | Shows the action button. |
actionLabel | string | "Book" | The button’s word. |
className | string | — | More classes, merged with the component’s own (tailwind-merge). |
namestringThe stay: “Zostel Manali”, “Zostel Homes Bhor”.
locationstringPlace and state.
imageUrlstringA cover: a photo of the stay, or its landscape (/brand/scenes/<family>.svg). Never stock photos.
ratingnumberOut of 5, on a badge.
pricePerNightnumberShown as ₹1,234 /night.
currencystring"INR"ISO 4217 code: INR (₹1,23,456), NPR, THB (฿12,345)… Printed with formatPrice.
tagsstring[][]Amenities or what to do.
onBook() => voidShows the action button.
actionLabelstring"Book"The button’s word.
classNamestringMore classes, merged with the component’s own (tailwind-merge).
Samples
The amounts, ratings and reviews in these demos are samples, not offers — the places are real (every Zostel place, from /brand/places/index.json).