$ cnpm install jss-extend
This plugin implements a custom property extend which allows you to mix in styles in various ways.
Style object own properties always take precedence over extended objects, so you can always override the extended definition. Exception is function values.
const buttonColor = {
color: 'green'
}
const buttonTheme = {
extend: buttonColor
background: 'red'
}
const styles = {
button: {
extend: buttonTheme,
fontSize: '20px'
}
}
const styles = {
buttonColor: {
background: 'red'
},
button: {
extend: 'buttonColor',
fontSize: '20px'
}
}
const styles = {
button: {
extend: [{background: 'red'}, {color: 'green'}],
fontSize: '20px'
}
}
const background = {background: 'red'}
const color = {color: 'green'}
const styles = {
button: {
extend: [background, color],
fontSize: '20px'
}
}
Nested extend inside of the function is not supported. Will override other properties defined in the same rule.
const styles = {
button: {
extend: (data) => ({
color: data.theme.color
}),
fontSize: '20px'
}
}
File a bug against cssinjs/jss prefixed with [jss-extend].
npm i
npm run test
MIT
Copyright 2013 - present © cnpmjs.org | Home |