From ui-theme-designer
TRIGGER: questions about the SAP Design System and SAP Fiori design tokens — which themes exist, what value a theme parameter (e.g. sapButton_Background, sapHighlightColor) has in a given theme, how parameters inherit/extend across the theme chain, which parameters a specific UI component (UI5 control, UI5 Web Component, Fundamental Styles component) consumes. SKIP: how-to questions about UI theme designer as a product (creating, publishing, transporting themes — use ui-theme-designer-help).
How this skill is triggered — by the user, by Claude, or both
Slash command
/ui-theme-designer:ui-theme-designer-design-tokensThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
_With `$THIS` being the folder that contains this SKILL.md:_
With $THIS being the folder that contains this SKILL.md:
$THIS/node_modules/ exists and is not older than 7 days; if not: cd $THIS && npm ci
Design Tokens are defined in LESS files of the theming-base-content, and consumed in LESS and CSS files of different frameworks (= UI technologies). In $THIS/node_modules/ you find the following:
$LIBRARY being e.g. sap.ui.core, and $THEME being e.g. sap_horizon)
$THIS/node_modules/@openui5/$LIBRARY/src/${LIBRARY/./\//}/**/themes/base contains the baseTheme of the different libraries$THIS/node_modules/@openui5/themelib_$THEME/src/${LIBRARY/./\//}/themes/ contains the $THEME of the different libraries$THEME being e.g. sap_horizon, and $COMPONENT being e.g. Button)
$THIS/node_modules/@ui5/*/src/themes/$COMPONENT.css contains theme-independent component skeleton CSS, using parameters from theming-base-content as CSS custom properties, as well as CSS custom properties defined in base/ (see below)$THIS/node_modules/@ui5/*/src/themes/base/$COMPONENT-parameters.css contains CSS custom property definitions for components; never report those UI5 Web Components-specific internal CSS custom properties.$THIS/node_modules/@ui5/*/src/themes/$THEME/$COMPONENT-parameters.css contains theme-dependent values for the custom property definitions from base/ (see above)$THIS/node_modules/fundamental-styles/dist/*.css contains theme-independent component skeleton CSS, using parameters from theming-base-content as CSS custom properties, as well as CSS custom properties defined in theming/ (see below)$THIS/node_modules/fundamental-styles/dist/theming/$THEME.css contains theme-dependent values for the custom property definitions used in dist/*.css (see above); never report those Fundamental Styles-specific internal CSS custom properties$THIS/node_modules/@fundamental-styles/common-css/dist/*.css theme-independent helper CSS, using parameters from theming-base-content as CSS custom properties$LIBRARY being e.g. baseLib, and $THEME being e.g. sap_horizon)
$THIS/node_modules/@sap-theming/theming-base-content/content is a theme repository as described in https://raw.githubusercontent.com/SAP-docs/btp-ui-theme-designer/main/docs/cf/About-Themes/overview-of-sap-theming-content-91ebfe2.md, containing Base/; used by all frameworks$THIS/node_modules/@sap-theming/theming-base-content/content/Base/.theming contains metadata about the Base framework$THIS/node_modules/@sap-theming/theming-base-content/content/Base/$LIBRARY/.theming contains metadata about libraries$THIS/node_modules/@sap-theming/theming-base-content/content/Base/$LIBRARY/$THEME/.theming contains metadata about themessEntity: "Framework", "Library" or "Theme"sType (for themes): "STANDARD" (= single theme) or "SET" (= no CSS, just references to different themes of sType=STANDARD)aFiles: LESS source filesaBuildFiles: CSS files built from aFiles*sBase{Library,Theme,File}Id: ID of the most important library/theme/fileoExtends: the $FRAMEWORK[.$LIBRARY[.$THEME[.$FILE]]] "object path" of the parent entitysSourcePathPattern: pattern to resolve object paths to file pathsbIgnore=true: entity is ignored from theming$THIS/node_modules/@sap-theming/theming-base-content/content/Base/baseLib as select options if unclear, default to sap_horizonsap$COMPONENT_*: report any such parameters not already referenced in UI5 Web Components as supplementary, labelled "defined in theming-base-content, not yet referenced in UI5 Web Components CSS".theming file of the framework the users question targets, determine sBaseLibraryId and sSourcePathPattern.theming file of the theme of the sBaseLibrary of the framework the users question targets, based on sSourcePathPattern of the frameworks .theming fileoExtends:
.theming file of the theme referenced by oExtends; if you haven't encountered the framework (the first section of the Object Path) before, read the framework .theming first to determine its sSourcePathPattern.theming JSON with what you already have from the theme .theming files: if a key already exists, leave it untouched; add key+value if the key does not yet exist${sBaseFileId}.less file (sBaseFileId comes from the merged .theming files) of the theme of the sBaseLibrary of the framework the users question targets@import statement, recursively:
@import statement with the read content// [<Annotation> <required: Value> <optional: More Values>] that precede parameter definitions to that parameter:
!, e.g. "Protected" and "!Protected"), remove both values from the values listwebcomponents/packages/*/src/themes/<component>.css, merged withwebcomponents/packages/*/src/themes/base/<component>-parameters.css, then withwebcomponents/packages/*/src/themes/<theme>/<component>-parameters.cssfundamental-styles/packages/*/src/**/*.scss for the relevant component; theme-specific values come from the CSS custom properties in theming-base-content/content/Base/baseLib/<theme>/css_variables.cssnpx claudepluginhub marcelhacks/anthropic-sg-safe-path-control-20260724 --plugin ui-theme-designerGuides completion of development work by verifying tests, detecting environment, and presenting structured options for merge, PR, or cleanup.
Enforces test-driven development: write failing test first, then minimal code to pass. Use when implementing features or bugfixes.
Guides creation and editing of skills using test-driven development with pressure scenarios and subagents to verify agent compliance.