algorithmic-color-pale…
Derive a full UI colour palette algorithmically from one or two brand colours. Darker and lighter variants for interactive states, desaturated greys from the…
Choose light, dark, or combined color mode deliberately based on brand tone and user context. Offer a theme selector only when user control genuinely matters — enterprise tools, data-heavy UIs, or extended-use applications. Use when defining the base color palette, designing a
$ npx -y skills add dembrandt/dembrandt-skills --skill color-mode-and-theme --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/color-mode-and-themeContext preview
The summary Claude sees to decide when to auto-load this skill.
Choose light, dark, or combined color mode deliberately based on brand tone and user context. Offer a theme selector only when user control genuinely matters — enterprise tools, data-heavy UIs, or extended-use applications. Use when defining the base color palette, designing a
name: color-mode-and-theme
description: Choose light, dark, or combined color mode deliberately based on brand tone and user context. Offer a theme selector only when user control genuinely matters — enterprise tools, data-heavy UIs, or extended-use applications. Use when defining the base color palette, designing a design system, or deciding whether to build dark mode support.
metadata:
priority: 7
pathPatterns:
- "**/*.css"
- "**/*.scss"
- "**/tokens/**"
- "**/theme/**"
- "tailwind.config.*"
- "design-system/**"
promptSignals:
phrases:
- "dark mode"
- "light mode"
- "theme"
- "color mode"
- "dark design"
- "white design"
- "theme selector"
- "brand tone"
retrieval:
aliases:
- dark mode
- light mode
- theme selector
- color scheme
- brand tone
- white design
- dark design
intents:
- choose between dark and light mode
- decide if dark mode is needed
- build a theme selector
- match brand tone in color palette
- design for enterprise tools
examples:
- should this app be dark or light
- when should I add a theme toggle
- design a dark mode for this dashboard
- this is a trading platform, what color mode fitsColor mode is a brand and context decision, not a personal preference. Make it deliberately.
**Tone:** Open, trustworthy, content-forward, accessible, professional **Fits:** Marketing sites, e-commerce, editorial, SaaS with mixed audiences, consumer products, B2B tools where the content is the focus
Light mode is the safer default for most products. It performs better in bright environments and has broader accessibility coverage out of the box.
**Tone:** Premium, focused, immersive, technical, high-contrast data **Fits:** Trading platforms, developer tools, creative tools (video/audio editors), data dashboards with dense visualisations, entertainment, gaming
Dark mode reduces eye strain during extended use in low-light environments. It also makes colourful data visualisations (charts, heatmaps) pop more clearly against a dark surface.
**Caution:** Dark mode is harder to get right. Low-contrast text, over-saturated brand colours, and insufficient surface differentiation are common failures. If the team cannot maintain it properly, light mode is better than a broken dark mode.
Respect `prefers-color-scheme` and let the OS set the default. Offer a toggle for users who want to override. This is the modern standard for most products with a returning user base.
@media (prefers-color-scheme: dark) {
:root { /* dark tokens */ }
}
@media (prefers-color-scheme: light) {
:root { /* light tokens */ }
}
[data-theme="dark"] { /* manual override */ }
[data-theme="light"] { /* manual override */ }---
A theme selector is a UI control — it takes space and adds complexity. Only build it when user control genuinely matters.
| Situation | Theme selector? | |---|---| | Marketing site, landing page | No — pick one mode, commit to it | | Consumer SaaS, general audience | Combined (system-default + toggle) | | Developer tool, technical product | Yes — developers expect it | | Trading platform, financial dashboard | Yes — extended use, low-light sessions common | | B2B enterprise tool (ERP, analytics) | Yes — power users, long sessions, personal preference varies | | E-commerce storefront | Usually no — light default, possibly system-default | | Creative tool (design, video, audio) | Yes — dark is often preferred, toggle still expected |
**Rule:** if the user will spend hours per day in the tool, give them control. If it's a transactional or occasional-use product, pick the mode that fits the brand and move on.
Place the theme toggle in the header (top-right, near account) or in user settings — not in primary navigation.
---
The brand's existing visual identity should inform the default mode.
| Brand tone | Default mode | |---|---| | Clean, minimal, trustworthy, open | Light | | Premium, exclusive, bold, immersive | Dark | | Technical, data-heavy, precise | Dark | | Playful, colourful, energetic | Light (dark mode harder to maintain with vivid brand colours) | | Neutral, enterprise, functional | Light, with system-default toggle |
If the brand uses a very dark primary colour (navy, deep green, near-black), a dark mode surfaces it naturally. If the brand is built around a bright, vivid primary, light mode lets it breathe.
---
**A theme switcher is a second palette, not a toggle.** Every semantic colour needs a verified value in each mode — not one value flipped by an algorithm. Contrast that passes on light routinely fails on dark; saturation and elevation read differently. Real cost, and a reason not to build one unless it earns its place (see above).
Dark mode is not just inverting colours. Common mistakes:
/* Dark mode surface scale */ --color-surface: #0A0A0F; /* ba
UX and design-system skills for AI agents. Install once, and your agent knows how to design. --all installs every skill at once. They load only when a prompt needs them, so there is no runtime cost to having them all. Want to pick by hand?
Repo: dembrandt/dembrandt-skills
Derive a full UI colour palette algorithmically from one or two brand colours. Darker and lighter variants for interactive states, desaturated greys from the…
The persistent shell around an application — the top bar, the app launcher, the tenant and environment cue, and in heavy tools a status bar. In an estate of…
Product visuals — hero shots, demos, screenshots, landing-page panels — must reproduce the real product, not a stylised poster of it. Design with real content…
A brand's visual tone — playful or serious, rounded or angular — should be consistent across all UI elements. Shape language in typography, border-radius, and…
Every interactive element needs a complete set of visual states — rest, hover, active/pressed, focus, disabled, and loading. States should be derived…
Rebuild an existing web page 1:1 from measurement instead of by eye — into Figma, Penpot, or code. Captures the rendered page, the raw source and the computed…