Case study 06
TrainerQ Design System
A Figma component library built on shadcn/ui, bridging design and engineering with a unified, battle-tested design language for TrainerQ.
Challenge
The challenge
As a solo designer-developer, keeping visual consistency across a product as complex as TrainerQ quickly becomes unsustainable without a structured system. TrainerQ has dashboards, RPG progression screens, coach portals, and a marketplace.
The challenge: build a design system that is fast to work with in Figma, maps 1:1 to the code components, and scales as the product grows, all without a dedicated design systems team.
Solution
The solution
I chose shadcn/ui as the foundation (a component collection built on Radix UI primitives and Tailwind CSS) and extended it with TrainerQ-specific patterns. The Figma library mirrors the codebase component for component, so nothing gets lost translating design into implementation.
- Full component library in Figma with variants, states, and interactive prototyping
- Token-based color system aligned with Tailwind CSS custom properties
- Dark-mode-first design with consistent contrast ratios across all surfaces
- Game components: XP bars, character stat cards, tier badges, achievement modals
- Shared spacing, typography, and shadow scales as Figma variables
Process
My process
The system grew iteratively alongside the product. I designed components only when they were needed, which avoided premature abstraction while keeping everything documented and reusable.
- Audited existing screens to identify repeated UI patterns worth abstracting
- Defined the token layer first: color, typography, spacing, elevation
- Built base components and extended them with TrainerQ-specific overrides
- Created usage guidelines and annotation templates directly in Figma
- Validated component fidelity by building screens from library pieces only
Snapshots
System snapshots
Component library previews and usage examples. Click to zoom in.