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.zip

Installs 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.
180 chars✓ has a “when” trigger
Advanced

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

You give it
Theme color keys, `AppTheme` definitions, `theme.json5` files, theme-related specifications
You get back
Updated schema, parser, defaults, documentation, and theme files

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:

  1. Specs/SettingsStore.schema.json - Validation + IntelliSense
  2. Specs/Core/Core_SettingsStore.md - Durable format and resolution contract
  3. Common/ThemeExpression.h / Common/Common/ThemeExpression.cpp - Shared source parser, resolver, and compiled dynamic evaluator
  4. Common/ThemeDefinitionIo.h / Common/Common/ThemeDefinitionIo.cpp - Shared JSON5 reader/writer
  5. RedSalamander/AppTheme.h / AppTheme.cpp - Defaults
  6. Runtime override mappings in RedSalamander, RedSalamanderMonitor, and hot reload
  7. Specs/Themes/*.theme.json5 - Shipped themes
  8. Component specs and tests referencing the token
  9. Public documentation in docs/Themes.md, docs/Preferences.md, docs/UserGuide.md, and docs/DeveloperGuide.md
  10. Regenerated docs/res/theme-controls-*.png galleries 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 colors and descriptive reusable names in palette
  • 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.md for 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 under Specs/TestRuns/, and report p50/p95/max for theme.resolve_us and theme.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.

SkillInstallsUpdatedSafetyDifficulty
theming (this skill)03moNo flagsAdvanced
theme-factory613moNo flagsBeginner
brand-guidelines93moNo flagsBeginner
canvas-design263moNo flagsAdvanced

Try saying

Example prompts that trigger this skill in your AI assistant.

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.

61161

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.

9140

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.

26112

game-art

davila7

Game art principles. Visual style selection, asset pipeline, animation workflow.

2383

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.

3645

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.

569

Search skills

Search the agent skills registry