DESIGN.md · Analysis

Oatly

oatly.com · 1 Oct 2026 · 47 colors · Bjorn Serif Pro, serif, Margo Pro Regular, sans-serif

Oatly

A plant-based food company pioneering oat-based products since 1994, with a bold, irreverent brand voice and a commitment to sustainability without recklessness.

Colors

surface#ffffff
surface-dim#f6f6f6
surface-bright#ffffff
surface-container-lowest#eeeeee
surface-container-low#f6f6f6
surface-container#f0f0f0
surface-container-high#e8e8e8
surface-container-highest#dddddd
on-surface#222222
on-surface-variant#888888
inverse-surface#1a1a1a
inverse-on-surface#ffffff
outline#444444
outline-variant#cccccc
surface-tint#2c622c
primary#2c622c
on-primary#ffffff
primary-container#68c74e
on-primary-container#000000
inverse-primary#68c74e
secondary#98c5d3
on-secondary#000000
secondary-container#c6c6c6
on-secondary-container#222222
tertiary#fdcf85
on-tertiary#000000
tertiary-container#f8c8d8
on-tertiary-container#222222
error#e43e39
on-error#ffffff
error-container#fbcccc
on-error-container#222222
primary-fixed#68c74e
primary-fixed-dim#2c622c
on-primary-fixed#ffffff
on-primary-fixed-variant#000000
secondary-fixed#98c5d3
secondary-fixed-dim#c6c6c6
on-secondary-fixed#000000
on-secondary-fixed-variant#222222
tertiary-fixed#fdcf85
tertiary-fixed-dim#f8c8d8
on-tertiary-fixed#000000
on-tertiary-fixed-variant#222222
background#ffffff
on-background#222222
surface-variant#c6c6c6

Typography

display
fontFamily: Bjorn Serif Pro, serif · fontSize: 60px · fontWeight: 700 · lineHeight: 68px · letterSpacing: -0.04em
headline-lg
fontFamily: Bjorn Serif Pro, serif · fontSize: 40px · fontWeight: 600 · lineHeight: 48px · letterSpacing: -0.02em
headline-md
fontFamily: Bjorn Serif Pro, serif · fontSize: 28px · fontWeight: 600 · lineHeight: 36px · letterSpacing: -0.01em
title-lg
fontFamily: Margo Pro Regular, sans-serif · fontSize: 20px · fontWeight: 600 · lineHeight: 28px · letterSpacing: 0em
body-lg
fontFamily: Margo Pro Regular, sans-serif · fontSize: 18px · fontWeight: 400 · lineHeight: 28px · letterSpacing: 0em
body-md
fontFamily: Margo Pro Regular, sans-serif · fontSize: 16px · fontWeight: 400 · lineHeight: 24px · letterSpacing: 0em
label-md
fontFamily: Margo Pro Regular, sans-serif · fontSize: 14px · fontWeight: 600 · lineHeight: 20px · letterSpacing: 0.01em
label-sm
fontFamily: Margo Pro Regular, sans-serif · fontSize: 12px · fontWeight: 500 · lineHeight: 16px · letterSpacing: 0.05em

Design guidance

Overview

Oatly is a plant-based food company that transforms oat-based products into a lifestyle statement, pioneering the oat drink category since 1994. The brand operates within a 'Irreverent Minimalism' aesthetic—a visual language that pairs stark black-and-white typography with unexpected pops of color (sage green, soft pastels, and warm yellows) to communicate authenticity without pretension. The UI evokes clarity, directness, and a slightly cheeky confidence: users feel they're joining a movement, not just buying a beverage.

Oatly's voice is conversational, opinionated, and unapologetically honest. The brand speaks in short, punchy sentences that avoid corporate jargon; it uses humor to disarm skepticism and builds trust through transparency about sustainability and ingredient sourcing. Example: 'We exist to make it possible for people to live a life that's good for them and better for the planet, without recklessness.' The tone is never breathless or oversold—it's matter-of-fact, even when discussing bold claims.

Colors

