Duolingo Mobile — design system & UI screens
This is an online learning platform offering language and subject courses. The screen displays a vertically scrolling list of available courses—Spanish, French, German, Italian, Japanese, Chinese, Korean, Intermediate English, Math, and Music—each with a country or subject flag icon and course title. Each row is a simple list item with consistent spacing, light horizontal dividers, and small action icons on the right edge suggesting navigation or options.
This is a static, crawlable rendering for search & AI engines. The interactive version — filters, live decode console, copy & export — is at https://mozaika.design/website/duolingo-mobile.
Decoded design system
Duolingo Mobile's decoded design system: background #FFFFFF, text #713500, accent #58CC02, link #58CC02, primary #58CC02; type scale h1 34px / h2 22px / body 17px; 4px spacing base; 12px base radius. The single interactive/action color is #58CC02 — used only on interactive or must-notice elements (buttons, links, key highlights), never on large fills.
Color roles
| Role | Value |
|---|---|
| bg | #FFFFFF |
| surface | #F6F2EF |
| border | #E9E0D8 |
| text | #713500 |
| text_muted | #A68160 |
| primary | #58CC02 |
| accent | #58CC02 |
| link | #58CC02 |
| button_bg | #58CC02 |
| button_text | #FFFFFF |
Using these colors
- Action color
#58CC02— the single interactive color; only on things you click or must notice, never large fills. primary,accent,link,button_bgare all#58CC02— one role, not several (the action color).- accent
#58CC02— THE accent / action color — interactive & must-notice only (buttons, links, focus, one key highlight); never large fills or backgrounds. Scarcity is what makes it read as designed.
Typography
- h1: 34px
- h2: 22px
- body: 17px
Spacing
- base unit: 4px
- scale: 12px, 16px, 23px, 24px, 30px, 40px, 48px, 70px, 80px, 96px
Radii
- base: 12px
- button: 12px
Motion
Micro-interactions run at 200ms (dominant) with ease.
- durations: 200ms · 300ms · 400ms
- easings:
ease·cubic-bezier(0.22, 1, 0.36, 1) - animated properties: transform, border-color, filter
Native design tokens
| Token | Value |
|---|---|
--web-ui_button-border-radius | 16px |
--text-heading-weight-medium | 700 |
--text-label-weight-large | 700 |
--text-heading-weight-xsmall | 700 |
--text-heading-weight-small | 700 |
--text-body-weight-bold | 700 |
--text-caption-weight-bold | 700 |
--text-body-weight-spacious-bold | 700 |
--text-body-weight-spacious | 500 |
--text-label-weight-medium | 700 |
…and 29 more measured on the page.
Layout (measured)
- container max-width:
990px - nav: 900px
- common grid: 2 columns
Motion choreography (measured)
Scroll reveal: 3 elements rest at opacity 0, animate in over 300ms.
Responsive (measured)
- breakpoints: 530px · 550px · 699px · 768px · 896px · 1065px
- mobile (390px): hero 32px · nav hamburger
Full design system, per-section tokens & DESIGN.md / Tailwind / CSS exports →
Screens
- Courses listing
- Duolingo — Translation exercise — sentence with word selection
- Duolingo — Speaking Exercise — "10 in a row" challenge
- Duolingo — Match the Pairs — Math Game
- Duolingo — Chess puzzle — checkmate in two
- Duolingo — Quiz — "Which is the glass?" (3 in a row)
- Duolingo — Translation Exercise — Sentence Challenge
- Duolingo — Speak sentence pronunciation exercise
- Duolingo — Listening exercise — type what you hear