Design SystemVersion 1.0August 2026

Foundation

One Sign, Every Surface

Everything in this system derives from the XL Hotel sign: gold ornament on deep black, engraved Roman capitals, and a geometric sans for plain information. The rule of the whole system — gold is for the brand, cream is for reading, black is the ground.

PrincipleIn practice
Gold is preciousGold marks identity and primary actions only. If everything is gold, nothing is. One primary button per view.
Black is the groundSurfaces are warm near-blacks, never pure #000 and never cool grey. Depth comes from lighter inks, not shadows.
Capitals are ceremonialCinzel appears only in uppercase, only for names and headings — never for sentences, prices, or form text.
Ornament is punctuationThe scroll divider ends a chapter. At most one per view, always centered, never stretched.

Tokens · 01

Color

A warm-black ink ramp, one gold, and its two supporting tones. All neutrals are biased toward the gold hue — nothing in this palette is a pure grey.

Brand

Gold 500
#D4A73C · --gold-500
The brand color. Logo, primary buttons, active states, eyebrows.
Gold 600
#B98F2C · --gold-600
Pressed states, secondary button borders.
Gold 700
#94711F · --gold-700
Gold text on light grounds; quiet ornament.
Champagne
#EBD9A4 · --champagne
Subheadings, prices, hover state of primary gold.
Cream
#F2EAD6 · --cream
Body text on dark. The reading color.

Ink ramp

Ink 950
#0D0C0A · --ink-950
Page ground.
Ink 900
#141210 · --ink-900
Cards, panels. Also the text color on gold.
Ink 800
#1C1813 · --ink-800
Inputs, wells, inline code.
Hairline
#332B1A · --hairline
Borders and rules. Warm, never grey.
Muted
#9C9282 · --muted
Secondary text, captions, placeholders.

Semantic

Available
#5FA873 · --ok
Room available, booking confirmed.
Notice
#C9822E · --warn
Few rooms left, pending payment.
Error
#C4544A · --err
Validation errors, fully booked.

Approved text pairs

TextGroundContrastUse
Cream #F2EAD6Ink 95015.6 : 1Body text — the default pair
Champagne #EBD9A4Ink 95013.0 : 1Subheads, prices
Gold 500 #D4A73CInk 9508.6 : 1Headings, links, eyebrows
Ink 900 #141210Gold 5008.2 : 1Text on primary buttons
Gold 700 #94711FCream ground4.6 : 1Gold text on light — never Gold 500 on light

Tokens · 02

Typography

Two faces, strictly divided. Cinzel is the sign — engraved Roman capitals for names and headings. Jost is the desk — a geometric sans (the voice of the “AC & Non-AC Rooms” strip) for everything a guest actually reads, types, or taps.

Display XL — Cinzel 800 · 48px · uppercase · used once per page
XL Hotel
Display — Cinzel 700 · 32px · section titles
Rooms & Tariff
Title — Cinzel 700 · 22px · card and room names
Deluxe AC Room
Heading — Jost 600 · 17px · uppercase · sub-sections
Check-in & Check-out
Body — Jost 400 · 16px / 1.65
Check-in begins at 12 noon and check-out is 11 AM. Early check-in is subject to availability — call the front desk and we will hold your room when we can.
Small — Jost 400 · 14px  &  Caption — Jost 500 · 12px · uppercase
Free parking · Hot water · Power backup
Tariff includes GST
TokenFace / weightSize / lineRules
display-xlCinzel 80048 / 1.1Uppercase, letter-spacing .05em. Hero only.
displayCinzel 70032 / 1.15Uppercase, .06em. Section titles.
titleCinzel 70022 / 1.2Uppercase, .07em. Room and card names.
headingJost 60017 / 1.3Uppercase, .1em.
bodyJost 40016 / 1.65Sentence case. Max measure 64ch.
smallJost 40014 / 1.5Amenity lists, metadata.
captionJost 50012 / 1.4Uppercase, .14em. Labels, badges.

Prices always use font-variant-numeric: tabular-nums. Cinzel is never set in lowercase and never below 18px — below that, use Jost.

Tokens · 04

Spacing, Radius & Depth

A 4px base scale. Corners stay sharp — this brand is engraved, not bubbly: 2px on controls, 4px on cards, pill only on badges.

Spacing scale

--sp-14px
--sp-28px
--sp-312px
--sp-416px
--sp-524px
--sp-632px
--sp-748px
--sp-864px
--sp-996px
TokenValueUse
--r-12pxButtons, inputs
--r-24pxCards, panels, images
--r-pill999pxBadges only
--shadow-10 1px 2px rgba(0,0,0,.5)Resting cards on light grounds
--shadow-20 8px 28px rgba(0,0,0,.55)Modals, popovers
--glow-gold0 0 0 2px rgba(212,167,60,.55)Focus ring — every interactive element

On the dark ground, depth comes from the ink ramp (950 → 900 → 800), not shadows. Shadows exist for light-ground print pieces and overlays.

Components · 05

Components

Buttons

VariantUse whenSpec
PrimaryThe one main action per view — Book, Send EnquiryGold 500 fill · Ink 900 text · hover Champagne · active Gold 600
SecondarySupporting actions beside a primaryTransparent · Gold 600 border · hover 10% gold wash
GhostTertiary and inline actionsText only · hover 8% gold wash
DisabledUnavailable action, kept visibleInk 700 fill · 45% text — never a greyed gold

All buttons: Jost 600, uppercase, .08em tracking, 44px minimum height, 2px radius. Focus is always the gold glow ring, never browser default.

Badges

AC Non-AC Deluxe Fully Booked

AC is the premium offer, so it takes the gold fill; Non-AC takes the outline. Never invert this — the hierarchy is the pricing story.

Inputs

Enter a 10-digit mobile number.
Detected from your enquiry.

Labels sit above the field, caption style. Errors replace help text, never stack with it. Error text names the fix, not the failure.

Room card

◆ PHOTO ◆

Deluxe AC

AC

Queen bed · Smart TV · Hot water · 2 guests

₹1,800 / night
◆ PHOTO ◆

Standard AC

AC

Double bed · TV · Hot water · 2 guests

₹1,400 / night
◆ PHOTO ◆

Non-AC

Non-AC

Double bed · Fan · Hot water · 2 guests

₹999 / night

Room name in Cinzel title; amenities in Small with middle-dot separators; price in Champagne tabular figures. One gold “Book Now” per row of cards — the featured room.

Navigation

Nav sits on true black (#0A0908), one shade below the page, so the sign reads as a sign. Active link takes gold with a 1px underline. On mobile the links collapse; “Book Now” never does.

Patterns · 06

Booking Enquiry

XL Hotel takes bookings by phone and WhatsApp — the form is an enquiry, not a checkout. No payment fields, no accounts. Ask only what the front desk needs to hold a room.

We reply within 30 minutes, 7 AM – 11 PM.
RuleWhy
Dates first, contact lastGuests decide dates before they decide to give a number.
Success message names the room and dates back“Enquiry sent — Deluxe AC, 22–24 Aug. We’ll call you.” Confirms, not just thanks.
Phone link is always liveEvery page carries a tap-to-call. The form is one route, not the only one.

Tokens · 07

Motion & Accessibility

TokenValueUse
--t-fast150msHover, focus, button state changes
--t-std250msCard lift, accordion, dropdown
--t-slow400msPage-level reveals, gallery transitions
--ease-stdcubic-bezier(.2, 0, 0, 1)The only easing. Decisive out, no bounce.