D

DESIGN.md · Analysis

Duoflash

duoflash.netlify.app · 30 Sept 2026 · 47 colors · Nunito

Duoflash

A Duolingo-inspired gamified learning platform featuring interactive flashcards, KaTeX math rendering, and progressive serpentine level maps with vibrant gradient course cards.

Colors

surface#0f171e
surface-dim#0a0f16
surface-bright#1a2332
surface-container-lowest#060e20
surface-container-low#0f171e
surface-container#171f33
surface-container-high#243342
surface-container-highest#2d3449
on-surface#e2e8f0
on-surface-variant#94a3b8
inverse-surface#e2e8f0
inverse-on-surface#0f171e
outline#52656d
outline-variant#37464f
surface-tint#58cc02
primary#ffffff
on-primary#1b242c
primary-container#e2e8f0
on-primary-container#0f171e
inverse-primary#0f171e
secondary#58cc02
on-secondary#0f171e
secondary-container#79b933
on-secondary-container#ffffff
tertiary#ffd233
on-tertiary#1b242c
tertiary-container#ffb81c
on-tertiary-container#0f171e
error#ee5555
on-error#ffffff
error-container#ff6b6b
on-error-container#1b242c
primary-fixed#e2e8f0
primary-fixed-dim#cbd5e1
on-primary-fixed#0f171e
on-primary-fixed-variant#243342
secondary-fixed#79b933
secondary-fixed-dim#58cc02
on-secondary-fixed#ffffff
on-secondary-fixed-variant#0f171e
tertiary-fixed#ffd233
tertiary-fixed-dim#ffb81c
on-tertiary-fixed#1b242c
on-tertiary-fixed-variant#0f171e
background#0f171e
on-background#e2e8f0
surface-variant#37464f

Typography

display
fontFamily: Nunito · fontSize: 60px · fontWeight: 800 · lineHeight: 68px · letterSpacing: -0.04em
headline-lg
fontFamily: Nunito · fontSize: 40px · fontWeight: 800 · lineHeight: 48px · letterSpacing: -0.02em
headline-md
fontFamily: Nunito · fontSize: 28px · fontWeight: 800 · lineHeight: 36px · letterSpacing: -0.01em
title-lg
fontFamily: Nunito · fontSize: 20px · fontWeight: 700 · lineHeight: 28px · letterSpacing: 0em
body-lg
fontFamily: Nunito · fontSize: 18px · fontWeight: 400 · lineHeight: 28px · letterSpacing: 0em
body-md
fontFamily: Nunito · fontSize: 16px · fontWeight: 400 · lineHeight: 24px · letterSpacing: 0em
label-md
fontFamily: Nunito · fontSize: 14px · fontWeight: 800 · lineHeight: 20px · letterSpacing: 0.05em
label-sm
fontFamily: Nunito · fontSize: 12px · fontWeight: 600 · lineHeight: 16px · letterSpacing: 0.08em

Design guidance

Overview

Duoflash is a gamified learning platform that transforms educational content into an engaging, interactive experience inspired by Duolingo's proven methodology. The design embraces a "Vibrant Minimalism" aesthetic: a dark, focused interface (background #0f171e) serves as a canvas for vivid gradient course cards and bright accent colors (#58cc02 for success, #ffd233 for highlights, #ee5555 for errors), creating a sense of progression and achievement. The brand personality is energetic yet supportive—celebrating small wins, maintaining focus through visual clarity, and using bold typography (Nunito 800 weight on headlines) to command attention without overwhelming the learner.

The voice is encouraging and direct: "You're on a 5-day streak—keep going!" rather than "Your streak is 5 days." Duoflash speaks to learners as partners in their educational journey, using active language, celebrating milestones visibly, and removing friction from the learning loop. Every interaction—from selecting a course to answering a quiz question—is designed to feel rewarding, with smooth animations (200–400ms transitions), satisfying feedback (green success states, red error states), and a serpentine level map that makes progress tangible and explorable.

Colors