The Oatly color system centers on a deep sage green (#2C622C) as the primary brand accent—used for CTAs, focus states, and key interactive elements. This green signals growth, sustainability, and natural authenticity without the cliché of bright lime. Secondary colors include a soft blue (#98c5D3) for supporting UI elements and data visualization, a warm yellow (#FDCF85) for highlights and tertiary CTAs, and a muted pink (#F8C8D8) for gentle emphasis. The surface stack is deliberately minimal: white (#FFFFFF) as the dominant background, with light grays (#F6F6F6, #EEEEEE) for container separation and darker grays (#888888, #444444) for secondary text and borders. Error states use a clear red (#E43E39) to signal warnings without ambiguity. All interactive elements transition smoothly (300ms

Typography

The type system pairs Bjorn Serif Pro for headlines and display text with Margo Pro Regular for body and UI labels, creating a sophisticated yet approachable contrast. Display and headline levels (60px–40px) use the serif for authority and distinctiveness, while body text (16px–18px) in sans-serif ensures legibility and a modern feel. Font weights are deliberately constrained: 400 for body, 600 for titles, 700 for display, and 900 for button labels (uppercase). Letter-spacing is minimal except on labels (0.01em–0.05em) to maintain tightness and energy. All text over busy backgrounds or in small sizes (12px–14px) should receive a subtle text-shadow: 0 1px 2px rgba(0, 0, 0, 0.1) to ensure contrast. Line-height is set generously (1.5–1.7x font size) to support readability and breathing room,

Layout

The page layout uses a 12-column grid with a max-width of 1200px, centered on the viewport with 24px gutters on desktop and 12px on mobile. Sections are separated by 40px (lg spacing) vertically, creating a rhythm that feels spacious without being wasteful. The container model is fluid up to 1200px, then fixed, allowing the design to breathe on large screens while maintaining control. White-space is treated as a design element: generous padding (24px–40px) around content blocks, 12px between related elements, and 4px for micro-spacing within components. The spacing scale is semantic: 'unit' (8px) is the base, 'sm' (12px) for tight grouping, 'md' (24px) for section separation, 'lg' (40px) for major breaks, and 'xl' (64px) for hero-to-content transitions. This hierarchy ensures visual clarit

Elevation & Depth

Depth in Oatly's design is achieved through subtle shadows and layering, not through dramatic contrast. The elevation system uses three levels: Level 1 (base, no shadow) for flat surfaces like body backgrounds; Level 2 (md shadow: 0 3px 8px rgba(0, 0, 0, 0.15)) for cards, modals, and interactive containers; Level 3 (lg shadow: 0 8px 24px rgba(0, 0, 0, 0.12)) for floating elements like dropdowns and overlays. Shadows are soft and spread (no blur-radius under 8px), creating a sense of gentle lift rather than harsh separation. Borders (1px solid #CCCCCC or #444444 depending on context) provide ad

Shapes

The shape philosophy is 'Architectural Precision'—clean, functional, with minimal ornamentation. Border-radius is used sparingly and intentionally: buttons and inputs use 5px (DEFAULT) for a slightly softened corner that feels modern without being playful; cards use 5px for consistency; toggles and badges use 9999px (full) for pill-shaped elements that signal completeness and toggled states. The 2px radius (sm) is reserved for very small UI elements like checkboxes or micro-interactions. This constraint—avoiding rounded corners on large surfaces—maintains the brand's no-nonsense aesthetic whil

Components

Action Elements Buttons are the primary interactive element and come in three variants. Primary buttons use a solid sage green background (#2C622C) with white text, 12px horizontal padding, 44px height, and uppercase label-md typography (900 weight). On hover, the text color shifts to light gray (#DDDDDD) while the background remains green, creating a subtle feedback without jarring color shift. Secondary buttons use a light gray background (#F6F6F6) with dark text, same padding and height, and transition to a darker gray (#E8E8E8) on hover. Ghost buttons are transparent with a 1px green border, text in green, and fill with green background on hover. All buttons use a 300ms ease transition for state changes and include a 3px focus ring at rgba(44, 98, 44, 0.1) for keyboard navigation.

Do's and Don'ts

**Do**

  • Do use the sage green (#2C622C) exclusively for primary CTAs and focus states—it's the brand's signature and should never be diluted or overused.
  • Do maintain 24px gutters and 40px section spacing to preserve the generous, breathing layout that defines Oatly's visual calm.
  • Do pair Bjorn Serif Pro headlines with Margo Pro Regular body text—this contrast is core to the brand's sophisticated-yet-approachable voice.
  • Do use 300ms ease transitions on all interactive state changes (hover, focus, active) to feel responsive without feeling rushed.
  • Do apply 1px borders in #444444 or #CCCCCC to all cards and containers—they provide crisp definition without heaviness.

**Don't**

  • Don't use rounded corners larger than 5px on cards or containers—it dilutes the architectural precision that defines the brand.
  • Don't apply shadows larger than 0 8px 24px rgba(0, 0, 0, 0.12)—Oatly's elevation is subtle and functional, not dramatic.
  • Don't mix serif and sans-serif within a single text block—Bjorn Serif is for headlines, Margo Pro Regular is for body; never reverse this.
  • Don't use the secondary colors (blue, yellow, pink) as primary CTAs—they're supporting accents only; green is the only primary interactive color.
  • Don't reduce padding below 12px or increase spacing above 64px without explicit design rationale—the spacing scale is intentional and should be respected.

Made by Sokosumi: AI coworkers for marketing

This tool is free. Sokosumi gives marketing teams AI coworkers that deliver finished work as files: research, briefings, reports and content.

Start free

*No Credit Card required