One design system for more than 20 research archives, each with its own brand.
Mosaic is ICPSR’s shared design system. I ran its three-month pilot, helped define its key components, and have led it since August 2024.
- Leading
- Aug 2024 – now
- My role
- Design system lead, ICPSR
- Leads
- A UX engineer and me
- With
- ICPSR’s UX engineers and product designers
- PrinciplesCriteriaClarity, consistency, accessibility, performance, governed evolution.
- TokensFoundationColor, type, spacing, state and theme values shared across products.
- ComponentsLibraryReusable UI with Figma and implementation rules kept in sync.
- PatternsUsageResearch product flows, forms, search, review and data display models.
- GovernanceLoopPromotion path from product-specific work to stable system assets.
What I covered
Overall role Design system lead Steps 2–5
Before the UX team ICPSR’s products had grown apart long before there was a UX team. The organization formed one partly to fix that, so a shared design system was part of the team’s brief from the start.
A year and a half in, Mosaic was showing where it strained.
After about 1.5 years of Mosaic in operation, I looked at how teams were actually using it. I came out with eight lessons.
- 01Simpler is betterFewer dependencies, especially between Bootstrap 5 and React, make the system easier to scale and maintain.
- 02Code convergence is hardMoving patterns across HTML, CSS and React adds complexity unless the system defines cleaner boundaries.
- 03Foundations matterMissing design tokens made larger components harder to build, update and reason about.
- 04Categories need sharper definitionsAtoms, molecules, organisms, patterns and templates need clearer ownership and promotion criteria.
- 05Import workflows need structureTeams need a more organized way to bring Mosaic components into real product work.
- 06Snowflakes need a place to matureProject-specific components, like a one-off hero for one ICPSR site, should go through a lab phase first.
- 07Docs should separate common from experimentalOfficial docs cover repeatable components. Project patterns stay visible without bloating the core.
- 08AI changes the system contractTokens, rules and docs must be structured for AI agents, within institutional security and privacy limits.
Seven principles for what Mosaic builds, reuses and keeps experimental.
I led a workshop with UX designers and UX engineers to turn those lessons into a direction for the next Mosaic. The principles cover interface quality and how the system is governed.
- 01Clarity over complexityLayouts, labels and interactions should feel obvious and predictable, especially for new users.
- 02Consistency builds trustReuse established patterns before reinventing, so users can carry what they know across products.
- 03Performance is a featureFast pages, responsive interactions and reliable services matter as much as visual polish.
- 04Accessibility from the startSupport diverse contexts, abilities, devices, geographies and backgrounds from the component layer up.
- 05Simplicity over decision fatigueEvery element should earn its place by supporting a core task or decision.
- 06Delight without disruptionPersonality belongs where it reduces stress or helps understanding, never where it hurts performance, clarity or focus.
- 07Built to evolveClear boundaries between system-owned patterns, third-party tools, experimental work and AI-assisted workflows.
For AI agents to build with Mosaic, tokens need predictable names, components need clear usage rules, and docs need to separate stable, experimental and project-specific patterns. Security and privacy rules keep AI tools out of some workflows, so the plan keeps tokens and component definitions in sync between code and Figma without sending sensitive product context through unmanaged AI tools.
I ran the pilot, and the system came back to me two years later.
My three-month pilot showed a shared system could work. My predecessor then set up Mosaic’s basic structure, and for two years the product designers, me included, defined its key components. In August 2024 I took over as lead.
- 3 monthsPilotMy pilot tested whether a shared system could work, and it validated the concept.
- After the pilotStructureMy predecessor set up Mosaic’s basic structure.
- 2 yearsComponentsProduct designers, me included, defined the key components.
- Aug 2024LeadMosaic came back to me. I refined the components and added the missing ones.
- NextNew directionThe workshop in step 3 set the principles for the next version.
- 01UX designersA component library in Figma to reference and build from.
- 02UX engineers and developersA code library of accessible, documented components they can drop into any product.
- 03Client-facing teamsA coherent product story to tell funders.
More than 20 archives share one set of components and keep their own brands.
Each archive sets its own theme tokens for color, typography and spacing. The components underneath don’t change. ICPSR’s primary color is navy, for example, while one branded archive uses purple.
One component library and one Figma source of truth for ICPSR’s product teams.
run on Mosaic through a shared template.