Playful rounded: UI design prompt
Palette, type rules and a pasteable prompt for playful rounded. Also called Duolingo style, chunky playful UI, 3D button UI, gamified UI, friendly rounded design. 2019 onward (Duolingo redesign 2019, Headspace, Notion mascots).
Traits
- fully rounded shapes: pill buttons, 16-24px card radius, circular avatars and badges
- chunky "pressable" buttons with a solid bottom edge (border-bottom 4px in a darker shade) that squashes on press
- bright, saturated, cheerful palette: green, blue, yellow, red, purple on white
- bold rounded sans in heavy weights; big friendly headlines
- mascots and flat illustrated characters with expressive faces
- progress bars, streaks, XP, badges: game mechanics as UI
- bouncy motion: spring easings, wiggles, confetti on success
Palette
#ffffff page, #4b4b4b text, #58cc02 green, #1cb0f6 blue, #ffc800 yellow, #ff4b4b red, #ce82ff purple, #e5e5e5 line
Type
Nunito (800-900 for headings, 700 for buttons), Fredoka, Baloo 2 or Varela Round; headings 800 at 32-56px, body 500 at 17px, buttons 700 uppercase at 15px with 0.05em tracking
Do
- build buttons with a solid colour, border-bottom 4px in a 20% darker shade, radius 16px; on active remove the bottom border and translateY(4px)
- give every state a colour and an icon: correct is green, wrong is red, locked is grey
- use one mascot in three poses (idle, happy, sad) and reuse it consistently
Don't
- do not use thin fonts or grey text under #777; the style is high energy
- do not use drop shadows for depth; use the 3D bottom edge
- do not mix in sharp corners anywhere, including inputs and images
Known for it: Duolingo, Headspace (partial), Khan Academy Kids, Kahoot
CSS seed
:root {
--bg: #ffffff;
--fg: #4b4b4b;
--accent: #58cc02;
--accent-dark: #58a700;
--accent2: #1cb0f6;
--accent3: #ffc800;
--line: #e5e5e5;
--radius: 16px;
--font: 'Nunito',sans-serif
}
Prompt
Build the site in playful rounded Duolingo-like style. Background #ffffff, text #4b4b4b, muted #afafaf, lines #e5e5e5. Colours: green #58cc02 (dark #58a700), blue #1cb0f6 (dark #1899d6), yellow #ffc800 (dark #e5a800), red #ff4b4b, purple #ce82ff. Font Nunito: headings 800 at 52/36/26px, body 500 at 17px line-height 1.5, buttons 700 uppercase 15px with 0.05em tracking. Buttons: solid fill, white text, border-radius 16px, 50px tall, border-bottom 4px solid the darker shade; on active border-bottom 0 and translateY(4px), 80ms. Secondary buttons: white with 2px #e5e5e5 border and 4px bottom edge. Cards: 2px #e5e5e5 border, radius 16px, 24px padding, no shadow. Progress bar: 16px tall pill, #e5e5e5 track, #58cc02 fill with a lighter 4px highlight stripe on top. Badges are 64px circles with flat icons. Add a friendly mascot illustration (flat, rounded, big eyes) next to the hero headline. Motion: spring (cubic-bezier(0.34,1.56,0.64,1)) at 300ms on appear; mascot wiggles 3deg on hover; confetti burst on form success.
For design.md, .cursorrules or AGENTS.md
## Design direction
Build the site in playful rounded Duolingo-like style. Background #ffffff, text #4b4b4b, muted #afafaf, lines #e5e5e5. Colours: green #58cc02 (dark #58a700), blue #1cb0f6 (dark #1899d6), yellow #ffc800 (dark #e5a800), red #ff4b4b, purple #ce82ff. Font Nunito: headings 800 at 52/36/26px, body 500 at 17px line-height 1.5, buttons 700 uppercase 15px with 0.05em tracking. Buttons: solid fill, white text, border-radius 16px, 50px tall, border-bottom 4px solid the darker shade; on active border-bottom 0 and translateY(4px), 80ms. Secondary buttons: white with 2px #e5e5e5 border and 4px bottom edge. Cards: 2px #e5e5e5 border, radius 16px, 24px padding, no shadow. Progress bar: 16px tall pill, #e5e5e5 track, #58cc02 fill with a lighter 4px highlight stripe on top. Badges are 64px circles with flat icons. Add a friendly mascot illustration (flat, rounded, big eyes) next to the hero headline. Motion: spring (cubic-bezier(0.34,1.56,0.64,1)) at 300ms on appear; mascot wiggles 3deg on hover; confetti burst on form success.
## Tokens
:root { --bg:#ffffff; --fg:#4b4b4b; --accent:#58cc02; --accent-dark:#58a700; --accent2:#1cb0f6; --accent3:#ffc800; --line:#e5e5e5; --radius:16px; --font:'Nunito',sans-serif }
Keep hover and focus-visible states on every interactive element. Do not add a CSS framework.