Themes / Editor

Click a shape. Change its color.

Pick a diagram and click any box, line or label: the panel jumps to the color token it uses. Every change repaints the drawing, and the file you export is the theme the engine reads.

100%
Click a shape to select it.
Nothing selected yet. Tokens used by this diagram show a count in the panel; click the count to outline every element that uses it.

Measured text contrast

Actual ratios from the edited palette. Normal text needs at least 4.5:1.

AaInk / paper#111827 / #FFFFFF17.74:1
AaSupport / paper#374151 / #FFFFFF10.31:1
AaMuted / paper#6B7280 / #FFFFFF4.83:1
AaAccent / paper#14B8A6 / #FFFFFF2.49:1
AaInk / zone#111827 / #F3F4F616.12:1
AaRisk / risk background#B42318 / #FEF3F26.05:1

Take it back to the skill

Save the file in your project and pass it to every command, or ask the agent to use it. The engine reads exactly this file.

Build with this themebash
python3 <skill>/scripts/build.py diagrams/_src/<diagram>.html --theme diagrams/_src/ai-diagrams.json
ai-diagrams.jsonjson
{
  "schema_version": 2,
  "name": "ai-diagrams",
  "company": "",
  "logo": null,
  "colors": {
    "ink": "#111827",
    "support": "#374151",
    "muted": "#6B7280",
    "zone": "#F3F4F6",
    "paper": "#FFFFFF",
    "accent": "#14B8A6",
    "risk": "#B42318",
    "risk_bg": "#FEF3F2"
  },
  "derived": {
    "accent_strong": "#0F766E",
    "muted_light": "#D1D5DB",
    "c4_person_type": "#9CA3AF",
    "c4_person_desc": "#E5E7EB",
    "c4_external": "#E9EBEF",
    "c4_boundary": "#F9FAFB"
  },
  "er_palette": {
    "er_border": "#CBD5E1",
    "er_legend": "#F9FAFB",
    "er_row_even": "#F8FAFC",
    "er_key": "#A16207",
    "er_domain": "#15803D",
    "er_external": "#1D4ED8",
    "er_copy": "#7E22CE",
    "er_strong": "#FCA5A5",
    "er_dependent": "#99F6E4",
    "er_associative": "#C7D2FE",
    "er_control": "#DDD6FE",
    "er_fact": "#FED7AA",
    "er_versioned": "#FEF08A",
    "er_projection": "#BBF7D0",
    "er_trail": "#E5E7EB",
    "er_domain_bg": "#D9F99D",
    "er_config": "#BAE6FD",
    "er_reference": "#FDE68A",
    "er_view": "#FBCFE8",
    "er_heat": "#FF8CB4"
  },
  "fonts": {
    "text": "IBM Plex Sans",
    "mono": "IBM Plex Mono"
  },
  "frame": {
    "header": "{subject} · {client}",
    "footer": "{type} · {date}",
    "footer_right": "",
    "classification": "",
    "show_client": true
  }
}