Mumzworld — Design System

Mumzworld — Design System

Faster design and development cycles for the GCC's largest mother & baby e-commerce.

Faster design and development cycles for the GCC's largest mother & baby e-commerce.

Faster design and development cycles for the GCC's largest mother & baby e-commerce.

Atomic design pattern library
Figma
InVision DSM
Sketch

Built a token-driven design system for Mumzworld that replaced 184 unique colors with a documented palette, mapped recurring patterns into a shared library, and gave product and engineering one vocabulary across web and app — cutting the time from concept to implementation by more than half.

Industry

E-commerce · Mother & Baby · GCC

Stack

Atomic design pattern library · Figma · InVision DSM · Sketch

Mumzworld is the indispensable online extension of a mum's life. The system goal was to make her feel comfortable, empowered, and safe at every touchpoint — without engineering rebuilding the same components in slightly different ways each time. The design system below became the foundation; the three applied sections that follow show what got built on top of it.


The Problem

An audit of the live site surfaced 184 unique colors and 299 total background colors across the interface. The visual brand felt scattered, perceived quality suffered, and engineers had no single reference for what "primary" actually meant. Each new feature added another variant; nothing was retired.

The deeper issue was structural. There was no shared vocabulary between design and engineering. Product owners thought in features, designers in screens, engineers in components — and the gaps between those mental models showed up as duplication, drift, and rework. Customer-facing surfaces (post-purchase comms, order tracking, multi-role features like gift registry) all suffered the same root cause: every team was reinventing the wheel.


How I Framed It

The system needed to do three jobs in one: standardize the brand expression, document the recurring patterns, and give engineering a checklist for how each element should behave.

Step 1 — Design principles. We asked how we wanted users to feel: comfortable, secure, in control. The aesthetic decisions (color, typography, spacing, tone) flowed from that emotional target — not from a designer's preference.

Step 2 — Pattern map. We laid printed flows side by side on a board and tagged the components that recurred. The ones used most by customers got the deepest documentation; the rare ones got noted and deprioritized.

Step 3 — Naming and scope. Each component shipped with a scope checklist — anatomy, states, edge cases, behavior — co-authored with product owners and engineering, not handed over.


Key Decisions

Audit the chaos before designing the system

Context: The temptation was to skip straight to the new tokens. Without measuring what was already there, we'd just be adding a 185th color.

Choice: Two-week audit pass first — every screen across web and app, every unique color and pattern catalogued. The 184 → 299 number wasn't a vanity statistic; it was the argument that won engineering buy-in.

Trade-off: Two weeks of "no visible output" before any system work started. Worth it for the leverage in every subsequent decision.

One system across web and app, not two

Context: Web and mobile were on separate roadmaps with separate component libraries. The easy path was to leave them parallel.

Choice: One source-of-truth foundation, with platform-specific consumers. Type ramp, color, spacing, and motion principles were unified; surface-level implementation diverged only where the platform demanded it.

Trade-off: Slower initial rollout — coordinating both teams added meetings. Paid back the first time a brand refresh propagated to both surfaces in days instead of months.

Document patterns collaboratively, not as a handoff

Context: Design systems often get written by designers in isolation, then "shipped" to engineering — who then ignore them.

Choice: Each pattern's scope document was co-authored in a working session with product owners and engineers. By the time it was published, all three roles had already agreed on the contract.

Trade-off: Heavier meeting load early in each component's lifecycle. The components that came out of that process were the ones that actually stuck.


Built a token-driven design system for Mumzworld that replaced 184 unique colors with a documented palette, mapped recurring patterns into a shared library, and gave product and engineering one vocabulary across web and app — cutting the time from concept to implementation by more than half.

What Shipped — The Foundation

A documented design system covering color, typography, spacing, iconography, and a component library mapped to the most-used patterns across Mumzworld web and app — alongside a published style guide, naming conventions, and a scope checklist used by every team building new surfaces.

