theme-factory
Create new AiderDesk UI themes by defining SCSS color variables, registering theme types, and adding i18n display names. Use when adding a theme, creating a color scheme, customizing appearance, or implementing dark mode and light mode variants.
Best use case
theme-factory is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Create new AiderDesk UI themes by defining SCSS color variables, registering theme types, and adding i18n display names. Use when adding a theme, creating a color scheme, customizing appearance, or implementing dark mode and light mode variants.
Teams using theme-factory should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/theme-factory/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How theme-factory Compares
| Feature / Agent | theme-factory | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Create new AiderDesk UI themes by defining SCSS color variables, registering theme types, and adding i18n display names. Use when adding a theme, creating a color scheme, customizing appearance, or implementing dark mode and light mode variants.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# Theme Factory
Use this skill when you need to add a **new theme** to AiderDesk.
AiderDesk themes are implemented as **SCSS files** that define a `.theme-<name>` class with a full set of **CSS custom properties** (variables). The UI uses Tailwind utilities mapped to these CSS variables.
## Where themes live
- Theme files: `src/renderer/src/themes/theme-<name>.scss`
- Theme aggregator (imports all themes): `src/renderer/src/themes/themes.scss`
- Theme type registry: `packages/common/src/types/common.ts` (`THEMES`)
- Theme selector UI: `src/renderer/src/components/settings/GeneralSettings.tsx`
- Theme application: `src/renderer/src/App.tsx` (applies `theme-<name>` class to `document.body`)
- Theme display names (i18n):
- `packages/common/src/locales/en.json` (`themeOptions.<name>`)
- `packages/common/src/locales/zh.json` (`themeOptions.<name>`)
## Definition format
Each theme is a class:
- Class name: `.theme-<name>`
- Contents: a complete set of `--color-*` variables.
Best workflow: **copy an existing theme** (e.g. `theme-dark.scss`) and adjust values.
## Checklist: add a new theme
### 1) Choose a theme name
Pick a kebab-case name, e.g. `sunset`, `nord`, `paper`.
You will reference it consistently in:
- CSS class: `.theme-<name>`
- filename: `theme-<name>.scss`
- `THEMES` array value: `'<name>'`
- i18n key: `themeOptions.<name>`
### 2) Create the theme SCSS file
Create:
- `src/renderer/src/themes/theme-<name>.scss`
Start by copying a similar theme (dark -> dark-ish, light -> light-ish), then update the hex colors.
Minimum requirement: define **all variables** expected by the app.
Practical way to ensure completeness:
- Compare with `src/renderer/src/themes/theme-dark.scss` (or another full theme)
- Keep variable names identical; only change values.
### 3) Register the theme in the theme aggregator
Edit:
- `src/renderer/src/themes/themes.scss`
Add:
```scss
@use 'theme-<name>.scss';
```
If the file is not imported here, it won’t be included in the built CSS.
### 4) Register the theme in TypeScript types
Edit:
- `packages/common/src/types/common.ts`
Add `'<name>'` to the exported `THEMES` array.
This makes the theme selectable and type-safe.
### 5) Add i18n display names
Edit:
- `packages/common/src/locales/en.json`
- `packages/common/src/locales/zh.json`
Add entries under `themeOptions`:
```json
{
"themeOptions": {
"<name>": "Your Theme Name"
}
}
```
### 6) Verify in the UI
- Open Settings → General → Theme
- Confirm the new theme appears in the dropdown
- Switch to it and confirm the whole UI updates (no restart)
### 7) Quality checks
- Contrast: confirm text is readable on all backgrounds (aim for WCAG AA)
- Verify key surfaces:
- main background panels
- inputs
- buttons
- borders/dividers
- diff viewer colors
- code blocks
- muted/secondary text
- Check both states:
- normal
- hover/active
## Troubleshooting
- Theme not showing up:
- missing `@use` import in `src/renderer/src/themes/themes.scss`
- missing entry in `THEMES` array in `packages/common/src/types/common.ts`
- typo mismatch between `.theme-<name>` and the `<name>` stored in settings
- Some UI areas look “unstyled”:
- you likely missed one or more `--color-*` variables; compare against a known-good theme and fill in the missing ones.Related Skills
extension-creator
Create AiderDesk extensions by setting up extension files, defining metadata, implementing Extension interface methods, and updating documentation. Use when building a new extension, creating extension commands, tools, or event handlers.
writing-tests
Write unit tests, component tests, and integration tests for AiderDesk using Vitest and React Testing Library. Use when creating new tests, adding test coverage, configuring mocks, setting up test files, or debugging failing tests.
skill-creator
Create AiderDesk Agent Skills by writing SKILL.md files, defining frontmatter metadata, structuring references, and organizing skill directories. Use when building a new skill, creating a SKILL.md, planning skill architecture, or writing skill content.
agent-creator
Create and configure AiderDesk agent profiles by defining tool groups, approval rules, subagent settings, and provider/model selection. Use when setting up a new agent, creating a profile, or configuring agent tools and permissions.
wordpress-theme-development
WordPress theme development workflow covering theme architecture, template hierarchy, custom post types, block editor support, responsive design, and WordPress 7.0 features: DataViews, Pattern Editing, Navigation Overlays, and admin refresh.
theme-factory
This skill provides a curated collection of professional font and color themes themes, each with carefully selected color palettes and font pairings. Once a theme is chosen, it can be applied to any artifact.
content-factory
Multi-agent content production system. One piece of source content becomes many formats — social posts, email, scripts, headlines, and more. Five specialized agent personas: Writer, Remixer, Editor, Scriptwriter, and Headline Machine.
sub-agent-factory
Rapidly spawn and configure specialized sub-agents. Includes templates for Research, Coding, and Analysis agents. Automates workspace setup and instruction delivery.
shopify-theme-pro
Shopify Theme Development Pro - Complete theme development, deployment, and design system management for OpenClaw agents. Use when building Shopify themes, writing Liquid templates, pushing theme changes, deploying to stores, or managing design systems. Triggers on Shopify theme, Liquid templating, theme development, theme deployment, push theme, Shopify design system, Online Store 2.0, theme sections.
wechat-comic-factory
Generate WeChat comic articles and publish them to the WeChat Official Account draft box by executing local Python pipeline scripts. Use when the user wants to create a comic series from comic_type, topic, and count, or publish the latest generated task. In this skill, “发布” and “发微信” always mean only pushing to the WeChat Official Account draft box; never reinterpret them as personal chat, group chat, or message-tool sending.
sop-factory
Turn rough workflows into standard operating procedures with roles, inputs, outputs, checkpoints, and exception handling.
case-study-factory
把项目材料转成案例文章,提炼起点、动作、结果和复用价值。;use for case-study, content, storytelling workflows;do not use for 伪造客户背书, 公开敏感数据.