Compound variants are a way to override styles based on specific variant combinations.
In this lesson, we specify the styles the input recipe should have. For this example, the px is
set to 0, the borderRadius is also 0.
const inputRecipe = cva({
base: {
_placeholder: {
color: '#8B95A1',
},
borderColor: '#E2E8F0',
},
variants: {
kind: {
outline: {
borderWidth: '1px',
},
flushed: {
borderBottomWidth: '1px',
},
},
size: {
small: {
borderRadius: '2px',
fontSize: '12px',
px: '8px',
h: '24px',
},
medium: {
borderRadius: '2px',
fontSize: '14px',
px: '12px',
h: '32px',
},
large: {
borderRadius: '4px',
fontSize: '16px',
px: '16px',
h: '40px',
},
},
},
compoundVariants: [{ kind: 'flushed', css: { px: '0', borderRadius: '0' } }],
})