tessl install github:hotovo/aider-desk --skill theme-factoryStep-by-step guide to add a new UI theme to AiderDesk (SCSS + CSS variables + types + i18n).
Review Score
98%
Validation Score
12/16
Implementation Score
100%
Activation Score
N/A
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.
src/renderer/src/themes/theme-<name>.scsssrc/renderer/src/themes/themes.scsssrc/common/types.ts (THEMES)src/renderer/src/components/settings/GeneralSettings.tsxsrc/renderer/src/App.tsx (applies theme-<name> class to document.body)src/common/locales/en.json (themeOptions.<name>)src/common/locales/zh.json (themeOptions.<name>)Each theme is a class:
.theme-<name>--color-* variables.Best workflow: copy an existing theme (e.g. theme-dark.scss) and adjust values.
Pick a kebab-case name, e.g. sunset, nord, paper.
You will reference it consistently in:
.theme-<name>theme-<name>.scssTHEMES array value: '<name>'themeOptions.<name>Create:
src/renderer/src/themes/theme-<name>.scssStart 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:
src/renderer/src/themes/theme-dark.scss (or another full theme)Edit:
src/renderer/src/themes/themes.scssAdd:
@use 'theme-<name>.scss';If the file is not imported here, it won’t be included in the built CSS.
Edit:
src/common/types.tsAdd '<name>' to the exported THEMES array.
This makes the theme selectable and type-safe.
Edit:
src/common/locales/en.jsonsrc/common/locales/zh.jsonAdd entries under themeOptions:
{
"themeOptions": {
"<name>": "Your Theme Name"
}
}Theme not showing up:
@use import in src/renderer/src/themes/themes.scssTHEMES array in src/common/types.ts.theme-<name> and the <name> stored in settingsSome UI areas look “unstyled”:
--color-* variables; compare against a known-good theme and fill in the missing ones.