skills/creative/popular-web-designs/templates/airbnb.md
Hermes Agent — Implementation Notes
The original site uses proprietary fonts. For self-contained HTML output, use these CDN substitutes:
- Primary:
DM Sans| Mono:system monospace stack- Font stack (CSS):
font-family: 'DM Sans', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;- Mono stack (CSS):
font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace;html<link href="https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,100..1000;1,9..40,100..1000&display=swap" rel="stylesheet">Use
write_fileto create HTML, serve viagenerative-widgetsskill (cloudflared tunnel). Verify visual accuracy withbrowser_visionafter generating.
Airbnb's website is a warm, photography-forward marketplace that feels like flipping through a travel magazine where every page invites you to book. The design operates on a foundation of pure white (#ffffff) with the iconic Rausch Red (#ff385c) — named after Airbnb's first street address — serving as the singular brand accent. The result is a clean, airy canvas where listing photography, category icons, and the red CTA button are the only sources of color.
The typography uses Airbnb Cereal VF — a custom variable font that's warm and approachable, with rounded terminals that echo the brand's "belong anywhere" philosophy. The font operates in a tight weight range: 500 (medium) for most UI, 600 (semibold) for emphasis, and 700 (bold) for primary headings. Slight negative letter-spacing (-0.18px to -0.44px) on headings creates a cozy, intimate reading experience rather than the compressed efficiency of tech companies.
What distinguishes Airbnb is its palette-based token system (--palette-*) and multi-layered shadow approach. The primary card shadow uses a three-layer stack (rgba(0,0,0,0.02) 0px 0px 0px 1px, rgba(0,0,0,0.04) 0px 2px 6px, rgba(0,0,0,0.1) 0px 4px 8px) that creates a subtle, warm lift. Combined with generous border-radius (8px–32px), circular navigation controls (50%), and a category pill bar with horizontal scrolling, the interface feels tactile and inviting — designed for browsing, not commanding.
Key Characteristics:
#ff385c) as singular brand accent--palette-*) for systematic color management#222222) — warm, not cold#460479) and Plus Magenta (#92174d) for premium tiers#ff385c): --palette-bg-primary-core, primary CTA, brand accent, active states#e00b41): --palette-bg-tertiary-core, pressed/dark variant of brand red#c13515): --palette-text-primary-error, error text on light#b32505): --palette-text-secondary-error-hover, error hover#460479): --palette-bg-primary-luxe, Airbnb Luxe tier branding#92174d): --palette-bg-primary-plus, Airbnb Plus tier branding#222222): --palette-text-primary, primary text — warm, not cold#3f3f3f): --palette-text-focused, focused state text#6a6a6a): Secondary text, descriptionsrgba(0,0,0,0.24)): --palette-text-material-disabled, disabled state#929292): --palette-text-link-disabled, disabled links#428bff): --palette-text-legal, legal links, informational#c1c1c1): Border color for cards and dividers#f2f2f2): Circular navigation buttons, secondary surfaces#ffffff): Page background, card surfacesrgba(0,0,0,0.02) 0px 0px 0px 1px, rgba(0,0,0,0.04) 0px 2px 6px, rgba(0,0,0,0.1) 0px 4px 8px): Three-layer warm liftrgba(0,0,0,0.08) 0px 4px 12px): Button hover elevationAirbnb Cereal VF, fallbacks: Circular, -apple-system, system-ui, Roboto, Helvetica Neue"salt" (stylistic alternates) on specific caption elements| Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
|---|---|---|---|---|---|---|
| Section Heading | Airbnb Cereal VF | 28px (1.75rem) | 700 | 1.43 | normal | Primary headings |
| Card Heading | Airbnb Cereal VF | 22px (1.38rem) | 600 | 1.18 (tight) | -0.44px | Category/card titles |
| Card Heading Medium | Airbnb Cereal VF | 22px (1.38rem) | 500 | 1.18 (tight) | -0.44px | Lighter variant |
| Sub-heading | Airbnb Cereal VF | 21px (1.31rem) | 700 | 1.43 | normal | Bold sub-headings |
| Feature Title | Airbnb Cereal VF | 20px (1.25rem) | 600 | 1.20 (tight) | -0.18px | Feature headings |
| UI Medium | Airbnb Cereal VF | 16px (1.00rem) | 500 | 1.25 (tight) | normal | Nav, emphasized text |
| UI Semibold | Airbnb Cereal VF | 16px (1.00rem) | 600 | 1.25 (tight) | normal | Strong emphasis |
| Button | Airbnb Cereal VF | 16px (1.00rem) | 500 | 1.25 (tight) | normal | Button labels |
| Body / Link | Airbnb Cereal VF | 14px (0.88rem) | 400 | 1.43 | normal | Standard body |
| Body Medium | Airbnb Cereal VF | 14px (0.88rem) | 500 | 1.29 (tight) | normal | Medium body |
| Caption Salt | Airbnb Cereal VF | 14px (0.88rem) | 600 | 1.43 | normal | "salt" feature |
| Small | Airbnb Cereal VF | 13px (0.81rem) | 400 | 1.23 (tight) | normal | Descriptions |
| Tag | Airbnb Cereal VF | 12px (0.75rem) | 400–700 | 1.33 | normal | Tags, prices |
| Badge | Airbnb Cereal VF | 11px (0.69rem) | 600 | 1.18 (tight) | normal | "salt" feature |
| Micro Uppercase | Airbnb Cereal VF | 8px (0.50rem) | 700 | 1.25 (tight) | 0.32px | text-transform: uppercase |
Primary Dark
#222222 (near-black, not pure black)#ffffffvar(--accent-bg-error)0 0 0 2px var(--palette-grey1000) ring + scale(0.92)Circular Nav
#f2f2f2#222222rgba(0,0,0,0.08) 0px 4px 12px + translateX(50%)#ffffffrgba(0,0,0,0.02) 0px 0px 0px 1px, rgba(0,0,0,0.04) 0px 2px 6px, rgba(0,0,0,0.1) 0px 4px 8px (three-layer)#222222 textvar(--palette-bg-primary-error) background tint + 0 0 0 2px ring| Level | Treatment | Use |
|---|---|---|
| Flat (Level 0) | No shadow | Page background, text blocks |
| Card (Level 1) | rgba(0,0,0,0.02) 0px 0px 0px 1px, rgba(0,0,0,0.04) 0px 2px 6px, rgba(0,0,0,0.1) 0px 4px 8px | Listing cards, search bar |
| Hover (Level 2) | rgba(0,0,0,0.08) 0px 4px 12px | Button hover, interactive lift |
| Active Focus (Level 3) | rgb(255,255,255) 0px 0px 0px 4px + focus ring | Active/focused elements |
Shadow Philosophy: Airbnb's three-layer shadow system creates a warm, natural lift. Layer 1 (0px 0px 0px 1px at 0.02 opacity) is an ultra-subtle border. Layer 2 (0px 2px 6px at 0.04) provides soft ambient shadow. Layer 3 (0px 4px 8px at 0.1) adds the primary lift. This graduated approach creates shadows that feel like natural light rather than CSS effects.
#222222 (warm near-black) for text — never pure #000000#ff385c) only for primary CTAs and brand moments — it's the singular accent#000000) for text — always #222222 (warm)--palette-* variables consistently| Name | Width | Key Changes |
|---|---|---|
| Mobile Small | <375px | Single column, compact search |
| Mobile | 375–550px | Standard mobile listing grid |
| Tablet Small | 550–744px | 2-column listings |
| Tablet | 744–950px | Search bar expansion |
| Desktop Small | 950–1128px | 3-column listings |
| Desktop | 1128–1440px | 4-column grid, full header |
| Large Desktop | 1440–1920px | 5-column grid |
| Ultra-wide | >1920px | Maximum grid width |
Note: Airbnb has 61 detected breakpoints — one of the most granular responsive systems observed, reflecting their obsession with layout at every possible screen size.
#ffffff)#222222)#ff385c)#6a6a6argba(0,0,0,0.24)rgba(0,0,0,0.02) 0px 0px 0px 1px#f2f2f2