6 min read
Unbounce:
Design system
Company
Unbounce
Team
Sr. Product Designer, Dev-lead
Project DURATION
4 months
ROLE
Senior Product Designer
Strategy, Research, Planning, Testing, Building, Maintaining
goals
Align design and engineering around a single source of truth
Improve design-to-development handoff efficiency and reduce clarification cycles
Enable faster experimentation and feature delivery without sacrificing quality or accessibility
Impact
Time to market: 2x faster delivery of new features and experiments
Consistency & trust: significant reduction in UI inconsistencies across product and experimentation surfaces
Scalability: System components and tokens became default for new features and experiments
Unbounce:
All pages
As the product scaled, design and engineering workflows evolved at different speeds. While the design team relied on a lightweight style guide, engineering was shipping quickly and building UI components to keep up with delivery demands.

Over time, this created misalignment between design intent and implementation, making it difficult to scale the product consistently.
Pain points
Style Guide without integration
Visual style guide existed, but it functioned as a design-only artifact rather than a shared system.
Provide contextual recommendations.
Provide contextual recommendations.
Style Guide without integration
Engineering teams were shipping quickly, but components were created in the context of individual screens.
Provide contextual recommendations.
Provide contextual recommendations.
Style Guide without integration
Design and engineering maintained style guide separate and increasingly divergent libraries.
Provide contextual recommendations.
Provide contextual recommendations.
Style Guide without integration
As duplication increased, delivery time per feature gradually increased as well.
Provide contextual recommendations.
Provide contextual recommendations.
Collaboration with a stakeholders is key to a successful design system:
Design Team: easy to use and meets their needs
Development Team: design system integrates smoothly with the development process
Product Management: design system can support product initiatives
Initiatives
Style Guide without integration
Align design and engineering around shared expectations and constraints.
Provide contextual recommendations.
Provide contextual recommendations.
Style Guide without integration
Reduce guesswork and rework during implementation.
Provide contextual recommendations.
Provide contextual recommendations.
Style Guide without integration
Improve inconsistency, velocity, and long-term maintainability.
Provide contextual recommendations.
Provide contextual recommendations.
Style Guide without integration
Define a single, scalable source of truth for components and patterns.
Provide contextual recommendations.
Provide contextual recommendations.
System Structure
The design system was planned and rolled out incrementally to support rapid experimentation while ensuring long-term scalability and maintainability across teams.
Design system:
Architecture
Planning, Adoption & Maintainability
To avoid disrupting active product work, the system was introduced alongside ongoing feature development rather than as a standalone initiative:
Conducted a UI and component audit to identify duplication and high-impact opportunities
Prioritized frequently used components tied to core product and experimentation flows
Co-designed components with engineering to ensure feasibility, performance, and adoption
Design system
Foundation | ColorsDesign system
Foundation | TypographyDesign system
Foundation | SpacingDesign system
Foundation | Grids
I audited the existing design libraries and restructured them into a foundation-level hierarchy defining color, typography, spacing, and elevation creating a scalable base for consistent component design and future evolution.
Design system
Colors | Sample
Graphical assets were centralized into a single library designed to cover all product needs and evolve alongside the product. Icons, illustrations, and supporting visuals were reviewed, standardized, and updated as new use cases emerged.
Design system
Icons | Sample
Hierarchy
Tokens were structured in a layered hierarchy to balance flexibility and control:
Global tokens: Raw, brand-level values (e.g. base colors, font families)
Semantic tokens: Purpose-driven mappings (e.g. text-primary, background-surface, border-critical)
Component tokens: Context-specific overrides scoped to individual components when needed

Token Governance
To keep the system maintainable as teams scaled, clear governance was established around token creation and usage.
Design system
Tokens
Components were designed as reusable, composable building blocks that balanced consistency with the flexibility needed for rapid experimentation.
Key principles guiding component design
Reuse over duplication
Prioritized common use cases to maximize adoption.
Provide contextual recommendations.
Provide contextual recommendations.
Extensibility
Components supported variations through props and configuration rather than custom forks.
Provide contextual recommendations.
Provide contextual recommendations.
Extensibility
Components supported variations through props and configuration rather than custom forks.
Provide contextual recommendations.
Provide contextual recommendations.
Accessibility by default
States, interactions, and contrast were built into the base component.
Provide contextual recommendations.
Provide contextual recommendations.
Design–Engineering alignment
Components were designed and documented alongside their code counterparts.
Provide contextual recommendations.
Provide contextual recommendations.
Design system
Buttons | Sample
Documentation
Documentation was treated as a core part of the design system, not a secondary deliverable. Its purpose was to make the system easy to understand, adopt, and evolve for both designers and engineers.
Each component and foundation was documented with:
Clear usage guidelines and best practices
Do / don’t examples to prevent misuse
Accessibility considerations and interaction states
Design and engineering references aligned side by side

By investing in clear, practical documentation, the system became self-serve reducing clarification cycles, improving consistency, and accelerating onboarding for new team members.
Design system
Doc | Sample
Design - Engineering integration
Design tokens were managed using Token Studio, allowing tokens to be structured, versioned, and exported in formats compatible with engineering needs. This created a shared, source-controlled contract between design and code.

Tokens and system artifacts were synchronized through JSON-based sources (GitHub / GitLab for version control).
Design system
Plugin

Results

The design system delivered measurable improvements across design, engineering, and product teams, while establishing a scalable foundation for Unbounce’s continued growth.
2x Faster delivery
Reduced time to design and implement new UI by enabling teams to reuse existing, system-driven components.
Provide contextual recommendations.
Provide contextual recommendations.
Improved inconsistency
Significant reduction in UI inconsistencies across product and experimentation surfaces.
Provide contextual recommendations.
Provide contextual recommendations.
Engineering efficiency
Less duplicated component work and fewer implementation assumptions.
Provide contextual recommendations.
Provide contextual recommendations.
Adoption at scale
System components and tokens became the default for new features and experiments.
Provide contextual recommendations.
Provide contextual recommendations.