Merge Themes
Theme
s in StyleX are mutually exclusive and do not merge. If multiple Theme
s are applied
on the same element, the last theme applied wins.
However, you can explicitly define a Theme
that merges the values of two or more Theme
s.
Example
import * as stylex from '@stylexjs/stylex';
import { vars } from './variables.stylex';
const themeBlueVars = {
backgroundColor: 'blue',
};
const themeBlue = stylex.createTheme(vars, themeBlueVars);
const themeBigVars = {
size: '128px',
};
const themeBig = stylex.createTheme(vars, themeBigVars);
const themeBigBlueVars = {...themeBlueVars, ...themeBigVars};
const themeBigBlue = stylex.createTheme(vars, themeBigBlueVars);
The StyleX compiler is able to resolve local object constants and merge them.
This is useful to be able to define a Theme
that merges the values of two or more
other Theme
s without repetition.