MAI Portal Design System

Shipped

Design Systems

EdTech

UX Design

Scaling B2B Medical Education: Building the MAI Portal Design System from 0→1

Thumbnail collage of MAI Portal UI components, including buttons, form fields, tables, filters, notifications, and modal states from the B2B design system.

I built MAI's first unified design system for a B2B medical education portal. By establishing style foundations, an atomic component library, usage guidelines, and full dev handoff, we reduced feature delivery time by 28%.

Role

UI & Visual System Designer

Timeline

3 months (Dec 2022 - Mar 2023)

3-day Hackathon | March 6–9, 2026 & 3-day redesign prototype

Team

3 Designers 1 Frontend Developer 1 Full-Stack Developer

2 Designers

⎯ ✾ ❀ ✽ ⎯
The Problem

Features shipped before any shared standards existed

As MAI Portal evolved from a single admin tool into a broader enterprise ecosystem—adding VR classroom management, subscriber licensing tools, and role-based workflows—features were shipped in parallel without shared visual standards.


Challenge #1: Unclear B2B Visual Language

The portal needed to feel structured and trustworthy, distinct from MAI's consumer VR products.

Challenge #2: Inconsistent UI Patterns

No standardized components or interaction patterns, causing duplicated work across features.

Challenge #3: No Scalability

Without a shared Figma library, every new module had to be designed and handed off from scratch.

Challenge #1: Unclear B2B Visual Language

The portal needed to feel structured and trustworthy, distinct from MAI's consumer VR products.

Challenge #2: Inconsistent UI Patterns

No standardized components or interaction patterns, causing duplicated work across features.

Challenge #3: No Scalability

Without a shared Figma library, every new module had to be designed and handed off from scratch.

Challenge #1: Unclear B2B Visual Language

The portal needed to feel structured and trustworthy, distinct from MAI's consumer VR products.

Challenge #2: Inconsistent UI Patterns

No standardized components or interaction patterns, causing duplicated work across features.

Challenge #3: No Scalability

Without a shared Figma library, every new module had to be designed and handed off from scratch.

The Solution

A unified design system

A unified design system, including atomic component library, usage guidelines, and Figma UI kit, built as a single source of truth across all portal modules.

⎯ ✾ ❀ ✽ ⎯
Color Direction

Defined the Portal’s color direction from MAI’s brand palette

MAI's consumer VR palette skewed warm. For the B2B portal — used by admins, distributors, and institutions — we needed something more structured. Cyan became the primary anchor.

We tested brand colors across portal UI touchpoints before committing. Warm tones read as consumer-facing; cyan held authority at data-dense scales.


Defined the Portal’s core color direction from MAI’s brand palette


Tested MAI brand colors across digital touchpoints before defining the Portal direction


IA & User Flows

Role-based navigation show only what each user needs

The portal serves four distinct role groups, each with different access levels across organizational and personal plans. Early flows surfaced everything to everyone. We mapped each role's core tasks and built a modular sidebar that scopes navigation to exactly what each user needs.

When early wireframes felt too dense, we restructured task lists into sequential steps to reduce complexity and improve navigation consistency.


Mapped role-based navigation and restructured dense flows into clearer, task-specific experiences


Component Library

Build from atoms to a scalable UI kit

Built bottom-up using atomic design. Every component covers its full range of states so developers have everything without back-and-forth.



System Architecture

Global vs. scoped structure for a scalable design system

Split into two layers: shared style variants in the MAI Portal UI Kit, and feature-specific content variants inside each product file.

Why this structure
Global updates stay consistent; local changes stay contained. A snackbar lives once in the UI Kit — User Management, Licensing, and VR Classroom each pull from it without duplicating the base.


Built a scalable UI kit in Figma and organized components into shared style variants and feature-specific content variants

Reflections

What did I learn?


A design system is more than a UI kit

When we started, the problem felt visual — inconsistent components, mismatched patterns, slow handoff. But through the process I realized the deeper issue: without a shared foundation, every team was making the same decisions independently. Building from zero taught me that consistency doesn't come from documentation — it comes from reducing decision friction. When the right component is the easiest one to reach for, consistency scales itself.

No token layer — intentional for MVP, but the clearest next step

We skipped a primitive-to-semantic token structure given the 3-month timeline, and the handoff we shipped was enough for MVP. But without tokens, a global theme change means touching every component manually. That's the first thing I'd build next — and the gap that showed me the difference between a design library and a system that truly scales.

A design system is more than a UI kit

When we started, the problem felt visual — inconsistent components, mismatched patterns, slow handoff. But through the process I realized the deeper issue: without a shared foundation, every team was making the same decisions independently. Building from zero taught me that consistency doesn't come from documentation — it comes from reducing decision friction. When the right component is the easiest one to reach for, consistency scales itself.

No token layer — intentional for MVP, but the clearest next step

We skipped a primitive-to-semantic token structure given the 3-month timeline, and the handoff we shipped was enough for MVP. But without tokens, a global theme change means touching every component manually. That's the first thing I'd build next — and the gap that showed me the difference between a design library and a system that truly scales.

A design system is more than a UI kit

When we started, the problem felt visual — inconsistent components, mismatched patterns, slow handoff. But through the process I realized the deeper issue: without a shared foundation, every team was making the same decisions independently. Building from zero taught me that consistency doesn't come from documentation — it comes from reducing decision friction. When the right component is the easiest one to reach for, consistency scales itself.

No token layer — intentional for MVP, but the clearest next step

We skipped a primitive-to-semantic token structure given the 3-month timeline, and the handoff we shipped was enough for MVP. But without tokens, a global theme change means touching every component manually. That's the first thing I'd build next — and the gap that showed me the difference between a design library and a system that truly scales.

Looking for 2026 full-time roles

©2026 Pinyun Wang. All rights reserved. | Developed with Coffee & Love

Looking for 2026 full-time roles

©2026 Pinyun Wang. All rights reserved. | Developed with Coffee & Love