Standardized the color palette (down from 184 unique values to a documented core set), unified the iconography (one shared icon system across web and app), and produced a functional pattern map that connected user behaviors to the components supporting them.


Applied — Output Patterns Family

Every team shipping a new flow had been making the same micro-decision: how do I tell the user this thing happened? Toast? Inline error? Page banner? Modal? Each squad solved it locally, so the same conceptual event (e.g. "address is missing") showed up as a different visual treatment depending on which screen you were on.

The fix was a named, reusable family of six output patterns — each with anatomy, intent, and behavior documented together:

Tour Tip — a system-activated flyout that informs the user of a new feature or section. Open by default, explicitly closed by the user, cannot be reopened.

Toast Dialog — a passively spawned, non-modal notification. Non-intrusive, system-level status that doesn't block the user's task.

Page Notice — a custom landmark at the top of the page. Used for state that's relevant to the whole page.

Inline Notice — a landmark inside the content area. Used for state that's relevant to a specific section, not the whole page.

Confirm Dialog — a lightbox that prompts the user to confirm or cancel a destructive or irreversible action.

Alert Dialog — a lightbox that prompts the user for acknowledgement. Strictly for messages that must be seen before continuing.

Patterns were named by job (not visual) so the catalog survives visual refreshes. Product owners stopped writing "show a modal here" in tickets and started writing "page notice."


What Shipped — The Foundation

A documented design system covering color, typography, spacing, iconography, and a component library mapped to the most-used patterns across Mumzworld web and app — alongside a published style guide, naming conventions, and a scope checklist used by every team building new surfaces.

Standardized the color palette (down from 184 unique values to a documented core set), unified the iconography (one shared icon system across web and app), and produced a functional pattern map that connected user behaviors to the components supporting them.


Applied — Output Patterns Family

Every team shipping a new flow had been making the same micro-decision: how do I tell the user this thing happened? Toast? Inline error? Page banner? Modal? Each squad solved it locally, so the same conceptual event (e.g. "address is missing") showed up as a different visual treatment depending on which screen you were on.

The fix was a named, reusable family of six output patterns — each with anatomy, intent, and behavior documented together:

Tour Tip — a system-activated flyout that informs the user of a new feature or section. Open by default, explicitly closed by the user, cannot be reopened.

Toast Dialog — a passively spawned, non-modal notification. Non-intrusive, system-level status that doesn't block the user's task.

Page Notice — a custom landmark at the top of the page. Used for state that's relevant to the whole page.

Inline Notice — a landmark inside the content area. Used for state that's relevant to a specific section, not the whole page.

Confirm Dialog — a lightbox that prompts the user to confirm or cancel a destructive or irreversible action.

Alert Dialog — a lightbox that prompts the user for acknowledgement. Strictly for messages that must be seen before continuing.

Patterns were named by job (not visual) so the catalog survives visual refreshes. Product owners stopped writing "show a modal here" in tickets and started writing "page notice."


Applied — Order Tracking (68% Call-Centre Reduction)

Customer care was drowning. Customers couldn't see where their orders were, called in droves, lost faith, and asked for refunds. The fix wasn't a bigger support team; it was a tracking page customers could actually trust.

Two structural moves, both leaning on the output pattern library:

Manage expectations before purchase, not after

Context: Most order-tracking redesigns only touch post-purchase. The real frustration starts when a customer's PDP-stage expectation doesn't match the actual delivery experience.

Choice: Improved the delivery-promise highlight on the PDP. Made the checkout screen show expected shipments with estimated delivery dates per item, broken down by shipment type (Yalla / Standard / Extended).

Trade-off: Touched surfaces outside the original brief. Negotiating PDP changes across two more squads added two weeks. The pre-purchase signal turned out to be the highest-leverage change in the whole project.

Break orders down by shipment, not by line item

