Component theme
Files
For component <Name>:
theme/<Name>.base.theme.tstheme/<Name>.carbon.theme.ts
Import *Theme from ../<Name>.vue.
Structure
const theme: ButtonTheme = {
classes: {
wrapper({ props, slots, data }) { return ['...'] },
},
styles({ props, colors, css, data }) { /* CSS variables */ },
}
export default theme
Register
Export in both:
packages/ui/src/themes/base/components.tspackages/ui/src/themes/carbon/components.ts
Key must match the theme name used in useTheme('<Name>', ...).
Sync variants
When changing layout, states, or tokens in one variant, apply the same logical change to the other unless the carbon design intentionally differs.
Reference: packages/ui/src/components/button/theme/Button.base.theme.ts
Source: indielayer/ui — distributed by TomeVault.