Summary
Rename DXPR Theme palette color keys so their names directly communicate which Bootstrap CSS variables and classes they control. This eliminates the mapping layer that AI agents (and humans) currently need to memorize.
Proposed Renaming
| Current Key |
Proposed Key |
Bootstrap Variable |
Why |
base |
primary |
--bs-primary |
Direct Bootstrap match |
basetext |
primary_text |
--bs-primary-text |
Pairs with primary |
accent1 |
secondary |
--bs-secondary |
Direct Bootstrap match |
accent1text |
secondary_text |
--bs-secondary-text |
Pairs with secondary |
accent2 |
tertiary |
(custom) |
Extends Bootstrap naming pattern |
accent2text |
tertiary_text |
(custom) |
Pairs with tertiary |
silver |
light |
--bs-light |
Direct Bootstrap match |
headings |
dark |
--bs-dark |
Direct Bootstrap match |
text |
body_color |
--bs-body-color |
Direct Bootstrap match |
body |
body_bg |
--bs-body-bg |
Direct Bootstrap match |
link |
link_color |
--bs-link-color |
Direct Bootstrap match |
graylight |
muted |
--bs-secondary-color |
Bootstrap muted concept |
graylighter |
border_color |
--bs-border-color |
Direct Bootstrap match |
card |
card_bg |
(region) |
Clarifies it's a background |
cardtext |
card_text |
(region) |
Consistent naming |
footer |
footer_bg |
(region) |
Clarifies it's a background |
footertext |
footer_text |
(region) |
Consistent naming |
header |
header_bg |
(region) |
Clarifies it's a background |
headertext |
header_text |
(region) |
Consistent naming |
headerside |
sidebar_bg |
(region) |
Clarifies it's a background |
headersidetext |
sidebar_text |
(region) |
Consistent naming |
secheader |
topbar_bg |
(region) |
Clarifies it's a background |
secheadertext |
topbar_text |
(region) |
Consistent naming |
pagetitle |
hero_bg |
(region) |
Clarifies it's a background |
pagetitletext |
hero_text |
(region) |
Consistent naming |
Motivation
- AI agents currently cannot infer that
base maps to btn-primary or that accent1 maps to btn-secondary without explicit documentation
- The current names evolved organically and don't communicate their Bootstrap relationship
- Bootstrap-aligned names make the palette self-documenting for both AI and human users
- Region colors gain
_bg/_text suffixes making their role unambiguous
Migration
- Requires backwards-compatible migration path (support old keys + new keys during transition)
- Update color scheme presets
- Update all references in CSS builder, config schema, form, and SKILL.md
- Update dxt:palette:set and dxt:config:set to accept both old and new key names during transition
Related
- SKILL.md now documents the palette→Bootstrap mapping table as a stopgap
dxt:palette:get command being added to surface this mapping at runtime
Summary
Rename DXPR Theme palette color keys so their names directly communicate which Bootstrap CSS variables and classes they control. This eliminates the mapping layer that AI agents (and humans) currently need to memorize.
Proposed Renaming
baseprimary--bs-primarybasetextprimary_text--bs-primary-textaccent1secondary--bs-secondaryaccent1textsecondary_text--bs-secondary-textaccent2tertiaryaccent2texttertiary_textsilverlight--bs-lightheadingsdark--bs-darktextbody_color--bs-body-colorbodybody_bg--bs-body-bglinklink_color--bs-link-colorgraylightmuted--bs-secondary-colorgraylighterborder_color--bs-border-colorcardcard_bgcardtextcard_textfooterfooter_bgfootertextfooter_textheaderheader_bgheadertextheader_textheadersidesidebar_bgheadersidetextsidebar_textsecheadertopbar_bgsecheadertexttopbar_textpagetitlehero_bgpagetitletexthero_textMotivation
basemaps tobtn-primaryor thataccent1maps tobtn-secondarywithout explicit documentation_bg/_textsuffixes making their role unambiguousMigration
Related
dxt:palette:getcommand being added to surface this mapping at runtime