Skip to content

Reference

Brand Kit

Every type role, colour, button and component in one place — so it can be reviewed and tuned. Not indexed.

Colour

#faf5ec

Ivory

--color-ivory

#f2e6d9

Ivory dim

--color-ivory-dim

#fffaf0

Paper

--color-paper

#e8dac6

Line

--color-line

#ddcdb8

Stone light

--color-stone-light

#948a78

Stone

--color-stone

#4a4436

Ink soft

--color-ink-soft

#2a261a

Ink

--color-ink

#1b1813

Night

--color-night

Typefaces

Miss Fajardose — display script · hero titles only, used sparingly

beautiful

Marya Jani — serif · hotel names, titles, section heads, running display

Capella Singapore

A quiet index of hotels worth the journey.

Marya Italic — serif italic · city & country only

Sentosa Island, Singapore

TWK Continental — sans · interface, labels, buttons

The Hotelist · Destinations · Reserve

Body and supporting copy is set in TWK Continental at a comfortable reading size.

Container widths

  • 1500px — wide: grids, hero media (home, hotels, destinations, collections, journal, hotel gallery)
  • 1400px — content: text-heavy sections inside a wide page (hotel description/FAQ/similar, home stats)
  • 1100px — title: centered hero/title blocks (home hero, hotel name, Club, this page)
  • 760px — narrow reading: About, Club closing note, Journal article body (prose itself caps at 62ch)
  • 440 / 560 / 900px — account mini-scale, not part of the scale above: 440 login, 560 profile & signup, 900 account home & reviews
  • 1080px — Concierge only: a deliberate exception for its mock chat layout, not part of the scale

Spacing

Section rhythm: most sections use py-16 to py-28 vertical padding, px-5 sm:px-8 horizontal. Grids use gap-x-6 gap-y-12 (cards) or tighter gap-6/gap-8 for text blocks.

Buttons & links

ReserveExplore destinationsNav link (fade)Text link

Liquid Glass · Concierge

The Concierge

Glass + iridescent sheen. Chromium refracts; Safari/Firefox keep a frosted fallback. Two named presets only (src/lib/liquidGlass.ts) — LG_PILL for nav/prompt bubbles, LG_CARDfor flat chat/aside chips. Don’t hand-tune a third variant per instance.

Form inputs

One shared class across every filter control (HotelsFilters.tsx): reinforced hairline border, transparent fill, u-label uppercase text, border darkens on focus — no background fill. Keyboard focus additionally shows the sitewide discreet:focus-visible ring (globals.css).

For paper-filled fields (account, reviews), .field (globals.css) now names that other recipe — rounded radius-card, reinforced hairline, paper fill, focus toward ink. New forms can use it directly; existing call sites are left as-is for now.

Breadcrumb & pagination

Prev12Next

Empty state

Nothing here yet. Try a different place.

Quiet, no illustration, no exclamation — a single serif-name sentence, centered, same voice as everywhere else on the site (used on /hotels when filters return nothing).

Hotel card

Tokens

  • radius-card · 0.75rem
  • radius-pill · 999px
  • duration-fast · 200ms
  • duration-base · 350ms
  • duration-slow · 500ms

Duration scale named in globals.css — adopted so far in the gallery arrows and the .field focus transition; not yet converted sitewide.