KO
All work

Comfy Org (ComfyUI) · 2025.08 – 2026.03

ComfyUI Design System: Storybook & Shared Modal Migration

Introduced Storybook and shared modal primitives, then migrated every product modal. Template clicks tripled.

Role
Frontend Core Team · Design System Code Owner
Period
2025.08 – 2026.03
Stack
  • Vue 3
  • TypeScript
  • Storybook
  • Tailwind CSS
  • Vite
ComfyUI Design System: Storybook & Shared Modal Migration

Overview

As Code Owner for the design system on ComfyUI's frontend core team, I led it end to end: raising the problem, getting the team to agree, building it and rolling it out across the product. It all happened in English code review, and the full history is public on GitHub.

Background

Problem

  • PrimeVue defaults and custom CSS were mixed, so the UI looked different from screen to screen.
  • Similar components had split into several versions, and each contributor built things their own way.

Goal

  • A design system any open-source contributor can understand and reuse.
  • Move every product modal and shared component onto the new system.

What I did

  • Opened a Storybook PR first to make component fragmentation visible, which got the team to agree on a design system.
  • Designed Modal / BaseModalLayout primitives and migrated every product modal one by one: Node Manager, Model Browser, Workflow Template, Settings and more (up to 54 files in a single PR).
  • Merged three separate search components into one SearchInput and moved hard-coded style values to Tailwind design tokens.
  • Replaced PrimeVue AutoComplete, ProgressSpinner and Galleria with in-house components and improved keyboard accessibility, including an Escape event propagation bug.
  • Proposed turning static loading time into a brand moment, then designed and built a logo-fill loading indicator and splash screen as shared components.

Results

  • Template clicks ×3

    After the Workflow Template modal moved to the new design system, the number of users who actually clicked a template tripled.

  • Instant closes down 50%+

    The share of users who closed the modal right after opening it dropped by more than half.

  • 60 design system PRs merged

    As Code Owner I merged 60 PRs in the design system area (+12,599 / −7,803 lines).

Key features

  • 01

    Component docs in Storybook

    Shared components documented in Storybook, so visual review with the design team and onboarding for community contributors got easier.

  • 02

    Modal / BaseModalLayout primitives

    Shared primitives so every modal in the product uses the same layout, spacing and behavior.

  • 03

    Logo-fill loading indicator

    A loading animation in the design system that turns waiting time into a brand moment.