digital-retail
Crafting a Unified Design System for PROS Digital Retail
Multi-Brand Design System for Airlines
Design System
Multi-branding
Design Tokens
Figma
Airline Industry
Architected a scalable multi-brand design system serving airline clients, each requiring unique visual identity while maintaining PROS product consistency. The system enables rapid brand customization without code changes, reducing theming effort from 3 weeks to 3 days per airline brand.
Dec 9, 2022
Role
Timeline
Impact
Tech
The Challenge
2021: Digital Retail was in maintenance mode. The team had been reduced to minimum resources. Azores Airways (SATA) wanted to migrate from the legacy booking system to our new React version, but we had no scalable way to handle airline branding.
I saw an opportunity:
What if we built multi-brand theming from the start, not as an afterthought?
The situation:
SATA migration approved as proof of concept
Minimal development resources (most team had been let go)
Each airline would demand pixel-perfect brand adherence
No existing design system for the new React platform
If SATA succeeded, more airlines would follow
The risk:
Build it wrong, and we'd be stuck with custom CSS per airline forever
Build it right, and we'd have a scalable system for future clients
I built the design module on my own, in parallel to the frontend team's work.
The Fundamental Question
Rather than asking "how do we make this component work for Brand X?", I reframed it as:
"What if brand identity was just configuration, not code?"
This shift in thinking led to the token-based multi-brand architecture where:
Components are brand-agnostic
Visual identity lives in design tokens
New brands = new token configuration, not new components
One codebase serves all customers
My Approach
1. Token-Based Multi-Brand Architecture
Instead of building separate themes, I designed a token system where brand identity is data, not code:
Core insight: Airlines differ in values (colors, fonts), not structure (components, spacing system)
This meant:
Single component library for all brands
Brand differences expressed as design token sets
Theme switching via token swap, not code changes
New airlines require only token configuration
2. Collaborative Brand Abstraction
Worked directly with airline brand teams to identify patterns:
Analyzed 5 existing airline brand guidelines
Extracted common denominators (typography scales, spacing systems)
Identified true differences (brand colors, logo usage, photography styles)
Created brand abstraction layer that accommodates variations
3. Figma-First Design Process
Prototyped the entire multi-brand system in Figma before touching code:
Built master component library with smart defaults
Created brand "modes" for each airline
Validated with stakeholders using interactive prototypes
Refined token taxonomy based on designer feedback
4. Systematic Token Taxonomy
Designed a three-tier token system that separates brand from structure:

This hierarchy ensures brand changes cascade correctly without breaking components.
The solution
Multi-Brand Token Architecture
Created a sophisticated token system with clear separation of concerns:
Figma Variables & Modes Implementation
Built the design system in Figma using Variables and Modes:
9+ Theme Modes:
Light and dark variants for each airline
High-contrast accessibility modes
Preview mode for stakeholder presentations
Variable Collections:
Colors: Brand palette, semantic colors, component colors
Typography: Scale, weights, line-heights
Spacing: 8px base grid with consistent increments
Borders: Radii, widths, styles
Mode Switching: Designers toggle between airline brands instantly to validate cross-brand consistency

