Dyslexia Reading App
A unified design system that helps educators invite, assign, and track – and gives students a calmer, consistent reading experience.
Impact
Coherence up - Single UI language across the app
Faster to ship - reusable components cut design - dev cycles
Scales cleanly - inherit clarity and higher task completion
Scope
Style guide, UI components, educator workflows (onboard → invite/assign → track)
Style guide, UI components, educator workflows
Year
Year and Timeline
2025
2025, 4 months
Timeline
4 months
Tools
Figma, Adobe, Figjam, Notion
Role
UX & Design System, research, product strategy, IA and high-fidelity prototypes.
Challenge
How might we reduce confusion during client onboarding, reduce dependency on manual meeting coordination despite tool usage, and streamline access to essential documents for smoother workflows?
Fragmented patterns slowed both teaching and learning. To standardize the UI so students stay focused and teachers move from invite → assign → track without relearning the interface?
Fragmented patterns slowed both teaching and learning. How might we standardize the UI so students stay focused and teachers move from invite → assign → track without relearning the interface?
Challenge
Fragmented patterns slowed both teaching and learning. How might we standardize the UI so students stay focused and teachers move from invite → assign → track without relearning the interface?



Overview
One system, one language – built for educator tasks.
One system, one language – built for educator tasks.
This work establishes a single visual + interaction language mapped to invite → assign → track, so dashboards, assignments, and progress views feel familiar anywhere you land.
This work establishes a single visual + interaction language mapped to invite → assign → track for educators.
System - level impact made
+System - wide impact and coherence
+System - wide impact
One UI language across student & educator views, consistent tokens, components, and patterns
One UI language, consistent tokens, components, and patterns
One UI language across student & educator views, consistent tokens, components, and patterns
+Faster to ship
+Faster to ship
Reusable components and predictable patterns shorten design → dev cycles and handoffs.
Reusable components, patterns shorten
design → dev cycles.
Reusable components and predictable patterns shorten design → dev cycles and handoffs.
+Educator workflow impact
+Educator workflow impact
+Educator workflow impact
Quicker role aware entry, higher task completion and clearer "who needs attention" tracking for educators
Quicker role aware entry, higher task completion and clearer student tracking.
Quicker role aware entry, higher task completion and clearer "who needs attention" tracking for educators
Problem
Early MVPs shipped screens, not a system. Student and educator surfaces felt related but inconsistent.
Student and educator surfaces felt related but inconsistent.
1
1
Inconsistent primitives
Ad-hoc components, spacing, and labels increased cognitive load and rework across student & educator surfaces.
Ad-hoc components, spacing, and labels increased cognitive load and rework.
2
2
Fragmented brand & style
Visuals, naming, and content patterns weren’t aligned - student and educator UIs looked related but not cohesive.
Visuals, naming, & content patterns weren’t aligned, UI looked related but not cohesive.
3
3
No reusable flows
Invite, assign, and progress views were built one-off, leading to drop-offs and “relearning” each step.
Invite, assign, and progress views were built one-off, leading relearning each step.
1
Inconsistent primitives
Ad-hoc components, spacing, and labels increased cognitive load and rework.
2
Fragmented brand & style
Visuals, naming, and content patterns weren’t aligned and not cohesive.
3
No reusable flows
Invite, assign, and progress views were built one-off, leading to drop-offs and “relearning” each step.
Solution - Design System and System in Action
Building foundation and consistent model across dashboards, assignments, profiles, resources and settings.
Building foundation and consistent model across dashboards, assignments, profiles, resources and settings.
I built a product-ready design system – tokens → components → patterns – with documentation to keep decisions predictable.
I built a product-ready design system – tokens → components → patterns – with documentation to keep decisions predictable.
The Base Kit: rhythm, space, and tone
The Base Kit: rhythm, space, and tone
A small set of foundation decisions drives consistency across both sides of the app.
Color families: brand primary for actions + accent for feedback + neutrals carry most surfaces to reduce visual noise.
Type system (Open Sans + OpenDyslexic): readable hierarchy; generous line-height.
Grid & spacing: cards, lists, and panels snap to a consistent 12-column grid.
Elevation + shadows: subtle shadows to signal interactivity (raised buttons, overlay cards).
A small set of foundation decisions drives consistency across both sides of the app.
Color families: primary for actions + accent for feedback + neutrals carry most surfaces to reduce visual noise.
Type system (Open Sans + OpenDyslexic): readable hierarchy; generous line-height.
Grid & spacing: cards, lists, and panels snap to a consistent 12-column grid..
Elevation + shadows: subtle shadows to signal interactivity (raised buttons, overlay cards).



The Interaction Language: do, choose, adjust, see
The Interaction Language: do, choose, adjust, see
We reduced cognitive load by standardizing how people act, select, fine-tune, and understand progress.
Buttons & states (primary/secondary/tertiary + hover/focus/disabled) clear states and variants remove guesswork
Inputs & dropdowns clarify labels, captions, and errors; (educator vs. student variants) make context obvious.
Toggles, radios, checkboxes group related decisions with consistent spacing and label rules.
Sliders and progress bars differentiate adjusting vs. tracking; come in percentage and basic variants.
We reduced cognitive load by standardizing how people act, select, fine-tune, and understand progress.
Buttons & states (primary/secondary/tertiary + hover/focus/disabled) clear states and variants remove guesswork
Inputs & dropdowns clarify labels, captions, and errors; (educator vs. student variants) make context obvious.
Toggles, radios, checkboxes group related decisions with consistent spacing and label rules.
Sliders and progress bars differentiate adjusting vs. tracking; come in percentage and basic variants.