Context: Customers think in shipments ("when does my box arrive"), but the order management system thinks in line items. The old page reflected the OMS view.

Choice: Order list and details rebuilt around shipments. Highlighted exceptions (pending phone confirmation, missing address, payment failure) using the page-notice and inline-notice patterns from the output pattern library.

Trade-off: Required a non-trivial schema change on the OMS side to surface shipment groupings cleanly. Worth it — the customer's mental model now matches the UI.

Call-centre volume dropped by 68% within two weeks of launch. Customers were getting their answers from the tracking page itself instead of calling.


Applied — Gift Registry (Three Roles, Three Scenarios)

Planning an occasion — a wedding, a baby shower, a birthday — is hectic. A registry should take the burden off, not add to it. We weren't designing for one user: three roles all needed the same feature to work — a non-owner who wants to create a registry; an owner who wants to manage hers; and a non-owner who wants to find a friend's registry and buy something off it.

Three scenarios, three entry surfaces:

Scenario 1 — Wishlist an item to get back to it later → trigger a dialog and start a new registry from a moment of interest.

Scenario 2 — Planning a baby shower mid-browse → "Add to registry" secondary button on the PDP, no need to break flow.

Scenario 3 — Found a banner or link to the registry hub → main registry page as the canonical entry point.

Build for three roles, not one

Context: It's tempting to design the registry as a single-user feature and bolt on the buyer experience later. That always produces a buyer flow that feels like an afterthought.

Choice: Each role got a documented persona, a user-story sheet, and a flow — designed in parallel, not sequentially. Owner onboarding, buyer discovery + purchase, and the browser's "find my friend's list" path all built together.

Trade-off: Longer up-front design phase. Compensated by avoiding the typical "the buyer's flow is broken because we didn't think about it" rework cycle.

The instinct that emerged — design for the secondary user (the buyer) at the same priority as the primary user (the owner) — became a default for every multi-role feature I've designed since.


Result

Design and engineering ship faster because they're not re-litigating the same decisions on every project. New product surfaces inherit the system rather than reinventing it. The brand expression is consistent across web and app — and the perceived-quality gap the audit surfaced is closed.

  • 184 → 1 core palette — Unique colors

  • 6 — Named output patterns shipped

  • 68% in 2 weeks — Call-centre volume reduction (Order Tracking)

  • 3 roles, 3 scenarios — Multi-role template (Gift Registry)

Most importantly, the system became the canonical reference. When a new designer joined the team, the system answered their first hundred questions before they had to ask.


What I'd Do Differently

I'd publish the system as code-backed Figma variables from the start. We shipped on InVision DSM, which sunset shortly after; the structure of the system survived but the tool didn't. Today's stack — Figma variables + Style Dictionary + Storybook — would have made the system platform-agnostic and protected it from any single vendor's lifecycle.


What's Next

The instincts that emerged here — token foundation first, semantic layer second, components last; name patterns by job not visual; surface decision data on the canonical surface, not behind a navigation step; design for the secondary user at the same priority as the primary — became the spine of every design system I've shipped since (ARES, Avnzor, Shedd). Mumzworld is where that approach was first tested at scale.

What I'd Do Differently

I'd publish the system as code-backed Figma variables from the start. We shipped on InVision DSM, which sunset shortly after; the structure of the system survived but the tool didn't. Today's stack — Figma variables + Style Dictionary + Storybook — would have made the system platform-agnostic and protected it from any single vendor's lifecycle.


What's Next

The instincts that emerged here — token foundation first, semantic layer second, components last; name patterns by job not visual; surface decision data on the canonical surface, not behind a navigation step; design for the secondary user at the same priority as the primary — became the spine of every design system I've shipped since (ARES, Avnzor, Shedd). Mumzworld is where that approach was first tested at scale.

More Projects

Creating Since 2010

I’m currently available for new work. Let me know if you need a digital designer. I’d love to talk about the next big thing!

© Molham.Works 2025