Expedia

Expedia's iOS app is a deal-forward travel marketplace wrapped in a confident, trip-blue identity.

Back to all styles

A live page in this style is not built yet — the CSS variables and the prompt below are enough to reproduce it.

At a glance

24tokens
11type steps
2radius steps
3pxspacing base

Expedia, in one page

Expedia's iOS app is a deal-forward travel marketplace wrapped in a confident, trip-blue identity. The light canvas is a clean near-white (#FFFFFF / #F5F7FA) and the app's emotional center of gravity is the moment you see a *better price*: bundle savings, member prices, and One Key rewards are surfaced everywhere, almost always in the brand's signature Expedia Yellow (#FFC94D). The app is dense but not cluttered — it leans on full-bleed property and destination photography, big legible price typography, and a yellow "savings" accent that punches against the otherwise blue-and-grey chrome. Where Airbnb whispers and Notion disappears, Expedia *sells*: every card has a reason-to-believe (a strikethrough price, a "−24% Bundle" flag, a "Member price" tag, an "Earn 2,040 One Key cash" line).

The structural anchor is the search-and-results loop. Open the app and you land on a search surface with a segmented mode switch — Stays / Flights / Cars / Packages (Bundle) — sitting above a single tappable search pill ("San Diego, CA · Oct 12–17 · 2 travelers · 1 room"). Tap search and you drop into a vertically scrolling results list of property cards: a 16:10 hero photo with a deal flag top-left and a save-heart top-right, then title, neighborhood, a navy review-score badge ("9.2 Wonderful · 1,847 reviews"), a price block (strikethrough → discounted → "/ night"), and a gold One Key earn line. This card is the workhorse of the entire app and its anatomy is repeated for flights (fare cards) and cars.

Color is purposeful and role-bound. Expedia Yellow #FFC94D is the *savings/deal/loyalty highlight* — bundle tags, member-price flags, the One Key chip, primary "Bundle & save" CTAs. Action Blue #1668E3 is the *interactive* color — links, secondary CTAs, the reserve button, selected states. Expedia Navy #00355F is the *brand/trust* color — the logomark field, review-score badge backgrounds, dark headers. One Key gold #F5C518 is a tightly-scoped *rewards-only* color — One Key cash balances and "earn" lines, never used for generic UI. There is a clear hierarchy: navy says "trusted travel brand," blue says "tap me," yellow says "you're saving money," gold says "this is your loyalty currency."