Components with meaning
Components with meaning
Data containers, system iconography, and brand character bring clarity and a little joy – without distraction.
Cards carry the app’s “units of work” (students, groups, resources) with the same anatomy:
title → key metadata → actions.
Mascot & animated avatars add warmth in student-facing moments without crowding educator tasks.
Icon library (Phosphor 2.1) aligns metaphors across navigation, filters, and statuses.
Data containers, system iconography, and brand character bring clarity and a little joy – without distraction.
Cards carry the app’s “units of work” (students, groups, resources) with the same anatomy:
title → key metadata → actions.
Mascot & animated avatars add warmth in student-facing moments without crowding educator tasks.
Icon library (Phosphor 2.1) aligns metaphors across navigation, filters, and statuses.



Surface Vocabulary – overview → details
Surface Vocabulary – overview → details
We use one surface vocabulary to move from “big picture” to “actionable detail.”
Cards introduce context on overview pages (class health, student tiles).
Lists handle volume (students, assignments).
Status chips add instant meaning (due state, progress, flags) without new styles.
We use one surface vocabulary to move from “big picture” to “actionable detail.”
Cards introduce context on overview pages.
Lists handle volume - students and assignments.
Status chips add instant meaning - due state, progress, flags.
We use one surface vocabulary to move from “big picture” to “actionable detail.”
Cards introduce context on overview pages (class health, student tiles).
Lists handle volume (students, assignments).
Status chips add instant meaning (due state, progress, flags) without new styles.



Class Health at a Glance: Progress Bars & Metric Tiles
Class Health: Progress Bars & Metric Tiles
Progress rings/bars and metric tiles reuse the same brand + accent tokens, so trends look and feel consistent whether you’re in Groups, a class, or a student profile.
Progress rings/bars and metric tiles reuse the same brand + accent tokens, so look and feel is consistent in Groups, a class, or a student profile.



Knowledge Hubs: Tiles for Resources & Handbook
Tiles for Resources & Handbook
Resource libraries and the handbook apply the same card/tile grid, spacing, and iconography so browsing content feels as natural as scanning student data.
Resource libraries and the handbook apply the same card/tile grid, spacing, and iconography.



With one consistent system, the app scales from class overviews to deep student insights - fewer components, faster builds, and a product that feels instantly familiar wherever you land.
With one consistent system, the app scales from class overviews to deep student insights.
Impact
Replaced ad hoc screens with consistency, cut design debt and made new features inherit clarity.
Replaced ad hoc screens , cut design debt.
Standardizing components, and patterns into a single style guide, we replaced ad-hoc screens with a consistent UI language. Educator flows now reuse the established system, reducing “relearning” and design debt. The system scales across student and educator surfaces, so new features inherit clarity.
+System - wide impact and coherence
+System - wide impact and coherence
Conducted – a Design-system audit (tokens, components, surface patterns)
Conducted – a Design-system audit (tokens, components, surface patterns)
Finding
Finding
Screens share one vocabulary (grid, cards/lists, chips), reducing relearn across features.
Screens share one vocabulary (grid, cards/lists, chips), reducing relearn across features.
+Faster to ship
+Faster to ship
Conducted – Handoff review (specs, PR notes) + component library check.
Conducted – Handoff review (specs, PR notes) + component library check.
Conducted – Handoff review (specs, PR notes) + component library check.
Finding
Finding
Finding
Fewer bespoke UI variants and clearer state docs; smoother design→dev handoffs.
Fewer bespoke UI variants and clearer state docs; smoother design→dev handoffs.
Fewer bespoke UI variants and clearer state docs; smoother design→dev handoffs.
+Educator workflow impact
+Educator workflow impact
+Educator workflow impact
Conducted – task walkthroughs (invite, assign, track) with educators.
Conducted – task walkthroughs (invite, assign, track) with educators.
Conducted – task walkthroughs (invite, assign, track) with educators.
Finding
Finding
Finding
Reduced steps and decisions to create assignment, cutting backtracks.
Reduced steps and decisions to create assignment, cutting backtracks.
Reduced steps and decisions to create assignment, cutting backtracks.
Faster "who needs attention checks with status chips and progress tiles.
Faster "who needs attention checks with status chips and progress tiles.
Faster "who needs attention checks with status chips and progress tiles.
Conclusion
I defined the north star, built the design system (foundations, components, patterns), and drove adoption through hi-fi prototypes mapped to key educator tasks.
I built the design system, drove adoption for key educator tasks.
The app now uses a single visual + interaction language – so students get a calm, consistent experience, and educators move from invite → assign → track without relearning the UI.
A single visual + interaction language – so students get a calm experience, and educators move from invite → assign → track without relearning the UI.
What I'd do next
Add contribution rules (naming, anatomy, do/don’t examples) to keep quality as the app grows.
Expand the system with motion specs for micro-feedback and empty-states.
Add contribution rules to keep quality as the app grows.
Expand the system with motion specs for micro-feedback and empty-states.
What I learned
A shared surface vocabulary (cards, lists, chips) + consistent interaction states removes more friction than isolated screen tweaks.
A shared surface vocabulary (cards, lists, chips) + consistent interaction states removes more friction than isolated screen tweaks.