Skyscanner's design system uses #0062e3 as its primary color and Inter for typography, with 8px corner radius. Skyscanner's product speaks with the confidence of a global travel marketplace that has handled hundreds of millions of searches — clear, energetic, and trustworthy, without the corporate gravity of legacy airline bookin
Skyscanner's product speaks with the confidence of a global travel marketplace that has handled hundreds of millions of searches — clear, energetic, and trustworthy, without the corporate gravity of legacy airline booking tools. The system opens on a pure white canvas (#ffffff) wrapped in a luminous, cornflower-sky blue (#0062e3) for its primary CTA, while a deep midnight navy (#05203c) anchors contrast surfaces, headers-on-dark, and the brand's most authoritative moments. The result is a palette that feels genuinely sky-inspired — open, optimistic, and reliably actionable.
Skyscanner's typographic identity is built on a custom geometric sans, "Skyscanner Relative", a humanist typeface designed in-house that forms the foundation of every word in the product — from hero headlines at weight 900 to button labels at weight 700 to body text at 400. A secondary editorial serif, Larken, is reserved for brand storytelling surfaces (audience/campaign pages), giving the system an expressive toggle between two registers: functional sans and editorial serif. The body size is a deliberate 16px at 1.5 line-height, engineered for scan-first search interactions where users compare prices and routes at speed.
The design language is defined by rounded softness at every scale: corner radii cascade from 4px (checkbox borders) through 8px (buttons, chips) to 12px (search panels, major cards) and 100px (product-selector pill tabs). The search form itself — Skyscanner's most visited surface — is a card composed of white-background input blocks with generous 72px height, minimal borders, and a single electric-blue submit button. Depth comes from a dual-layer shadow system: a neutral rgba(0,0,0,0.08) fill-shadow layered with a subtle rgb(230,233,235) inset ring for cards, and a three-level ambient/standard/XL scale for floating panels.
Key Characteristics:
#0062e3 (Backpack --bpk-core-accent) as the single interactive/CTA colour#05203c (Backpack --bpk-core-primary) for dark surfaces and brand depthrgba(0,0,0,0.08) + rgb(230,233,235) ring border#0fa1a9) for environmental/sustainability signals (green travel)#0062e3): --bpk-core-accent. The system's single interactive colour — primary CTA backgrounds, links, active tabs, checkbox fills, segmented-control selected state, and the search submit button. This is the colour Skyscanner owns.#05203c): --bpk-core-primary / --bpk-surface-contrast. The deepest brand colour — hero section backgrounds (dark), the chip-filter active state, the search panel's "swap origin and destination" button ring. Not black; a deep indigo-navy with travel-brand personality.#ffffff): Page canvas, card surfaces, text on dark/blue backgrounds, input fields.#eff3f8): --bpk-canvas-contrast. The cool-off-white secondary surface — badge backgrounds, info-banner backgrounds, alternate section tints.#f7f9fb): Subtler page tint, hover states on secondary items.#e3f0ff): Blue-tinted subtle surface for promotional sections and active DS sidebar items.#e0e4e9): --bpk-surface-highlight. Disabled backgrounds, secondary button fill.#161616): --bpk-text-primary. Primary body text. Near-black with a warm undertone — not pure black.#626971): --bpk-text-secondary. Secondary body text, captions, metadata.#c1c7cf): --bpk-other-line-default. Standard border — input outlines, chip borders, dividers.#024daf): Button and active-state hover for blue actions.#154679): Pressed state, date-selector highlight, deep hover.#0fa1a9): --bpk-core-eco. Sustainability / green travel signal — unique in the palette.#e70866): --bpk-status-danger-spot. Form validation errors, destructive states.#0c838a): --bpk-status-success-spot. Confirmation, positive status.#f55d42): --bpk-status-warning-spot. Disruption / delay alerts.'Skyscanner Relative' — custom humanist geometric sans, developed in-house. Fallback: -apple-system, BlinkMacSystemFont, Roboto, Oxygen, Ubuntu, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif. Global locale fallbacks include Noto Sans family variants for CJK, Arabic, Hebrew, Thai.'Larken' — serif typeface reserved for Brand World / audience / campaign surfaces only. Never used in product UI.| Role | Font | Size | Weight | Line Height | Notes |
|---|---|---|---|---|---|
| Display | Skyscanner Relative | 64px | 900 | ~1.20 | Brand World hero; very few words only |
| Hero 1 | Skyscanner Relative | 40px | 700 | 1.25 | Page hero headline |
| Hero 2 | Skyscanner Relative | 32px | 700 | 1.25 | Secondary hero / feature section |
| Heading 1 | Skyscanner Relative | 28px | 700 | 1.30 | Major headings |
| Heading 2 | Skyscanner Relative | 24px | 700 | 1.30 | Sub-section headings |
| Body Large | Skyscanner Relative | 20px | 400 | 1.40 | Feature descriptions |
| Body Default | Skyscanner Relative | 16px | 400 | 1.50 | Standard reading text |
| Body Small | Skyscanner Relative | 14px | 400 | 1.43 | Captions, secondary UI |
| Label | Skyscanner Relative | 14px | 700 | 1.43 | Button labels, form labels |
| Caption | Skyscanner Relative | 12px | 400 | 1.33 | Fine print, metadata |
Primary
#0062e3#ffffff#024daf backgroundPrimary Large
#0062e3#ffffffSecondary
#e0e4e9#161616#c1c7cf backgroundDestructive (Danger)
#e0e4e9#e70866#e70866 background with white textSecondary on Dark
rgba(255,255,255,0.1)#ffffffSearch Input Block
#ffffffStandard Input
#ffffff#c1c7cf#0062e3Checkbox
#0062e3#626971Standard Card
#ffffffrgba(0,0,0,0.08) 0px 4px 8px 0px, rgb(230,233,235) 0px 0px 0px 1pxSurface Contrast Card
#05203c#ffffffTinted Surface Card
#eff3f8Info Badge
#e3f0ff#0062e3Filter Chip (Off)
#c1c7cf#161616Filter Chip (On / Active)
#05203c#ffffffProduct Tab (Active)
#0062e3#ffffffProduct Tab (Inactive)
#ffffffrgba(255,255,255,0.5) 0px 0px 0px 1px insetNavigation Tab (Active)
#024daf#ffffffVerified: 2026-06-22 Tier 1 sources: https://www.skyscanner.design (Backpack design system — live CSS token extraction and component inspect); https://github.com/Skyscanner/backpack/blob/main/token-sync/css/theme-backpack-light.css (published CSS variables — authoritative token source); https://unpkg.com/@skyscanner/bpk-foundations-web@24.6.0/tokens/base.default.scss (npm package token file — spacing, radius, typography scale); https://www.skyscanner.co.kr/ (live homepage inspect via playwright getComputedStyle — button/tab/input computed values) Tier 2 sources: getdesign.md/skyscanner — "No designs found"; styles.refero.design/?q=skyscanner — no Skyscanner entry found (results were unrelated travel brands) Conflicts unresolved: none
#05203c) background with centered search widget#eff3f8)| Level | Treatment | Use |
|---|---|---|
| Flat (0) | No shadow | Page background, nav, inline text |
| SM (1) | rgba(22,22,22,0.25) 0px 1px 3px | Subtle lift, tooltip, chip hover |
| Card (2) | rgba(0,0,0,0.08) 0px 4px 8px, rgb(230,233,235) 0px 0px 0px 1px | Flight/hotel result cards, content panels |
| MD (3) | rgba(22,22,22,0.25) 0px 4px 14px | Dropdowns, date picker popover |
| XL (4) | rgba(22,22,22,0.25) 0px 12px 50px | Modals, popovers, autosuggest panel |
Shadow philosophy: Skyscanner's shadow system is neutral — rgba(22,22,22,0.25) uses the brand's off-black foreground colour (not pure black) as the shadow source, keeping depth warm rather than cold. The card-level shadow adds a rgb(230,233,235) inset ring (nearly invisible on white) that creates a crisp, inset-border effect without a visible CSS border — this is the characteristic "floating card" look of Skyscanner's search results.
#0062e3 (Sky Blue) for all interactive/CTA elements — it's the action colourrgba(0,0,0,0.08) + rgb(230,233,235) ring) for content cards#05203c navy as the hero background — the brand's confident dark surface#0fa1a9 eco teal exclusively for sustainability and environmental signals#000000) for text — foreground is #161616#0062e3) with other accent colours on the same surface| Name | Width | Key Changes |
|---|---|---|
| Mobile | <768px | Single column, stacked search blocks, compressed nav |
| Tablet | 768-1024px | 2-column capability, expanded product tabs |
| Desktop | 1024-1280px | Full search widget, 3-column results grid |
| Large Desktop | >1280px | Centered content with fixed max-width (~1280px) |
#0062e3)#024daf)#ffffff)#05203c)#eff3f8)#161616)#626971)#c1c7cf)#0fa1a9)#e70866)#0c838a)#05203c midnight navy. Center a horizontal row of pill tabs (100px radius, 36px height, 0px 16px padding) — active tab: #0062e3 bg, white text; inactive: transparent, white text, 1px inset rgba(255,255,255,0.5) border. Below tabs: white search panel card, 12px radius, grouped input blocks 72px height each, Skyscanner Relative 16px/400. CTA button: #0062e3, 12px radius, 12px 16px padding, white text."#0062e3. Skyscanner Relative — price at 20px/700, details at 14px/400, #626971."#c1c7cf border, #161616 text. On: #05203c bg, white text."#e3f0ff background, #0062e3 text, 6px radius, 4px 8px padding, 12px/400 Skyscanner Relative."#0fa1a9 background (or tinted surface with eco text), paired with leaf icon. Signals low-carbon flight option."#0062e3 Sky Blue = action. Use it for exactly one primary CTA per section#05203c navy = the brand's confident dark — use for hero backgrounds and high-contrast surfacesrgba(0,0,0,0.08) 0px 4px 8px, rgb(230,233,235) 0px 0px 0px 1px#0fa1a9) belongs only to sustainability/environmental signalsSkyscanner's voice is curious, helpful, and refreshingly human — a savvy travel companion, not a booking engine. The product's purpose is to remove complexity from travel planning, and the copy reflects this: straightforward, jargon-free, and action-oriented. Skyscanner communicates with a light British wit — enough personality to feel alive, never enough to be distracting. The company's Edinburgh heritage shows in understated confidence: Skyscanner doesn't hype, it clarifies.
| Context | Tone |
|---|---|
| Search / navigation CTAs | Concise, actionable. "Search flights." "Find your perfect trip." Direct without commanding. |
| Empty / no-results | Empathetic and constructive. Explains the gap and offers alternatives — never blames the traveller. |
| Pricing / alert copy | Honest and specific. "Prices for this route are lower on Tuesdays." No "Amazing deal!" inflation. |
| Error messages | Friendly and helpful. States what happened and what to try next in plain language. |
| App onboarding | Warm and welcoming. Sets expectations without overwhelming. |
| Marketing / brand | Aspirational but grounded. Travel as a human need, not a luxury status signal. |
| Legal / privacy | Clear and complete. Skyscanner's GDPR-era copy is unusually readable for legal text. |
Voice samples (from live surfaces):
Forbidden register: "Best prices GUARANTEED!", spam-adjacent urgency ("Only 2 seats left!"), dark-pattern FOMO, overclaim superlatives ("World's greatest"), corporate jargon, exclamation-heavy hype.
Skyscanner was founded in 2001 by Gareth Williams, Barry Smith, and Bonamy Grimes — three friends in Edinburgh who, working on a coding side project, realised they couldn't find a quick way to compare airfares across carriers. The company began as a tool for their own travel frustration. It launched publicly in 2003 as one of the first flight-aggregator search engines, predating Google Flights by nearly a decade.
The Edinburgh origin is foundational to the brand: Skyscanner grew from a developer's tool into a mass-consumer product while retaining a sense of curious, problem-solving pragmatism that distinguishes it from its American competitors. The product's promise — find the cheapest way to get from A to B, regardless of airline or booking site — was radical in an era when each airline kept fares inside its own walled garden.
Skyscanner's growth arc ran through a 2014 Series A investment by Sequoia Capital, followed by rapid international expansion (now supporting 52 languages and 70 currencies), until 2016, when Chinese travel giant Ctrip (now Trip.com Group) acquired Skyscanner for £1.4 billion — the largest-ever acquisition of a British tech company at the time. Despite the acquisition, Skyscanner continues to operate as an independent brand headquartered in Edinburgh, with offices in London, Barcelona, and Shenzhen.
The Backpack design system (open-sourced in 2016) represents the company's commitment to building product with the rigor of a design-forward tech company. The name "Backpack" is on-brand: it's the traveller's essential companion — reliable, well-organised, and always ready for the next destination.
What Skyscanner refuses: airline-owned bias (all results are ordered by price and relevance, not commercial arrangement by default), dark-pattern urgency tactics, and the visual register of legacy travel agencies (photo carousels of stock beach shots, heavy serif editorial fonts, cluttered layouts). What it embraces: clean information hierarchy, honest pricing, and the conviction that travel comparison should feel effortless.
Personas below are fictional archetypes informed by Skyscanner's publicly documented user research and travel patterns, not individual people.
Priya Mehta, 28, London. A digital nomad who does quarterly visa runs and uses Skyscanner's Everywhere destination search to find the cheapest escape from the UK before winter. She books within a day of searching — she doesn't read airline blogs, she trusts the price calendar. Values speed over aesthetics; becomes immediately mistrustful if a result feels artificially highlighted.
Tomás García, 41, Madrid. A business traveller who flies four times a month within Europe. Uses price alerts to monitor fluctuating routes, and specifically appreciates Skyscanner's lack of sponsored placement in the default sort. He's noticed that other aggregators surface results "sponsored by" airlines; Skyscanner feels neutral. That neutrality is his primary loyalty driver.
Aiko Nakamura, 24, Osaka. A university student planning her first solo trip to Europe with a fixed ¥200,000 budget. Skyscanner is her first search every time because it shows all prices without requiring sign-in. She's overwhelmed by choice and relies heavily on the "Best" sort and the "Price alerts" feature to feel in control of a situation where she has low expertise.
Daniel Osei, 35, Accra. A diaspora traveller who flies Accra–London twice a year for family visits. Uses Skyscanner to monitor routes and set alerts, then often books directly with the airline. Values the breadth of route coverage and the fact that African routes are included — not all aggregators cover them comprehensively.
| State | Treatment |
|---|---|
| Empty (no flight results) | White canvas. Single friendly explanation at body text in #161616: "We couldn't find any flights for those dates." Suggestion to adjust dates or try nearby airports. One Sky Blue (#0062e3) CTA to modify search. No illustration — keeps the functional register. |
| Empty (price alert, no price drop yet) | Calm informational state. Muted slate #626971 text: "We'll let you know when prices drop for this route." One button to manage alerts. |
| Loading (search results) | Skeleton cards at final result-card dimensions, #eff3f8 fill, 12px radius. Animation: flat 1s pulse (no shimmer). Top of the page: "Searching hundreds of airlines..." in muted slate with animated dots. |
| Loading (calendar / price grid) | Progressive skeleton fill — dates appear as data loads, not all at once. Prevents "flash of empty grid." |
| Error (search failed) | Inline message in the hero below the search form. Plain language: "Something went wrong. Please try your search again." One #0062e3 "Try again" button. No #e70866 — error message stays on the calm blue system. |
| Error (form validation) | Field-level inline message. #e70866 icon + text below the input: "Please enter a valid departure date." Never modal. |
| Success (alert set) | Inline confirmation: "#0c838a checkmark + "Alert set for London Heathrow → Barcelona"." Auto-dismisses. No modal. |
| Skeleton (result cards) | #eff3f8 background blocks at precise card dimensions. Airline logo placeholder, route text placeholder (70% width), price block placeholder. 12px radius matching final card. |
| Disabled | Secondary button-style: #e0e4e9 background, #626971 text. Sky Blue elements fade to rgba(0,98,227,0.4) rather than switching to generic grey. |
| Price alert active | Badge: #e3f0ff background, #0062e3 text, 6px radius, bell icon. "Price tracked" label. |
| Price drop notification | #0c838a success-tinted banner: "Prices dropped! [Route] is now from [price]." One CTA to search. |
Durations (Backpack duration-* tokens):
| Token | Value | Use |
|---|---|---|
duration-xs | 50ms | Micro-interactions — checkbox tick, toggle snap |
duration-sm | 200ms | Button press feedback, chip toggle, tab selection |
duration-base | 400ms | Card reveal, panel expand, date picker open |
Easings:
| Token | Curve | Use |
|---|---|---|
ease-enter | cubic-bezier(0.2, 0.6, 0.25, 1) | Arriving — panels, cards, dropdowns |
ease-exit | cubic-bezier(0.4, 0.0, 1, 1) | Dismissals |
ease-standard | cubic-bezier(0.25, 0.1, 0.25, 1) | Two-way — tab switches, chip toggles |
Motion rules: Skyscanner's motion language is functional and restrained — motion communicates state change, not personality. Search-widget inputs (72px height) expand/contract at duration-base / ease-enter. Price sort re-ordering uses staggered duration-sm on each card. The product tab switch (Flights → Hotels) transitions with a duration-sm background-colour swap — the pill moves, the content cross-fades at duration-base. Under prefers-reduced-motion: reduce, all transitions collapse to instant; skeleton-to-content switches become immediate. The eco teal signal animates with a subtle duration-base fade-in to draw the eye to environmental data without being intrusive.
Signature motion:
duration-xs scale-down press, then the page transitions to results with the hero collapsing from 72px blocks to a compact sticky header at duration-base / ease-exit. The transition anchors the user spatially.duration-sm with ease-enter — the one place a slight delight motion appears, because a price alert is a moment of user accomplishment in a task-oriented flow.Skyscanner's product speaks with the confidence of a global travel marketplace that has handled hundreds of millions of searches — clear, energetic, and trustworthy, without the corporate gravity of legacy airline booking tools. The system opens on a pure white canvas (#ffffff) wrapped in a luminous, cornflower-sky blue (#0062e3) for its primary CTA, whi
Brand
Accent
Neutrals
Semantic
Type Scale
Rendered in system-ui to clearly show scale & weight.
Fonts
Spacing
| Purpose | Value | Preview |
|---|---|---|
| Density | compact | |
| Base unit | 4px | |
| Section gap | 40px | |
| Card padding | 24px | |
| Element gap | 12px |
Border Radius
| Element | Value | Preview |
|---|---|---|
| buttons | 8px | |
| inputs | 8px | |
| cards | 8px | |
| dialogs | 8px | |
| badges | 8px | |
| pillPill | 9999px |
Elevation
Do and Don't guidelines parsed from DESIGN.md.
Do
Don't
Buttons
Tabs
Inputs
Cards
Badges
Toggles