You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

42 lines
1.0 KiB

3 years ago
import { get, createParser } from '@styled-system/core';
import css from '@styled-system/css';
export var variant = function variant(_ref) {
var _config;
var scale = _ref.scale,
_ref$prop = _ref.prop,
prop = _ref$prop === void 0 ? 'variant' : _ref$prop,
_ref$variants = _ref.variants,
variants = _ref$variants === void 0 ? {} : _ref$variants,
key = _ref.key;
var sx;
if (Object.keys(variants).length) {
sx = function sx(value, scale, props) {
return css(get(scale, value, null))(props.theme);
};
} else {
sx = function sx(value, scale) {
return get(scale, value, null);
};
}
sx.scale = scale || key;
sx.defaults = variants;
var config = (_config = {}, _config[prop] = sx, _config);
var parser = createParser(config);
return parser;
};
export default variant;
export var buttonStyle = variant({
key: 'buttons'
});
export var textStyle = variant({
key: 'textStyles',
prop: 'textStyle'
});
export var colorStyle = variant({
key: 'colorStyles',
prop: 'colors'
});