The color system is built on a dark, high-contrast foundation optimized for extended learning sessions and visual focus. The surface stack anchors the interface: surface (#0f171e) is the page background, surface-container (#171f33) holds interactive elements like quiz options, and surface-container-highest (#2d3449) provides the topmost layer for elevated modals and overlays. On-surface (#e2e8f0) is the primary text color—a cool, desaturated white that reduces eye strain over long periods.

Primary (#ffffff) is reserved exclusively for call-to-action buttons ("VIEW LESSONS", "CHECK") and interactive states, ensuring maximum affordance and click-through clarity. Secondary (#58cc02) is the brand's signature success and progress color—used for completed levels, correct quiz answers, and the p

Typography

The type system prioritizes clarity and hierarchy through weight contrast rather than size alone. Nunito is the exclusive typeface—a geometric sans-serif that feels friendly and modern while maintaining excellent legibility at all sizes. Headlines use fontWeight 800 (extra-bold) to create visual dominance: display at 60px with -0.04em letter-spacing, headline-lg at 40px with -0.02em, and headline-md at 28px with -0.01em. This aggressive weight creates instant visual hierarchy and ensures course titles and section headers command attention without requiring large sizes.

Body text uses fontWeight 400 at 16px (body-md) with 24px line-height for comfortable reading during quiz questions and explanations. Labels and buttons use fontWeight 800 at 14px with 0.05em letter-spacing to create a dist

Layout

The layout uses a fixed container max-width of 900px centered on the viewport, creating a focused, mobile-first experience that scales gracefully to desktop. The grid is 12 columns with 28px gutters (gutter token), providing consistent spacing between course cards and quiz elements. Page rhythm is driven by semantic spacing: lg (40px) separates major sections (header, course list, quiz area), md (24px) separates cards and components within sections, and sm (12px) provides breathing room inside components. The courses container uses a responsive grid that stacks vertically on mobile and flows horizontally on larger screens, with each course card occupying full width on mobile and ~50% on tablet/desktop.

Whitespace is generous but purposeful—the dark background (#0f171e) acts as negative sp

Elevation & Depth

Depth is conveyed through a three-tier shadow system and subtle transform effects. Level 1 (Base Cards) uses box-shadow: 0 3px 8px rgba(0,0,0,0.15) with a 1px border at rgba(255,255,255,0.1), creating a soft separation from the dark background. Course cards and quiz option cards sit at this level, appearing to float slightly above the surface. Level 2 (Hover/Interactive) applies box-shadow: 0 8px 24px rgba(0,0,0,0.25) with a transform: translateY(-2px) on hover, signaling interactivity and lifting the element further. This transition occurs over 200ms ease-out, creating a snappy, responsive fe

Shapes

The shape philosophy is "Soft-Technical Friendliness"—rounded corners are used consistently to soften the interface while maintaining a modern, app-like feel. Buttons and primary CTAs use rounded.xl (1.5rem / 24px) for a pill-shaped appearance that feels inviting and clickable. Course cards use rounded.xl (24px) to create a cohesive, card-based aesthetic. Quiz option buttons use rounded.lg (1rem / 16px) for a slightly more angular appearance that differentiates them from primary CTAs while maintaining approachability. Input fields and smaller components use rounded.DEFAULT (0.5rem / 8px) or ro

Components

Action Elements Buttons are the primary interaction mechanism. The button-primary component uses backgroundColor {colors.primary} (#ffffff), textColor {colors.on-primary} (#1b242c), rounded {rounded.xl} (24px), padding 12px 32px, and height 48px. Typography is {typography.label-md} (Nunito 800, 14px, 0.05em letter-spacing) to create a bold, action-oriented appearance. On hover, button-primary-hover transitions to backgroundColor {colors.primary-fixed-dim} (#cbd5e1) over 200ms ease-out, providing clear feedback without jarring color shifts. The button-secondary variant uses a transparent background with a 2px solid border at {colors.primary}, allowing secondary actions ("SKIP", "Reset Progress") to coexist without visual dominance.

Containers & Surfaces Course cards use a layered g

Do's and Don'ts

**Do**

  • Do use {colors.secondary} (#58cc02) for all success states, correct answers, and progress indicators—it's the brand's signature reward color and creates immediate positive reinforcement.
  • Do apply 200–400ms ease-out transitions on all interactive state changes (hover, focus, selected) to create snappy, responsive feedback without feeling sluggish.
  • Do maintain the dark surface (#0f171e) as the primary background—it reduces eye strain during extended learning sessions and makes accent colors pop with maximum contrast.
  • Do use Nunito fontWeight 800 on all headlines and CTAs to create visual hierarchy through weight contrast rather than size alone, ensuring clarity at any viewport.
  • Do layer gradients on course cards (dark overlay + vibrant gradient) to create visual distinction between courses while preserving text readability over variable backgrounds.

**Don't**

  • Don't use primary (#ffffff) for anything other than CTAs and interactive elements—it's reserved for affordance and must remain special to maintain click clarity.
  • Don't apply shadows larger than 0 8px 24px rgba(0,0,0,0.25) on standard components; reserve the largest shadows for modals and overlays to maintain visual hierarchy.
  • Don't use rounded.DEFAULT (8px) or rounded.md (12px) on buttons or course cards—these sizes feel utilitarian and undermine the friendly, inviting aesthetic.
  • Don't mix typefaces; Nunito is the exclusive font family across all text elements, including math formulas rendered via KaTeX (which uses its own serif fonts for equations).
  • Don't apply letter-spacing tighter than -0.04em on display text or looser than 0.08em on labels—maintain the specified values to preserve the geometric, modern feel of Nunito.

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