Component Design Patterns
Every component built with multi-brand support from the start:
Button example:
Structure identical across brands
Colors reference semantic tokens
Hover/active states use brand-relative calculations
Accessibility (contrast ratios) validated per brand
Card example:
Layout system brand-agnostic
Surface colors map to brand tokens
Borders and shadows scale with brand intensity
Typography follows brand type scale
Build Pipeline & Tooling
Created automated tooling to maintain brand-code alignment:
Style Dictionary transformation:
CI/CD validation:
Automated contrast ratio checking per brand
Visual regression tests across all brand modes
Token naming convention enforcement
Breaking change detection
Technical Implementation
Architecture Decisions
Why Figma Variables over separate files:
Single source of truth for designers
Mode switching shows brand impact immediately
Variables export to tokens automatically
Easier maintenance than managing 9+ separate Figma files
Why three-tier token hierarchy:
Brand tier: Makes adding new airlines trivial (just define brand palette)
Semantic tier: Provides meaning and context
Component tier: Isolates component-specific decisions
Why Style Dictionary:
Transforms tokens to multiple formats (SCSS, CSS, JS)
Validates token references at build time
Platform-agnostic output
Supports complex transformations
Brand Implementation Pattern
Adding a new airline brand follows this process:
Receive brand guidelines (colors, typography, logos)
Define brand tokens in Figma Variables
Create mode for the new airline
Validate components across all screens
Export tokens via Figma plugin
Transform to code via Style Dictionary
Deploy - new brand live without code changes
Time: 3 days vs. 3 weeks previously
Example: Button Component
Same component, different brand token values = unique airline identity.
Design Process
The Workflow: Design to Production:
Receive brand guidelines from client
Configure primitive tokens in Figma (colors, typography, spacing scales)
Validate semantic token mappings
Generate high-fidelity preview in Figma
Export token JSON via custom Figma plugin
Handoff to development team
Time to preview: Hours, not days
Time to production-ready tokens: 1-2 weeks
Developer time saved: They implement once, theme infinitely
My Role: Design Module Ownership
What I own:
Complete design module for Digital Retail IBE multi-brand system
Token architecture and configuration
Figma implementation for all airline themes
Design guidelines for frontend implementation
All new features and workflow designs
What "ownership" means:
Built the initial system independently in 2021
Still the sole UI/UX responsible for the product 4 years later
Every new feature, workflow, or design decision comes through me
Maintain the system in parallel with KIT-Pillar and Data Management work
Cross-Team Coordination: Cyprus Example
Cyprus Airways involved three separate teams:
My work (PROS UX):
Receive brand guidelines from client
Configure primitive tokens in Figma (colors, typography, spacing)
Validate semantic token mappings
Generate high-fidelity preview
Export token JSON via custom Figma plugin
Provide design guidelines to implementation teams
NICE Dev Team:
Web platform implementation
Digital Retail IBE integration
Token consumption in React
Following my design system documentation
2e Systems:
Mobile app design and development (iOS/Android)
Consuming same brand tokens for consistency
Design collaboration for mobile-specific patterns
Challenge: Keep three separate teams aligned on brand execution across web and mobile.
Solution: My design module as single source of truth. All teams consume the same token exports and follow the same design guidelines I created.
Result: Consistent brand experience across all touchpoints with minimal coordination overhead.
Impact & Results
Quantitative Impact
Enterprise Success:
2 airlines live in production (SATA 2023, Cyprus 2025)
4 years of sustained system ownership
Zero rewrites - original 2021 architecture still powering new implementations
Speed:
Cyprus Airways: 6 months contract-to-launch
Industry standard for custom builds: 12-18 months
50% time reduction through token-based theming
Quality:
95%+ design-to-code fidelity maintained across all brands
Automated visual regression testing catches drift
Single design module serves all airline implementations
Zero custom CSS per brand
Qualitative Impact
Business:
Cyprus: Immediate commercial uplift, operational efficiency
SATA: Successful migration from legacy platform
Reduced implementation costs enable faster sales cycles
Proven ROI: Cyprus closed 3 years after I built the original system
Technical Sustainability:
Built once in 2021, still serving new clients in 2025
No major refactors required
Scales to new brands without code changes
Mobile app support added (2e Systems integration)
Key Learnings
Taking initiative pays compound interest:
In 2021, nobody asked me to build a multi-brand system. I saw the opportunity with SATA's migration and built it anyway. 4 years later, that decision is still enabling new client deals.
Ownership means longevity:
Being the sole owner of the design module for 4 years taught me how systems evolve. Every new feature request, every edge case, every client customization - I've seen how the architecture holds up under real-world pressure.
Enterprise sales cycles are slow, and that's okay:
2 live clients in 4 years sounds slow until you understand the complexity. B2C airline booking systems require legal compliance, payment integration, multi-language support, and stakeholder alignment across multiple departments. Quality over quantity.
Build for scale, implement incrementally:
The system was architected to handle unlimited brands. We've shipped 2 so far, but the architecture doesn't need to change for the next one. Building with margin for growth was the right call.
Configuration beats customization:
The best decision in 2021 was making brands pure configuration. No airline has ever required code changes to their theme. All customization happens at the token level.
Solo work has limits:
Building the design module alone gave me complete control, but scaling required collaboration. NICE Dev, 2e Systems, and frontend teams all needed clear guidelines and documentation. Ownership doesn't mean doing everything yourself.

