Hotel
One page for a small hotel or guesthouse (Exempelhotellet): offer and navigation, rooms, gallery, guest reviews, one rate, questions, the address and a newsletter.
npx shadcn add @klarhimmel/template-hotelInstall
npx shadcn add @klarhimmel/template-hotelThe page
10 sections, in order
Each section is one block with this template's own copy. The anchor is the id in-page links point at.
| Anchor | Block | Content |
|---|---|---|
(none) | banner/promo | Two nights for the price of one, Sunday to Thursday. |
#top | header/centered | Exempelhotellet |
#hero | hero/split | Seven rooms above the harbour |
#rooms | features/bento | Everything a good night needs, nothing it does not |
#gallery | gallery/featured | Start with the view |
#reviews | testimonials/wall | What people say after a night here |
#book | pricing/single | One honest price per night |
#faq | faq/grouped | Questions guests ask us |
#contact | contact/offices | Exempelgatan 12, Göteborg |
(none) | footer/link-columns | Exempelhotellet |
Install
CLI
npx shadcn add @klarhimmel/template-hotelpnpm
pnpm dlx shadcn@latest add @klarhimmel/template-hotel- Klarhimmel
- Geist / Geist
- radius 8
- Needs
- React 19, Tailwind CSS v4 and the theme import. The page and every block it uses land under components/klarhimmel/.
Before you ship
Wire these before shipping
The template is a finished page with placeholder wiring. These are yours to connect.
Links
`#section` links jump within the page. Links to https://example.com are placeholders: point them at your own pages.
Images
The illustrations ship with the template (public/klarhimmel/art/hotel/). They are artwork, not photographs: replace the `media.src` values with your own photos.
Forms
Set `action` on the footer newsletter (it is `/replace-with-your-endpoint` now). With `method: 'post'` the form submits natively, with no JavaScript. The live demo never submits.
Style
Uses the default Klarhimmel palette, Geist fonts, radius and spacing. Import theme.css after Tailwind.