Theming & White-labeling
Implement flexible theming architectures to support multiple brands or visual modes (e.g., dark mode) within your design system.
Theming & White-labeling is a free Design Systems & Component Libraries lesson on CoddyKit — lesson 1 of 4. You can read the complete lesson below for free — then practise it hands-on in the browser with a built-in code editor and a 24/7 AI tutor. It is part of the Design Systems & Component Libraries learning path, one of 4 lessons in the course, and your progress syncs across the web and the CoddyKit app.
Intro to Theming & White-labeling
Welcome! In this lesson, we'll dive into theming and white-labeling, powerful techniques for making your UI components adaptable.
You'll learn how to create flexible designs that can easily switch between different visual styles or even entire brand identities.
Understanding Theming
Theming is about changing the visual appearance of an application or component while keeping its underlying structure and functionality the same.
Think of it like changing clothes: the person is the same, but their outfit looks different!
- Dark Mode: A common example of theming.
- User Preferences: Allowing users to pick their favorite color scheme.
- Accessibility: Providing high-contrast themes.
Understanding White-labeling
White-labeling takes theming a step further. It allows you to rebrand an entire application or set of components for different clients or brands.
Imagine a software product that looks completely different, with unique logos, colors, and fonts, depending on which company is using it.
- Multi-brand Support: A single codebase serving many distinct brands.
- Client Customization: Offering bespoke versions of your product.
Why Use Theming & White-labeling?
Implementing theming and white-labeling offers significant advantages:
- Consistency: Ensures brand guidelines are met across all variations.
- Efficiency: Reuses the same components, reducing development time.
- Scalability: Easily add new themes or brands without rebuilding.
- User Experience: Caters to user preferences and accessibility needs.
Design Tokens for Flexibility
At the heart of flexible theming are Design Tokens. These are abstract names for design decisions, like color-primary or spacing-md.
Instead of hardcoding values (e.g., #007bff), components reference tokens. Changing a token's value changes it everywhere it's used.
This makes swapping themes or brand styles much easier and more consistent.
CSS Variables for Theming
One common and powerful way to implement theming on the web is using CSS Custom Properties, often called CSS Variables.
They let you define reusable values in CSS that can be updated dynamically. This is perfect for theme switching!
You define variables globally or within specific elements, then reference them throughout your stylesheets.
Simple Theme Switch Example
Let's see how CSS variables can create a basic theme switch. We'll change a primary color.
Notice how we define --primary-color and then use it. By changing the body class, we change the variable's value.
<!DOCTYPE html>
<html>
<head>
<style>
:root {
--primary-color: #007bff; /* Default blue */
}
body.dark-theme {
--primary-color: #6200EE; /* Dark theme purple */
background-color: #121212;
color: white;
}
.styled-box {
background-color: var(--primary-color);
color: white;
padding: 20px;
margin: 10px;
border-radius: 8px;
text-align: center;
}
</style>
</head>
<body class="light-theme">
<div class="styled-box">
Hello Themed World!
</div>
<button onclick="document.body.classList.toggle('dark-theme')">
Toggle Theme
</button>
</body>
</html>White-labeling Beyond Colors
White-labeling goes beyond just changing colors. It can involve:
- Logos: Swapping out brand images.
- Fonts: Using different typography for each brand.
- Layouts: Adjusting component arrangements or spacing.
- Component Variations: Showing or hiding specific features.
Each brand might have its own set of design tokens that completely redefine the visual experience.
Applying White-labels Dynamically
How does an application know which white-label to apply?
Common strategies include:
- Configuration Files: Loading a specific theme/brand config at startup.
- URL Parameters: Detecting the brand from the URL (e.g.,
app.com/brand-a). - User Settings: Storing user-specific brand preferences.
- API Responses: Receiving brand information from a backend service.
Check Your Understanding
Theming and white-labeling are powerful concepts. Let's test your grasp of the key differences and applications.
Recap: Flexible UIs
Great job! You've learned about theming and white-labeling.
- Theming allows visual style changes (like dark mode).
- White-labeling enables full rebranding for multiple entities.
- Both rely on abstracting visual properties, often with Design Tokens and implemented with tools like CSS Variables.
These techniques are crucial for building adaptable, scalable, and user-friendly design systems.
Frequently asked questions
Is the “Theming & White-labeling” lesson free?
Yes — the full text of “Theming & White-labeling” is free to read here on the web, and the Design Systems & Component Libraries course includes 4 lessons in total. To practise it interactively (a built-in code editor and a 24/7 AI tutor) and unlock the rest of the Design Systems & Component Libraries course, upgrade to CoddyKit PRO.
What will I learn in “Theming & White-labeling”?
Implement flexible theming architectures to support multiple brands or visual modes (e.g., dark mode) within your design system. You practise Design Systems & Component Libraries with hands-on code you run directly in the browser, and a 24/7 AI tutor answers your questions as you work through the lesson.
Do I need any experience to start Design Systems & Component Libraries?
No prior experience is required. Design Systems & Component Libraries on CoddyKit is structured for beginners through advanced learners; this is — lesson 1 of 4, so you can start here or from the beginning and move at your own pace.
How long does the “Theming & White-labeling” lesson take?
Most CoddyKit lessons take about 5–10 minutes. Each one is bite-sized and interactive, so you make steady progress and pick up exactly where you left off across the web and the app.
Can I write and run code in this Design Systems & Component Libraries lesson?
Yes. Every Design Systems & Component Libraries lesson includes a built-in code editor, so you write and run real code right in your browser and get instant AI feedback — no local setup required.
All lessons in this course
- Theming & White-labeling
- Internationalization (i18n)
- Performance Optimization
- Building Polymorphic Components