Centralized management for RedSalamander theme expressions, color tokens, and JSON5 configuration files.
Install
mkdir -p .claude/skills/theming && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/13401" && unzip -o skill.zip -d .claude/skills/theming && rm skill.zipInstalls to .claude/skills/theming
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Theme system and color key management for RedSalamander. Use when adding theme colors, modifying AppTheme, working with theme.json5 files, or updating theme-related specifications.Key capabilities
- →Update `Specs/SettingsStore.schema.json` for validation
- →Modify `Common/ThemeExpression.h` for shared source parser
- →Update `RedSalamander/AppTheme.h` for defaults
- →Regenerate `docs/res/theme-controls-*.png` galleries
- →Preserve authored intent in editing operations
How it works
The skill guides modifications to the RedSalamander theme system by specifying all locations that require updates when theme color keys are changed, ensuring consistency across the system.
Inputs & outputs
When to use theming
- →Add new theme color keys
- →Modify AppTheme definitions
- →Update theme.json5 files
- →Regenerate theme documentation
About this skill
Theming System
When Modifying Theme Color Keys
Update ALL of these locations:
Specs/SettingsStore.schema.json- Validation + IntelliSenseSpecs/Core/Core_SettingsStore.md- Durable format and resolution contractCommon/ThemeExpression.h/Common/Common/ThemeExpression.cpp- Shared source parser, resolver, and compiled dynamic evaluatorCommon/ThemeDefinitionIo.h/Common/Common/ThemeDefinitionIo.cpp- Shared JSON5 reader/writerRedSalamander/AppTheme.h/AppTheme.cpp- Defaults- Runtime override mappings in RedSalamander, RedSalamanderMonitor, and hot reload
Specs/Themes/*.theme.json5- Shipped themes- Component specs and tests referencing the token
- Public documentation in
docs/Themes.md,docs/Preferences.md,docs/UserGuide.md, anddocs/DeveloperGuide.md - Regenerated
docs/res/theme-controls-*.pnggalleries and the theme distribution/gallery contract
Theme File Format (JSON5)
Location: Specs/Themes/ or Themes/ next to exe
{
"formatVersion": 2,
"id": "user/example",
"name": "Example",
"baseThemeId": "builtin/dark",
"palette": {
"background": "#1E1E1E",
"foreground": "#D4D4D4",
"accent": "#007ACC",
"selection": "blend(palette.background,palette.accent,25%)"
},
"colors": {
"app.accent": "ref(palette.accent)",
"window.background": "ref(palette.background)",
"folderView.itemBackgroundSelected": "ref(palette.selection)"
}
}
formatVersion: 2 is mandatory. Do not add a legacy reader, accept a missing version, or flatten expressions on export. Palette names cannot contain .. Expressions are non-nested and use named palette or semantic references.
Use only the functions documented in Specs/Core/Core_SettingsStore.md. Parse and resolve with the shared Common APIs; do not add a consumer-local parser. Paint-time sources must be compiled at theme resolution and evaluated with EvaluateDynamicThemeColor; paint code must not parse, allocate, lock, or perform I/O.
Runtime Integration
Common::Settings::ResolvedThemeColors resolved;
auto context = Common::Settings::MakeSystemThemeResolutionContext(effectiveDark);
RETURN_IF_FAILED(Common::Settings::ResolveThemeDefinition(theme, context, resolved));
ApplyThemeOverrides(appTheme, resolved.colors);
Provide a base-color lookup when expressions may reference inherited semantic tokens. Keep builtin/rainbow as the application-wide Rainbow base; a static semantic override suppresses Rainbow only for that token. High Contrast always wins.
Best Practices
- Use semantic token names in
colorsand descriptive reusable names inpalette - Always provide fallback colors
- Test in both light and dark modes
- Validate contrast ratios for accessibility
- Add deterministic tests for missing references, cycles, event refresh, and seeded dynamic output
- Add exact upstream license text and update
Specs/Themes/THIRD-PARTY-NOTICES.mdfor third-party palettes - Regenerate the complete DxUi control gallery after adding, removing, renaming, or materially changing a shipped theme; keep separate deterministic Rainbow Light and Rainbow Dark galleries and remove stale gallery files
- Preserve authored intent in editing operations: palette rename rewrites references atomically, delete reports/block dependents, repeated literals can become one palette reference, and batch transforms create palette/function recipes instead of flattened hex values
- For resolver, preview, or paint-time changes, run
theme_v2_runtime_resolution_and_dynamic_perf, archive the run underSpecs/TestRuns/, and report p50/p95/max fortheme.resolve_usandtheme.dynamic.evaluate_us
When not to use it
- →When adding a legacy reader for theme files
- →When accepting a missing format version in theme files
- →When flattening expressions on export
Limitations
- →`formatVersion: 2` is mandatory for theme files.
- →Palette names cannot contain `.`.
- →Expressions are non-nested and use named palette or semantic references.
How it compares
This skill provides a complete, multi-location update process for theme changes, ensuring all related files and documentation are synchronized, unlike isolated modifications.
Compared to similar skills
theming side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| theming (this skill) | 0 | 3mo | No flags | Advanced |
| theme-factory | 61 | 3mo | No flags | Beginner |
| brand-guidelines | 9 | 3mo | No flags | Beginner |
| canvas-design | 26 | 3mo | No flags | Advanced |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by RedSalamanders
View all by RedSalamanders →You might also like
theme-factory
anthropics
Toolkit for styling artifacts with a theme. These artifacts can be slides, docs, reportings, HTML landing pages, etc. There are 10 pre-set themes with colors/fonts that you can apply to any artifact that has been creating, or can generate a new theme on-the-fly.
brand-guidelines
anthropics
Applies Anthropic's official brand colors and typography to any sort of artifact that may benefit from having Anthropic's look-and-feel. Use it when brand colors or style guidelines, visual formatting, or company design standards apply.
canvas-design
anthropics
Create beautiful visual art in .png and .pdf documents using design philosophy. You should use this skill when the user asks to create a poster, piece of art, design, or other static piece. Create original visual designs, never copying existing artists' work to avoid copyright violations.
game-art
davila7
Game art principles. Visual style selection, asset pipeline, animation workflow.
interactive-portfolio
davila7
Expert in building portfolios that actually land jobs and clients - not just showing work, but creating memorable experiences. Covers developer portfolios, designer portfolios, creative portfolios, and portfolios that convert visitors into opportunities. Use when: portfolio, personal website, showcase work, developer portfolio, designer portfolio.
windows-3-1-web-designer
erichowens
Expert in authentic Windows 3.1 aesthetic for modern web applications. Creates pixel-perfect retro UI with beveled borders, system gray palettes, and program manager styling. Use for retro-themed web apps, 90s desktop aesthetics, nostalgic landing pages, pixel-art adjacent experiences. Activate on "windows 3.1", "retro ui", "beveled borders", "win31", "program manager", "90s aesthetic", "pixel art", "hotdog stand". NOT for vaporwave aesthetics (neon gradients, glowing text), glassmorphism, macOS/iOS styling, flat design, material design.