Open jemluz opened 3 months ago
data state
para estilos personalizadosNo checkbox do radix ui temos um atributo no html chamado data-state (que pode ser checked ou unchecked)
Utilizamos o seletor &[data-state="checked"]
para configurar estilos especificos para cada estado (checked ou unchecked)
'&[data-state="checked"]': {
backgroundColor: '$ignite300',
},
Podemos usar a função keyframes para definir animações
const slideIn = keyframes({
from: {
transform: 'translateY(-100%)',
},
to: {
transform: 'translateY(0)',
},
})
const slideOut = keyframes({
from: {
transform: 'translateY(0)',
},
to: {
transform: 'translateY(-100%)',
},
})
Em seguida aplicamos elas no estilo desejado
export const CheckboxIndicator = styled(Checkbox.Indicator, {
color: '$white',
width: '$4',
height: '$4',
'&[data-state="checked"]': {
animation: `${slideIn} 200ms ease-out`,
},
'&[data-state="unchecked"]': {
animation: `${slideOut} 200ms ease-out`,
},
})
No caso do componente multi step, precisamos usar a propriedade size para inferir a quantidade total de steps/passos.
Story: Text Input
A propriedade
decorators
no export default do stories permite que a gente customize a view do nosso elemento.A propriedade sempre retorna um array de funções, em que cada função recebe por padrão um parametro Story (que se trata do próprio componente, nesse caso o TextInput)
Não confunda a
decorators
com a propriedadeargs
args
: renderiza um filho no componente (dentro dele)decorators
: personaliza a view como vc quiserNo caso abaixo foi criado um box em volta do input com uma label para melhorar a apresentação.