Typography is Expedia Sans (the company's proprietary geometric humanist family, designed by Pentagram for the 2017+ rebrand), which falls back gracefully to Inter / SF Pro on iOS when the bundled face is unavailable. The hierarchy is product-UI rhythm (display → screen title → section → card title → body → meta → badge), not editorial. Prices are the loudest non-display element: an 18pt 800-weight number with a strikethrough antecedent and a quiet "/ night" suffix. Weights concentrate at 400 (body), 600 (subtitles, badges), 700 (card titles, sections), 800 (display, prices).

Key Characteristics:

Do's and don'ts

Do

  • Use Expedia Yellow (#FFC94D) strictly for savings/deal/loyalty highlights — bundle tags, member prices, One Key chip, the "Bundle & save" CTA
  • Put navy #00355F text on yellow, white on Action Blue #1668E3
  • Lead every result card with a 16:10 photo; deal flag top-left, save heart top-right
  • Show the review-score badge with score + word + count ("9.2 Wonderful · 1,847 reviews")
  • Use the strikethrough → discounted price pattern when there is a real saving
  • Reserve One Key gold (#F5C518) exclusively for rewards balances and earn lines
  • Use Action Blue (#1668E3) for the primary "Reserve" CTA and all links
  • Give cards a 16pt gap and a soft 0 4px 12px shadow so each is a discrete decision
  • Carry the search-and-results loop: segmented mode switch → search pill → vertical list
  • Use a navy-biased dark canvas (#0E1116), NOT pure black
  • Animate a brief yellow price flash when a price drops

Don't

  • Don't use Expedia Yellow for generic chrome, body text, or non-savings UI — it dilutes the savings signal
  • Don't put white text on yellow or yellow text on blue (contrast + brand violation)
  • Don't use One Key gold for anything other than rewards (no generic icons, no body accents)
  • Don't show a strikethrough price when there is no real discount
  • Don't bury the review-score badge — it's the primary trust signal and must front the card
  • Don't use pure black (#000000) for the dark canvas — #0E1116 carries the navy bias
  • Don't make the bundle/savings CTA blue — the highest-intent action is yellow
  • Don't over-shadow flat elements (deal flags, badges, One Key chip stay flat)
  • Don't crowd the One Key earn line with other copy — it has its own lane
  • Don't animate aggressively — motion is functional, 180–320ms ease-out
  • Don't replace the segmented mode switch with a dropdown — Stays/Flights/Cars/Bundle is a glanceable, always-visible switch

Copy this into your AI builder

Paste it as-is. Every value below was measured from the original site, not guessed.

Assembled from the measured tokens — the source document has no prompt block.

Build a page in the Expedia design language. Follow the measured tokens below — do not substitute your own palette.

Colors:
- Expedia Yellow: #ffc94d
- Action Blue: #1668e3
- Expedia Navy: #00355f
- One Key gold: #f5c518
- Yellow Deep: #ffb31a
- Action Blue Pressed: #0f4fb0
- Navy Soft: #14416b
- Canvas White: #ffffff
- Surface Gray: #f5f7fa
- Surface Pressed: #eceff4

Type:
- families: Expedia Sans, Fallback Stack, Inter, Numerals
- scale: 10, 11, 12, 13, 14, 15, 16, 18, 22
- weights: 400, 600, 700, 800

Shape:
- radius: 8, 14
- elevation: Shadow: `0 4px 12px rgba(0,0,0,0.08)` / `rgba(0,0,0,0.4)` | Pill, 12pt radius, drop shadow `0 2px 6px rgba(0,0,0,0.4)` | Don't over-shadow flat elements (deal flags, badges, One Key chip stay flat)

Spacing: 3, 12, 14, 16

Rules:
- Use Expedia Yellow (`#FFC94D`) strictly for savings/deal/loyalty highlights — bundle tags, member prices, One Key chip, the "Bundle & save" CTA
- Put navy `#00355F` text on yellow, white on Action Blue `#1668E3`
- Lead every result card with a 16:10 photo; deal flag top-left, save heart top-right
- Show the review-score badge with score + word + count ("9.2 Wonderful · 1,847 reviews")
- Use the strikethrough → discounted price pattern when there is a real saving
- Reserve One Key gold (`#F5C518`) exclusively for rewards balances and earn lines

Avoid:
- Don't use Expedia Yellow for generic chrome, body text, or non-savings UI — it dilutes the savings signal
- Don't put white text on yellow or yellow text on blue (contrast + brand violation)
- Don't use One Key gold for anything other than rewards (no generic icons, no body accents)
- Don't show a strikethrough price when there is no real discount
- Don't bury the review-score badge — it's the primary trust signal and must front the card
- Don't use pure black (`#000000`) for the dark canvas — `#0E1116` carries the navy bias

Keep every value literal. If a token is given, use that exact value.

The specification

Colour paletteRead the full spec

Primary (Brand & Interactive)

  • Expedia Yellow (#FFC94D): Savings/deal/loyalty highlight — bundle tags, member-price flags, One Key chip, "Bundle & save" primary CTA fill (text on it is navy #00355F).
  • Yellow Deep (#FFB31A): Pressed state for yellow CTAs and tags.
  • Action Blue (#1668E3): Primary interactive — "Reserve" CTA, links, secondary CTAs, selected segment underline, in-card actions.
  • Action Blue Pressed (#0F4FB0): Pressed state for blue CTAs.
  • Expedia Navy (#00355F): Brand/trust — logomark field, review-score badge background, dark hero overlays, top app bar on detail screens.
  • Navy Soft (#14416B): Lighter navy for secondary badges and chips on dark.
  • One Key Gold (#F5C518): Rewards-only — One Key cash balance, "Earn X One Key cash" lines, One Key membership chip. Never used for generic UI.

Canvas & Surfaces (Light Mode)

  • Canvas White (#FFFFFF): Primary light canvas, card backgrounds.
  • Surface Gray (#F5F7FA): App background behind cards, grouped sections.
  • Surface Pressed (#ECEFF4): Pressed rows, selected list items.
  • Divider (#E3E7ED): Hairline dividers between rows, card borders.
  • Scrim (#00000066): 40% black overlay on hero photos for text legibility.

Canvas & Surfaces (Dark Mode)

  • Dark Canvas (#0E1116): Primary dark canvas — carries a subtle navy bias (NOT pure black) echoing Expedia Navy.
  • Dark Surface 1 (#161B22): Card backgrounds, elevated surfaces.
  • Dark Surface 2 (#1F2630): Chips, segmented controls, secondary fills.
  • Dark Divider (#2A323E): Hairline dividers and card borders.
  • Dark Scrim (#00000080): 50% black overlay on hero photos.

Text

  • Text Primary Light (#1A1F26): Primary body and titles on light.
  • Text Secondary Light (#5A6573): Metadata, neighborhoods, captions.
  • Text Tertiary Light (#8A95A3): Strikethrough prices, disabled.
  • Text Primary Dark (#E8EBEF): Primary text on dark.
  • Text Secondary Dark (#9AA4B2): Metadata on dark.
  • Text Tertiary Dark (#6A7585): Strikethrough prices, disabled on dark.

Semantic

  • Success Green (#1A8B4B): "Free cancellation", high review scores (9.0+ badge), confirmed booking.
  • Error Red (#D93A3A): Form errors, "Only 2 rooms left at this price" urgency, cancellation warnings.
  • Warning Amber (#E8830C): Price-change alerts, "Prices may rise" banners.
  • Star Gold (#FFC94D): Star ratings on properties (shares Expedia Yellow).
  • Member Price Tint (#FFC94D1F): 12% yellow background behind member-price callouts.

Review-Score Badge Color Ramp

The navy/blue/green badge that fronts every property — color shifts with score band.

Score BandBadge BackgroundLabel Text
9.0–10 (Wonderful)#1A8B4BWonderful
8.0–8.9 (Excellent)#1668E3Excellent
7.0–7.9 (Very Good / Good)#14416BGood
6.0–6.9 (Pleasant)#5A6573Pleasant
< 6.0#8A95A3—
Type scaleRead the full spec

Font Family

  • Primary: Expedia Sans (proprietary, by Pentagram for Expedia Group, 2017+ rebrand) — geometric humanist sans tuned for travel commerce: legible price figures, generous x-height, confident bold weights.
  • Fallback Stack: 'Expedia Sans', -apple-system, BlinkMacSystemFont, 'SF Pro Display', 'SF Pro Text', 'Inter', 'Segoe UI', Roboto, Helvetica, Arial, sans-serif
  • Closest free substitute: Inter (by Rasmus Andersson, SIL OFL) — matched x-height, geometric construction, excellent tabular figures for prices.
  • Numerals: Tabular/lining figures for all prices and review scores (so columns of prices align).

Hierarchy

RoleFontSizeWeightLine HeightLetter SpacingNotes
DisplayExpedia Sans32pt8001.15-0.6ptHome hero ("Find your next trip")
Screen TitleExpedia Sans26pt8001.2-0.4ptDestination / results header
SectionExpedia Sans22pt7001.25-0.2pt"Bundle + Save deals"
Card TitleExpedia Sans18pt7001.3-0.2ptProperty / fare name
Price (Now)Expedia Sans18pt8001.2-0.2ptDiscounted price figure
BodyExpedia Sans16pt4001.50ptDescriptions, policy text
Card SubtitleExpedia Sans15pt6001.350ptNeighborhood, "0.4 mi from center"
Review ScoreExpedia Sans15pt8001.00pt"9.2" inside navy badge
MetaExpedia Sans14pt4001.40pt"1,847 reviews · Free cancellation"
Price (Strike)Expedia Sans13pt4001.00ptStrikethrough antecedent price
Badge / TagExpedia Sans12pt6001.00.2pt"−24% Bundle", "Member price"
One Key LineExpedia Sans11pt7001.20.1pt"Earn 2,040 One Key cash"
ButtonExpedia Sans16pt7001.00ptPrimary/secondary CTAs
Tab LabelExpedia Sans10pt6001.00.1ptBottom tab labels

Principles

  • Price is the loudest content element: discounted price at 18pt 800, strikethrough at 13pt 400 tertiary, "/ night" suffix at 12pt secondary — the eye lands on savings.
  • Tabular figures everywhere prices appear: prices, review scores, point balances must align in vertical lists.
  • Weight concentrated at 400 / 600 / 700 / 800: body regular, subtitles/badges semibold, titles/sections bold, display/prices extra-bold. No thin, no black.
  • Navy on yellow, white on blue: text on Expedia Yellow is always navy #00355F; text on Action Blue is always white #FFFFFF.
  • Dynamic Type first-class: display, titles, body, prices scale; tab labels, badges, One Key lines stay fixed.
Components and layoutRead the full spec

Buttons

Primary Button (Reserve / Continue)

  • Shape: Rounded rectangle, 8pt corner radius
  • Background: #1668E3 (Action Blue)
  • Text: #FFFFFF, Expedia Sans 16pt weight 700
  • Padding: 14pt vertical, 28pt horizontal
  • Full-width on detail/checkout screens (leading + trailing 16pt insets)
  • Pressed: background #0F4FB0 + scale 0.98
  • Disabled: #1668E3 at 38% opacity

Savings / Bundle Button (Bundle & save)

  • Shape: Rounded rectangle, 8pt corner radius
  • Background: #FFC94D (Expedia Yellow)
  • Text: #00355F (Expedia Navy), Expedia Sans 16pt weight 700
  • Padding: 14pt vertical, 28pt horizontal
  • Pressed: background #FFB31A + scale 0.98
  • Used for the package/bundle conversion CTA — the highest-intent action

Secondary / Outline Button (Add a flight)

  • Background: transparent
  • Text: #1668E3 (Action Blue)
  • Border: 1pt #1668E3
  • Padding: 12pt vertical, 20pt horizontal
  • Corner radius: 8pt
  • Pressed: background #1668E31A (10% blue)

Text Button (See all 38 deals)

  • Font: Expedia Sans 14pt weight 600
  • Color: #1668E3
  • No underline; chevron trailing optional
  • Pressed: 60% opacity

Icon Button (Save heart)

  • Size: 20pt glyph in 30pt circular hit area
  • On hero photo: filled-black-40% circle behind for contrast
  • Unsaved: hollow heart, #FFFFFF stroke 1.8pt, rgba(0,0,0,0.4) fill
  • Saved: filled #1668E3 with #FFFFFF 1.6pt stroke
  • Toggle: scale-bounce 1.0 → 1.2 → 1.0 in 220ms + soft haptic

Core Atoms

Property / Result Card

  • Container: #FFFFFF light / #161B22 dark, 16pt corner radius, 0.5pt #E3E7ED / #2A323E border, subtle shadow 0 4px 12px rgba(0,0,0,0.08) light / 0 4px 12px rgba(0,0,0,0.4) dark
  • Hero photo: full-width, 16:10 aspect ratio, square top corners (clipped to card radius)
  • Deal flag (top-left, 12pt inset): #FFC94D background, #00355F text, Expedia Sans 12pt w800, 6pt corner radius, 4pt vertical / 9pt horizontal padding ("−24% Bundle", "Member price")
  • Save heart (top-right, 10pt inset): see Icon Button
  • Body padding: 12pt top, 14pt horizontal, 14pt bottom
  • Title: Expedia Sans 18pt w700
  • Subtitle (location): Expedia Sans 15pt w600 secondary, 3pt below title
  • Review-score row (8pt below subtitle): navy badge (#14416B/#1A8B4B/#1668E3 per band) with white 15pt w800 score + 6pt gap + word ("Wonderful") in 12pt w700 + " · 1,847 reviews" in 12pt secondary
  • Price row (10pt below): optional strikethrough #8A95A3 13pt + discounted #1A1F26 18pt w800 + "/ night" 12pt secondary
  • One Key earn line (7pt below): gold dot/coin + "Earn 2,040 One Key cash" Expedia Sans 11pt w700 #F5C518

Flight / Fare Card (variant of result card)

  • Top row: airline logo (24pt) + airline name + cabin
  • Center: depart time → duration arc with stops dots → arrive time (times Expedia Sans 18pt w700, airport codes 13pt secondary)
  • Bottom: price block (right-aligned, 18pt w800) + "Round trip" 12pt secondary + One Key earn line
  • "Hacker fare" / "Self-transfer" badge: amber #E8830C chip when mixed-carrier

Review-Score Badge

  • Rounded rectangle, 6pt corner radius
  • Background per score band (see §2 ramp)
  • Text: white, Expedia Sans 15pt w800
  • Padding: 3pt vertical, 7pt horizontal
  • Always paired with a word label and review count to its right

Price Block

  • Strikethrough antecedent: Expedia Sans 13pt w400 #8A95A3, line-through
  • Discounted/now: Expedia Sans 18pt w800 #1A1F26 (or #E8EBEF dark)
  • Period suffix: Expedia Sans 12pt w400 secondary, baseline-aligned
  • "Member price" / "Bundle price" label: 12pt w600, color = green #1A8B4B for member, navy #00355F on yellow tag for bundle

One Key Chip / Pill

  • Pill, 500pt corner radius
  • Background: #1F2630 dark / #FFC94D1F light
  • Leading 7pt gold dot or coin glyph
  • Text: Expedia Sans 11pt w700 #F5C518
  • Content: "12,480 One Key" or "$124.80 One Key cash"

Navigation

Bottom Tab Bar

  • Height: 52pt + safe area
  • Background: #FFFFFF / #0E1116 with 0.5pt top divider #E3E7ED / #2A323E
  • Tabs (5): Search, Saved, Trips, Support, Account
  • Icon size: 22pt
  • Active: #1668E3 (Action Blue), filled glyph
  • Inactive: #8A95A3 / #6A7585, outline glyph
  • Labels: Expedia Sans 10pt w600, always shown
  • No pill indicator — color + fill change only

Top App Bar (Detail / Results)

  • Height: 44pt + safe area
  • On photo hero: transparent → solidifies to #FFFFFF/#0E1116 on scroll
  • Leading: back chevron (white over photo, primary text once solid)
  • Trailing: share + save heart
  • Title: appears centered on scroll past hero

Segmented Mode Switch (Stays / Flights / Cars / Bundle)

  • 4 equal segments, each a 10pt-radius pill, 9pt vertical padding
  • Inactive: #F5F7FA/#1F2630 background, #5A6573/#9AA4B2 text, 0.5pt divider border
  • Active: #FFC94D background, #00355F text, no border
  • Transition: 200ms ease-out background + text color crossfade

Input Fields

Search Pill (the entry point)

Responsive behaviourRead the full spec

Device Sizes

DeviceWidthKey Changes
iPhone SE (3rd gen)375ptSingle column; hero photo 16:10; segmented switch labels may abbreviate
iPhone 13/14/15390ptStandard layout
iPhone 15/16 Pro393ptDynamic Island accommodated; sticky CTA respects safe area
iPhone 15/16 Pro Max430ptLarger hero photos; 2-line meta has more room
iPad (portrait)768pt2-column results grid; detail in split view (list + detail)
iPad (landscape)1024pt+Results list + persistent map pane side-by-side

Dynamic Type

  • Display, screen title, section, card title, body, prices: full scale
  • Tab labels, deal flags/badges, One Key lines, review-score number: FIXED (layout-sensitive)
  • Prices keep tabular figures at every scale

Orientation

  • iPhone: portrait-primary; landscape supported on detail/photo gallery
  • iPad: full rotation; landscape unlocks side-by-side list + map

Touch Targets

  • Save heart: 30pt circle hit (20pt glyph)
  • Tab bar icons: 22pt glyph, 44pt hit
  • Segmented switch segment: full segment height (≥ 36pt)
  • Search pill: full 52pt height tappable
  • Primary CTA: ≥ 48pt tall

Safe Area Handling

  • Top app bar respects safe area + Dynamic Island
  • Sticky CTA bar and bottom tab respect home indicator
  • Map result carousel floats above bottom safe area
  • Keyboard: search form scrolls above keyboard; date picker is a sheet above it

Drop-in CSS variables

The same values as a theme block. Add the class to <body> and the site repaints.

body.theme-expedia {--page-bg: #ffffff;
  --page-bg-gradient: none;
  --text-color: #000000;
  --heading-color: #000000;
  --link-color: #986900;
  --link-hover-color: #654600;
  --border-color: #d1d1d1;
  --card-bg: #ffffff;
  --card-shadow: 0 1px 2px rgba(0,0,0,0.06);
  --card-hover-shadow: 0 6px 18px rgba(0,0,0,0.12);
  --header-bg: #000000;
  --header-text-color: #ffffff;
  --header-shadow: none;
  --footer-bg: #ffffff;
  --footer-text-color: #595959;
  --button-bg: #ffc94d;
  --button-text-color: #000000;
  --button-hover-bg: #ffba1a;
  --button-border: none;
  --button-border-radius: 14px;
  --button-secondary-bg: #f0f0f0;
  --button-secondary-text-color: #000000;
  --button-secondary-hover-bg: #e0e0e0;
  --button-secondary-border: 1px solid #d1d1d1;
  --prompt-bg: #f2f2f2;
  --prompt-text-color: #000000;
  --base-font: var(--font-helvetica);
  --heading-font: var(--font-inter);
  --card-border-radius: 14px;
}

Download theme.css

Visually close to

Measured with a deterministic colour + geometry comparison across 958 styles. Not a hand-picked list.

Where this came from

Source document
ios/design-md/travel/expedia/DESIGN.md · 26.8 KB
Repository
Meliwat/awesome-ios-design-md
Licence
MIT

Source text is reproduced under its original licence. Tokens, similarity scores and page structure are ours.