BrandToPrompt

Ryanair Design System: Bold Utilitarian UI Patterns

Visit Site

Explore Ryanair's design system - bold colors, utilitarian typography, compact layouts. Build fast, high-contrast airline UIs with clarity.

7 min read1,228 words

Brand Identity

Color Palette

Primary
Secondary

Typography

Primary Font
Roboto

Design Style

Style
bold utilitarian with high contrast and functional clarity
Visual Density
compact with tight 8px grid and micro-increments
Border Style
mixed: 2px small controls, 16px buttons, 36px cards

Full Analysis

Ryanair Brand Design System Deep Dive

1. Brand Overview

Ryanair’s visual language is exactly what you’d expect from Europe’s biggest low-cost airline: unapologetically functional, high-contrast, and driven by the primary brand colors — deep blue and bright yellow. There’s no attempt at luxurious minimalism here. This is about speed, clarity, and making the booking process as frictionless as possible.

When you land on the Ryanair homepage, you’re hit with bold, saturated colors. That deep primary blue (#073590) screams brand recognition — it’s been part of Ryanair’s identity for decades. Paired with the almost golden yellow (#f1c933), it’s unmistakable. This isn’t a “soft” aesthetic — it’s punchy and utilitarian. The palette is chosen for maximum visibility, both in digital contexts and physical signage.

Typography is equally direct. They’ve locked in on Roboto, a utilitarian sans-serif that plays well across languages and weights, and makes sense given the airline’s pan-European audience. There’s a lot of uppercase in headings, reinforcing urgency and clarity — “BOOK NOW” rather than “Book now.” This isn’t about storytelling; it’s about instructing.

Spacing is tight. Most elements ride the 8px grid, but you’ll see lots of small increments (2px, 4px) used in buttons and form controls. This keeps the UI compact — important when your primary audience is working on mobile and needs speed over elegance.

Ryanair’s design system is engineered for functional clarity. It’s not trying to win design awards; it’s trying to move tickets. And it does that by sticking to a disciplined, high-contrast palette, predictable typography, and straightforward component styling. If you’re designing for them, you need to embrace that utilitarian ethos — clarity first, aesthetics second.


2. Color System

2.1 Primary Colors

The hero color here is Primary Blue: #073590. This is used across key actions, headers, and brand reinforcement elements. It’s dark enough to anchor the design but saturated enough to pop against white and yellow. Psychologically, blue signals trust — perfect for a brand asking you to hand over payment details.

The secondary brand-defining color is Main Yellow: #f1c933. This appears heavily in primary buttons and callouts. Yellow carries urgency and optimism — it draws attention without the aggressiveness of red.

Competitor comparison: EasyJet uses orange, Wizz Air uses magenta, Lufthansa uses navy + yellow. Ryanair’s palette is similar to Lufthansa’s but more saturated and less corporate — it’s designed for high visibility.

2.2 Complete Palette

Color NameHexRoleUsage
Black#000000Text, iconsBody text, high-contrast elements
White#ffffffBackground, textPage background, text on dark
Grey Dark#6c7079Secondary textPlaceholders, muted labels
Primary Blue#073590Brand, actionsHeaders, CTAs
Grey Deep#2e2e2eAlt textFooter text
Grey Light#f4f4f4BackgroundSection backgrounds
Blue Medium#0d49c0AccentLinks, hover states
Blue Mid#1460b4AccentLinks, subtle actions
Black 30%#101010 (30% opacity)OverlayButton focus states
Blue Hover#005fccInteractiveHover/focus states
Blue Hover Light#166bc8InteractiveHover/focus states
Yellow#f1c933Primary CTAButtons, highlights

2.3 Color Relationships

Primary Blue (#073590) + White (#ffffff) has excellent contrast (WCAG AAA). Yellow (#f1c933) on Blue is still readable but skirts close to minimum AA contrast for small text — they keep it for large button labels.

Grey Dark (#6c7079) on White is around 5:1 contrast — fine for secondary text. The greys are consistent — no random warm/cool shifts.

No dark mode here. The palette is designed for light backgrounds only.

2.4 Usage Guide

  • Primary Blue for headers, CTAs, focus outlines.
  • Yellow only for primary action backgrounds — never for text (low contrast).
  • Greys for text hierarchy — darker for body, lighter for placeholders.
  • Avoid using Blue Medium (#0d49c0) and Blue Mid (#1460b4) together — they’re too close in value; it confuses hierarchy.
  • Keep white space clean — don’t throw yellow on white unless it’s a button.

3. Typography

3.1 Font Families

Everything is Roboto. No fallbacks listed, but standard would be Roboto, sans-serif. No variable fonts. No custom licensing — safe for web.

Roboto is a workhorse: neutral, legible, and widely supported. It’s a good choice for a multilingual airline site.

3.2 Type Scale

ElementFontSizeWeightLine Height
heading-1Roboto24px7001.17
heading-1 uppercaseRoboto22px7000.95
heading-1Roboto20px7001.10
link boldRoboto16px7001.25
link regularRoboto16px4001.30
heading-1Roboto16px4001.30
buttonRoboto16px4001.25
heading-1 uppercaseRoboto16px700
heading-1 uppercaseRoboto16px400
buttonRoboto16px7001.00
heading-1Roboto16px7001.00
buttonRoboto14px7001.43
captionRoboto14px4001.43
caption boldRoboto14px7001.30
linkRoboto14px4001.30
buttonRoboto13.33px400
caption uppercase boldRoboto13.33px700
caption uppercaseRoboto13.33px400
captionRoboto13.33px400
captionRoboto12px4001.33
buttonRoboto12px4001.17
caption boldRoboto12px7001.30
captionRoboto12px4001.30
linkRoboto12px4001.33

3.3 Hierarchy

They use size variation aggressively — H1s range from 24px down to 16px uppercase for smaller contexts. Buttons are mostly 14px bold — comfortable tap targets on mobile. Captions drop to 12px and sometimes uppercase for emphasis.

Hierarchy is reinforced by weight and transform — uppercase headings stand out even at smaller sizes. The type system is lean — one font family, multiple weights, consistent line heights. This keeps the UI predictable.


4. Spacing & Layout

4.1 Spacing Scale

Base scale is 8px, but they use micro-increments (1px, 2px, 3px) liberally.

pxremcount
1px0.06rem8
2px0.13rem16
3px0.19rem4
4px0.25rem27
5px0.31rem4
6px0.38rem4
8px0.50rem20
10px0.63rem17
12px0.75rem18
14px0.88rem9
16px1.00rem8
18px1.13rem1
20px1.25rem5
21px1.31rem8
22px1.38rem1
24px1.50rem4
32px2.00rem12
55px3.44rem1
75px4.69rem4
361.906px22.62rem4

The 361.906px spacing is odd — likely a carousel offset or hero image padding.

4.2 Layout

No explicit breakpoints extracted. Layout is likely fluid with mobile-first design, stacking components vertically and using tight gutters (8–12px) for mobile, larger (24–32px) on desktop.


5. Visual Elements

Border Radius

ValueCountUsage
0px 4px 4px 0px2Buttons/div
0px 44px 44px 0px1Carousel back
2px 0px 0px 2px1Span
2px17Bookings, route map
3px 0px 0px 3px1Widget
4px18Buttons, inputs
4px 0px 0px 4px1Button
16px2Buttons
36px4Cards
44px 0px 0px 44px1Carousel forward
50%1Icon

They mix small radii (2px, 4px) for utilitarian controls with larger (36px) for cards — the big ones feel almost pill-like.

Shadows

They do use shadows — mostly subtle:

  • rgba(0, 0, 0, 0.05) 0px 2px 4px 0px — soft elevation
  • rgba(0, 0, 0, 0.3) 2px 1px 5px 0px — more pronounced
  • Rare heavy: rgba(0, 0, 0, 0.6) 0px 12px 24px 0px

No neon glows or colored shadows — purely functional depth cues.

Borders

1px solid borders are common — blue (#1976db) for interactive, grey (#e0e1e3) for separators. Dashed grey for secondary UI.


6. Components

6.1 Buttons

Primary CTA
Default:

  • Background: #f1c933
  • Color: #073590
  • Padding: 0px 16px
  • Radius: 16px
  • Border: none
  • Font: 14px, 700

Hover: Color changes to yellow (same as bg, odd choice).
Focus: Blue glow (#a2c4e9).

Outline Button
Background: transparent
Color: #1976db
Border: 1px solid #1976db
Padding: 12px 24px
Radius: 4px
Font: 16px, bold.

Filter Button
Background: white 10% opacity
Color: white
Border: 1px solid white
Padding: 8px 0px 8px 8px
Radius: 4px
Opacity: 0.5.

Multiple link colors:

  • Blue (#166bc8) bold
  • White (#ffffff) regular
  • Blue Mid (#1460b4) regular
  • Primary Blue (#073590) regular
  • Grey (#6c7079) regular
  • Yellow (#f1c933) regular

All have underline on hover.

6.3 Forms

Text inputs: transparent bg, black text, no border. Focus: light blue border.

Email inputs: white bg, grey text, 1px solid grey border (#c3c7cc), radius 4px, padding 14px 8px 12px. Focus: #166bc8 border.

6.4 Cards

Cards have 36px radius and 4px white border. Shadows are subtle.


7. Design Tokens

:root {
  /* Colors */
  --color-black: #000000;
  --color-white: #ffffff;
  --color-grey-dark: #6c7079;
  --color-primary-blue: #073590;
  --color-grey-deep: #2e2e2e;
  --color-grey-light: #f4f4f4;
  --color-blue-medium: #0d49c0;
  --color-blue-mid: #1460b4;
  --color-black-30: #101010;
  --color-blue-hover: #005fcc;
  --color-blue-hover-light: #166bc8;
  --color-yellow: #f1c933;

  /* Typography */
  --font-primary: 'Roboto', sans-serif;

  /* Spacing */
  --space-1: 1px;
  --space-2: 2px;
  --space-3: 3px;
  --space-4: 4px;
  --space-5: 5px;
  --space-6: 6px;
  --space-8: 8px;
  --space-10: 10px;
  --space-12: 12px;
  --space-14: 14px;
  --space-16: 16px;
  --space-18: 18px;
  --space-20: 20px;
  --space-21: 21px;
  --space-22: 22px;
  --space-24: 24px;
  --space-32: 32px;
  --space-55: 55px;
  --space-75: 75px;
  --space-361: 361.906px;

  /* Border Radius */
  --radius-sm: 2px;
  --radius-md: 4px;
  --radius-lg: 16px;
  --radius-xl: 36px;
  --radius-full: 50%;

  /* Shadows */
  --shadow-soft: rgba(0,0,0,0.05) 0px 2px 4px 0px;
  --shadow-medium: rgba(0,0,0,0.3) 2px 1px 5px 0px;
  --shadow-heavy: rgba(0,0,0,0.6) 0px 12px 24px 0px;
}

8. AI Coding Assistant Prompt

# Ryanair Design System Specification

You are a Ryanair design expert. Build UIs matching their visual language exactly.

## Brand Context
Ryanair's design is functional, high-contrast, and utilitarian. It focuses on clarity, speed, and strong brand recognition through deep blue and bright yellow. Typography is direct and sans-serif; spacing is tight and consistent.

## Color Palette
- Black: #000000 — Body text, icons
- White: #ffffff — Background, text on dark
- Grey Dark: #6c7079 — Secondary text, placeholders
- Primary Blue: #073590 — Headers, CTAs, brand anchors
- Grey Deep: #2e2e2e — Footer text
- Grey Light: #f4f4f4 — Section backgrounds
- Blue Medium: #0d49c0 — Accent links, hover states
- Blue Mid: #1460b4 — Secondary links
- Black 30%: #101010 — Overlays, subtle borders
- Blue Hover: #005fcc — Hover/focus states
- Blue Hover Light: #166bc8 — Hover/focus states
- Yellow: #f1c933 — Primary CTA backgrounds

## Typography
Font family: 'Roboto', sans-serif

| Element | Size | Weight | Line Height | Use For |
|---------|------|--------|-------------|---------|
| H1 | 24px | 700 | 1.17 | Page titles |
| H1 uppercase | 22px | 700 | 0.95 | Headlines |
| H1 | 20px | 700 | 1.10 | Section headings |
| Link bold | 16px | 700 | 1.25 | Navigation |
| Link regular | 16px | 400 | 1.30 | Secondary links |
| Button | 14px | 700 | 1.43 | Primary buttons |
| Caption | 12px | 400 | 1.33 | Secondary labels |

## Spacing & Grid
Base: 8px grid. Values: 1, 2, 3, 4, 5, 6, 8, 10, 12, 14, 16, 18, 20, 21, 22, 24, 32, 55, 75, 361.906px.

## Border Radius
- None: 0px — Tables
- sm: 2px — Small controls
- md: 4px — Inputs, buttons
- lg: 16px — Primary buttons
- xl: 36px — Cards
- full: 50% — Icons

## Shadows & Depth
- Soft: rgba(0,0,0,0.05) 0px 2px 4px
- Medium: rgba(0,0,0,0.3) 2px 1px 5px
- Heavy: rgba(0,0,0,0.6) 0px 12px 24px

## Component Specifications

### Primary Button
Default:
```css
background: #f1c933;
color: #073590;
padding: 0px 16px;
border-radius: 16px;
font-weight: 700;
font-size: 14px;
border: none;

Hover: color: #f1c933;
Focus: blue glow #a2c4e9.

Outline Button

background: transparent;
color: #1976db;
border: 1px solid #1976db;
padding: 12px 24px;
border-radius: 4px;
font-weight: 700;
font-size: 16px;

Input Field

border: 1px solid #c3c7cc;
border-radius: 4px;
padding: 14px 8px 12px;
font-size: 14px;
background: transparent;
color: #6c7079;

Focus: border-color #166bc8.

Card

background: #ffffff;
border-radius: 36px;
border: 4px solid #ffffff;
box-shadow: rgba(0,0,0,0.05) 0px 2px 4px;

Layout & Responsive Rules

  • Content padding: 8–32px depending on device
  • Grid gap: multiples of 8px

Interaction Rules

  • Transition: 150ms ease for state changes
  • Focus: clear outline or glow

DO

  • Use only palette colors
  • Maintain 8px grid
  • Keep typography Roboto
  • Use uppercase for key headings
  • Keep borders 1px solid where specified

DON'T

  • Invent new colors
  • Mix rounded and sharp corners
  • Overuse shadows
  • Reduce contrast below WCAG AA

Code Examples

Primary Button:

.btn-primary {
  background: #f1c933;
  color: #073590;
  padding: 0 16px;
  border-radius: 16px;
  font-weight: 700;
  font-size: 14px;
  border: none;
  transition: color 150ms ease;
}
.btn-primary:hover { color: #f1c933; }
.btn-primary:focus { box-shadow: 0 0 .5rem .1875rem #a2c4e9; }

Outline Button:

.btn-outline {
  background: transparent;
  color: #1976db;
  border: 1px solid #1976db;
  padding: 12px 24px;
  border-radius: 4px;
  font-weight: 700;
  font-size: 16px;
}

Input:

.input-email {
  border: 1px solid #c3c7cc;
  border-radius: 4px;
  padding: 14px 8px 12px;
  font-size: 14px;
  color: #6c7079;
}
.input-email:focus {
  border-color: #166bc8;
  outline: none;
}

---

## 9. Summary

**TL;DR** — Ryanair’s design is built on deep blue, bright yellow, and no-nonsense typography. Tight spacing and clear hierarchy keep the interface functional and fast. Use the palette and type rules exactly — clarity trumps creativity here.

**Brand Keywords**:  
- high-contrast-utilitarian  
- budget-airline-functional  
- bold-blue-yellow  
- speed-over-style