
Skyscanner — Travel-search design system tuned for global commerce and locale-heavy surfaces.
Backpack is Skyscanner's design system, open-sourced in 2017 to support the cross-platform product portfolio (web, iOS, Android). It powers the same flight, hotel, and car-rental search surfaces that Skyscanner ships to over 100 million users in 30+ languages.
Skyscanner's design-systems team owns Backpack; the codebase is open on GitHub with a public roadmap and an active contribution model. Releases happen on a clear cadence, and breaking changes ship with documented migration paths.
The identity-bearing decisions, rendered. Names and values are illustrative — refer to the system's official tokens reference for the canonical, current set.
bkp-color-primary
Skyscanner blue, primary action
bkp-color-status-positive
Available, success state
bkp-color-text-primary
Default body text
bkp-color-canvas
Default canvas
bkp-spacing-md
Default control spacing
bkp-radius-md
Card and input radius
The full picture — palette, type ramp, spacing grid, radius, elevation and motion, restated in our own structure from Backpack's public references. Factual values for study; the official docs remain canonical.
Sky Blue
Primary actions and links
--bpk-color-sky-blue
Sky Gray Text
Primary text (ink navy)
--bpk-color-sky-gray
Mid Gray
Secondary text
--bpk-color-sky-gray-tint-02
White
Surfaces
--bpk-color-white
Canvas Contrast
Subtle background
--bpk-canvas-contrast-day
Line
Borders
--bpk-line-day
Panjin Red
Errors
--bpk-color-panjin
Monteverde Green
Success and price confidence
--bpk-color-monteverde
Kolkata Yellow
Warnings and star ratings
--bpk-color-kolkata
'Skyscanner Relative', -apple-system, 'Segoe UI', Roboto, sans-serif
Weights: 400, 500, 700, 900
Base unit 8px (bpk-spacing)
Sm
Lg
Exactly what ships in skyscanner-backpack-design.md — plus the same token snapshot restated as CSS custom properties. Copy either, or feed the Markdown straight to an AI coding tool as styling context.
# Backpack — Design Style Reference
> **Unofficial, community-authored reference.** Compiled by [designsystems.one](https://www.designsystems.one). Not affiliated with, endorsed by, or sponsored by Skyscanner. "Backpack" and related marks belong to their respective owners. This document describes publicly observable style attributes in original words — it contains no copied documentation, logos, icon artwork, or original token files. Always defer to the official source for canonical, current values.
**System:** Backpack
**Owner:** Skyscanner
**Official documentation:** https://www.skyscanner.design/
**Visual character:** Travel-search confidence: destination-named colors (Panjin, Monteverde, Kolkata), Relative type, and price-comparison legibility at 6am in an airport.
---
## Summary
Travel-search design system tuned for global commerce and locale-heavy surfaces.
_Confidence: high. Values are drawn from well-documented public token references._
## Color tokens
| Color | Value | CSS variable | Role |
| --- | --- | --- | --- |
| Sky Blue | `#0770e3` | `--bpk-color-sky-blue` | Primary actions and links |
| Sky Gray Text | `#111236` | `--bpk-color-sky-gray` | Primary text (ink navy) |
| Mid Gray | `#68697f` | `--bpk-color-sky-gray-tint-02` | Secondary text |
| White | `#ffffff` | `--bpk-color-white` | Surfaces |
| Canvas Contrast | `#eff3f8` | `--bpk-canvas-contrast-day` | Subtle background |
| Line | `#c2c9cd` | `--bpk-line-day` | Borders |
| Panjin Red | `#d1435b` | `--bpk-color-panjin` | Errors |
| Monteverde Green | `#00a698` | `--bpk-color-monteverde` | Success and price confidence |
| Kolkata Yellow | `#ff9400` | `--bpk-color-kolkata` | Warnings and star ratings |
## Typography
- **Body:** Skyscanner Relative — weights 400, 500, 700, 900 — `'Skyscanner Relative', -apple-system, 'Segoe UI', Roboto, sans-serif`
## Type scale
| Step | Size | Line height |
| --- | --- | --- |
| hero-4 | `40px` | `44px` |
| heading-1 | `32px` | `40px` |
| heading-3 | `20px` | `28px` |
| body-default | `16px` | `24px` |
| caption | `12px` | `16px` |
## Spacing
Base unit: `8px (bpk-spacing)`
Scale: `4px` · `8px` · `16px` · `24px` · `32px` · `40px`
## Corner radius
| Name | Value |
| --- | --- |
| sm | `8px` |
| md | `12px` |
| lg | `24px` |
| pill | `9999px` |
## Elevation / shadows
| Name | Value |
| --- | --- |
| sm | `0 1px 3px 0 rgba(37,32,31,0.3)` |
| lg | `0 4px 14px 0 rgba(37,32,31,0.25)` |
## Motion
| Name | Value |
| --- | --- |
| duration-sm | `200ms` |
| duration-base | `400ms` |
## Quick start (CSS)
```css
/* Backpack — illustrative tokens, restated as CSS custom properties.
Unofficial reference by designsystems.one; values are indicative, not
canonical. Official reference: https://www.skyscanner.design/ */
:root {
/* Color */
--bpk-color-sky-blue: #0770e3; /* Primary actions and links */
--bpk-color-sky-gray: #111236; /* Primary text (ink navy) */
--bpk-color-sky-gray-tint-02: #68697f; /* Secondary text */
--bpk-color-white: #ffffff; /* Surfaces */
--bpk-canvas-contrast-day: #eff3f8; /* Subtle background */
--bpk-line-day: #c2c9cd; /* Borders */
--bpk-color-panjin: #d1435b; /* Errors */
--bpk-color-monteverde: #00a698; /* Success and price confidence */
--bpk-color-kolkata: #ff9400; /* Warnings and star ratings */
/* Typography */
--font-body: 'Skyscanner Relative', -apple-system, 'Segoe UI', Roboto, sans-serif;
/* Type scale */
--text-hero-4: 40px /* line-height 44px */;
--text-heading-1: 32px /* line-height 40px */;
--text-heading-3: 20px /* line-height 28px */;
--text-body-default: 16px /* line-height 24px */;
--text-caption: 12px /* line-height 16px */;
/* Spacing */
--space-1: 4px;
--space-2: 8px;
--space-3: 16px;
--space-4: 24px;
--space-5: 32px;
--space-6: 40px;
/* Radius */
--radius-sm: 8px;
--radius-md: 12px;
--radius-lg: 24px;
--radius-pill: 9999px;
/* Elevation */
--shadow-sm: 0 1px 3px 0 rgba(37,32,31,0.3);
--shadow-lg: 0 4px 14px 0 rgba(37,32,31,0.25);
/* Motion */
--motion-duration-sm: 200ms;
--motion-duration-base: 400ms;
}
```
## Origin
Backpack is Skyscanner's design system, open-sourced in 2017 to support the cross-platform product portfolio (web, iOS, Android). It powers the same flight, hotel, and car-rental search surfaces that Skyscanner ships to over 100 million users in 30+ languages.
## Governance
Skyscanner's design-systems team owns Backpack; the codebase is open on GitHub with a public roadmap and an active contribution model. Releases happen on a clear cadence, and breaking changes ship with documented migration paths.
## Known for
- First-class internationalization — every component is built for RTL, locale-aware date and currency formatting, and language-switching mid-session.
- Travel-specific patterns — date-range pickers tuned for trip planning, fare display with multi-currency support, search-result cards with airline / hotel / car branding.
- Cross-platform consistency — shared semantic tokens render the same brand across React on web, native iOS, and native Android.
## Underrated
- The token model carries explicit semantic naming for travel concepts — bkp-color-status-positive for available, bkp-color-status-warning for limited availability — domain-aware in a way most systems aren't.
- Their accessibility commitment is substantive: every component documents screen-reader behavior, focus order, and minimum tap-target sizes for mobile.
## Watch out for
- The visual identity is Skyscanner-blue-heavy; the patterns are the reusable part, not the brand.
- Travel-specific component depth (date-range pickers, fare cards) won't translate to non-travel surfaces.
## Components worth studying
- **Date Range Picker** — Travel-grade calendar with availability, minimum-stay, price-per-night overlay, and locale-aware month navigation.
- **Fare Card** — Search-result card showing flight or hotel detail with airline/chain branding, price in user-locale currency, and inline ratings.
- **Banner** — Inline status messaging with severity tiers, dismissal, and explicit content slots for action and link.
## When to choose Backpack
Study Backpack if you're building travel, hospitality, marketplace, or any product with heavy locale and date-handling requirements. The patterns are open-source and well-documented; the brand isn't yours to lift.
## Apply this style with an AI tool
Paste this into your AI coding assistant as a direction, then iterate:
> Design in the spirit of Backpack by Skyscanner — Travel-search design system tuned for global commerce and locale-heavy surfaces. Character: Travel-search confidence: destination-named colors (Panjin, Monteverde, Kolkata), Relative type, and price-comparison legibility at 6am in an airport. Use a primary colour near #0770e3, the typeface "Skyscanner Relative" (or a close equivalent), corner radius around 8px, a spacing rhythm on a 8px (bpk-spacing) base. Lean into what it's known for: First-class internationalization — every component is built for RTL, locale-aware date and currency formatting, and language-switching mid-session. Match the intent, not the pixels; adapt it to my product rather than cloning it.
## Official references
- [Backpack docs](https://www.skyscanner.design/)
- [Backpack on GitHub](https://github.com/Skyscanner/backpack)
- [Skyscanner engineering blog](https://medium.com/@SkyscannerEng)
---
_Generated by [designsystems.one](https://www.designsystems.one/design-systems/skyscanner-backpack) — a catalogue of public design systems. Style facts are reported for reference and education; adapt them to your own product. Report issues or takedown requests via the site._
If you're evaluating this system
Study Backpack if you're building travel, hospitality, marketplace, or any product with heavy locale and date-handling requirements. The patterns are open-source and well-documented; the brand isn't yours to lift.