Ocado


Ocado - Theming With Figma Variables
My role: End-to-end Product Designer, User Research
Company: Ocado
Product: Ocado Web, Ocado Mobile
Platform: Web, Android, iOS
Year: Re-Do 2024


BACKGROUND
Ocado, a global leader in online grocery delivery, provides its app as a customizable template for partner grocery retailers worldwide. Each retailer uses the app while adapting it to their unique brand identity, including colors, typography, and styles. Previously, this theming process required manual creation of multiple component variants, leading to an unwieldy number of assets and a labor-intensive workflow. This setup was inefficient and prone to inconsistencies, particularly as the number of retailers grew.
I was tasked with renovating Ocado’s theming system to streamline customization, reduce asset bloat, and modernize the process.
PROBLEM STATEMENT
​
The existing theming system relied on manually duplicating components to accommodate each retailer’s branding. This approach caused:
-
Asset Overload: The design library was bloated with variants for every theme.
-
Inconsistency Risks: Manual updates often led to errors or discrepancies across themes.
-
Time-Intensive Process: Designers spent excessive time managing and updating components for multiple themes.
-
Scaling Challenges: As the number of grocery retailers using the app increased, maintaining the library became unsustainable.
How might we create a scalable, efficient theming system that allows each retailer to easily customize their app while maintaining consistency and reducing design overhead?
NORTH STAR METRIC
​
Reduce the time and effort required to implement and maintain app theming for multiple retailers.
SUPPORTING METRICS
​
Leading Metrics:
-
Component Count Reduction: Decrease the number of component variants by 80%.
-
Designer Workflow Efficiency: Reduce the time spent updating themes by 70%.
​
Lagging Metrics:
-
Scalability: Support 100% of new retailer theming requests without adding new components.
-
Error Rate: Decrease inconsistencies across themes by 90%.
-
Designer Satisfaction: Improve designer satisfaction with the system, measured through internal surveys.
PRODUCT REQUIREMENTS
​
-
Cross-Platform Standards: Create components that seamlessly adapt across web, mobile, and TV interfaces.
-
Prototyping Efficiency: Ensure the style library enables drag-and-drop functionality in prototyping tools like Figma or Sketch.
-
Version Control: Implement a tracking system for component updates to prevent misalignment between platforms.
SOLUTION
To solve these challenges, I implemented a modernized theming system using Figma Variables and design tokens, enabling seamless customization while significantly reducing the number of components.
Centralized Components:
Reduced the number of components to just one set by using Figma Variables.
Assigned all theming properties (e.g., colors, typography, shadows) to variables.
Design Tokens for Theming:
Created local variables in Figma to serve as design tokens, representing each theme’s unique color palette and branding.
Tokens were assigned values based on the retailer's branding (e.g., Primary Button Color = Retailer A’s Blue or Retailer B’s Red).
Scalable Architecture:
The system allows new themes to be added by simply updating the token values, without duplicating components.
Dynamic Preview:
Designers can switch between themes in real time, previewing how the app looks for each retailer using Figma’s variable modes.


















MOBILE APP THEME CHANGE
PROCESS
-
AUDIT AND ANALISIS:
-
Conducted a full audit of the existing design library to identify inefficiencies. The analysis revealed hundreds of duplicated components created for different themes, contributing to design bloat and difficulty in maintenance.
-
-
FIGMA VARIABLE IMPLEMENTATION:
-
Centralized all components into one master set.
-
Assigned properties like colors, spacing, sizing, and typography to Figma Variables, ensuring a consistent and scalable approach across all themes.
-
​
-
CREATION OF ATOM VARIABLES:
-
Designed atom variables as the foundational building blocks of the theming system. These variables represented core design values such as:
-
Base Colors: The raw hex values used across different themes.
-
Base Spacing and Sizing Units: Standardized dimensions that could be reused consistently.
-
Typography Attributes: Default font families, sizes, and weights.
-
These atom variables served as universal constants, providing a robust framework for consistency across all themes.
​
-
TOKEN CREATION USING ATOM VARIABLES:
-
Built a layered token system by assigning atom variables as values for design tokens:
-
Colors: Tokens like Primary Button Color and Background Color inherited values from base color atom variables.
-
Spacing and Sizing: Tokens such as Card Padding and Button Height were linked to base spacing and sizing atom variables.
-
Typography: Tokens like Heading Font and Body Text Size derived their values from typography atom variables.
-
-
This structure allowed tokens to dynamically update when atom variables changed, ensuring consistency across themes.
​
-
TESTING AND VALIDATION:
-
Tested the system with multiple retailer themes to ensure smooth transitions between modes.
-
Conducted internal workshops to train designers on using the new system effectively.
-





OUTCOMES
-
Massive Reduction in Asset Complexity:
-
The number of component variants decreased by 80%, consolidating multiple redundant assets into a single, versatile component system powered by variables and tokens.
-
-
Streamlined Workflow:
-
Time spent creating and maintaining themes for new grocery retailers dropped by 70%, allowing designers to focus on higher-value tasks rather than repetitive work.
-
-
Scalable Theming Framework:
-
The system now supports an unlimited number of retailer themes by simply updating token values without requiring additional components or duplication.
-
Retailers can now easily customize their apps to their branding, ensuring consistent alignment with their identities across all touchpoints.
-
-
Improved Accuracy and Consistency:
-
By automating the application of design properties through atom variables and tokens, errors and inconsistencies across themes were reduced by 90%.
-
-
Designer Empowerment and Satisfaction:
-
Internal surveys showed a 30% increase in designer satisfaction, as the new system provided a more efficient, flexible, and intuitive workflow.
-
Designers appreciated the real-time preview feature in Figma, which allowed them to test and validate themes dynamically.
-
-
Cross-Team Alignment:
-
Developers benefitted from a clear, tokenized system that could be easily exported into development workflows, reducing the back-and-forth during implementation.
-
REFLECTION
​
WHAT WORKED WELL:
-
Implementation of Figma Variables and Atom Variables: Centralizing design properties allowed for unparalleled flexibility and scalability. This foundation not only streamlined theming but also future-proofed the design system.
-
Collaborative Process: Working closely with designers, developers, and product stakeholders ensured the new system aligned with both design and technical needs.
-
Dynamic Preview: The ability to toggle between themes in real time was a game-changer for both efficiency and quality control.
​
CHALLENGES FACED:
-
Legacy Component Migration: Transitioning hundreds of components into a variable-driven system required meticulous planning and a significant time investment.
-
Learning Curve: The team initially faced a steep learning curve in adopting the new system, but internal training and documentation helped smooth the transition.
​
FUTURE OPORTUNITIES:
-
Dynamic Typography Tokens: Expanding the system to allow for finer control of font properties such as kerning and line-height across themes.
-
Developer Integration: Building an automated pipeline to export design tokens directly into code (e.g., JSON, CSS) to further streamline the handoff process.
-
Performance Testing: Ensuring that theming updates are optimized for performance across all platforms, particularly mobile devices.
​
KEY TAKEAWAY
​
This project demonstrated the power of a modular and tokenized design system, not just for enhancing scalability but also for empowering teams and improving the end-user experience. It highlighted the importance of aligning design innovations with business needs while ensuring consistency and efficiency at every step.