Transições
A chave do tema permite que você customize as durações e atenuações das várias transições usadas entre componentes do Material-UI, e oferece um utilitário para criar transições customizadas.
API
theme.transitions.create(props, options) => transition
Argumentos
props
(String | String[]): Padrão['all']
. Fornece uma propriedade CSS, ou uma lista de propriedades CSS que devem ser transicionadas.options
(Object [opcional]):
options.duration
(String | Number [opcional]): Padrãotheme.transitions.duration.standard
. Fornece a duração da transição.options.easing
(String [opcional]): Padrãotheme.transitions.easing.easeInOut
. Fornece a atenuação para a transição.options.delay
(String | Number [opcional]): Padrão0
. Fornece o atraso para a transição.
Retornos
transition
: Um valor CSS de transição, que compõe todas as propriedades CSS que devem ser transitadas juntamente com duração, atenuação e atraso definidos.
Use o utilitário theme.transitions.create()
para criar transições consistentes para os elementos da sua UI.
theme.transitions.create(['background-color', 'transform']);
Exemplo
theme.transitions.getAutoHeightDuration(height) => duration
Argumentos
height
(Number): A altura do componente.
Retornos
duration
: A duração calculada baseada na altura.
Durações
Você pode alterar alguns ou todos os valores de duração, ou fornecer valores próprios (para usar com o utilitário create()
). Este exemplo mostra todos os valores padrão (em milissegundos), mas você só precisa fornecer as chaves que deseja alterar ou adicionar.
const theme = createTheme({
transitions: {
duration: {
shortest: 150,
shorter: 200,
short: 250,
// mais básico recomendado periodicidade
standard: 300,
// isto é para ser utilizado em animações complexas
complex: 375,
// recomendado quando algo esta entrando na tela
enteringScreen: 225,
// recomendado quando algo esta deixando a tela
leavingScreen: 195,
},
},
});
Atenuações
Você pode alterar alguns ou todos os valores de atenuação, ou fornecer valores próprios, fornecendo um valor customizado de CSS transition-timing-function
.
const theme = createTheme({
transitions: {
easing: {
// Esta é a curva de atenuação mais comum.
easeInOut: 'cubic-bezier(0.4, 0, 0.2, 1)',
// Objetos que entram na tela na velocidade total e
// lentamente desaceleram até um ponto de repouso.
easeOut: 'cubic-bezier(0.0, 0, 0.2, 1)',
// Objetos deixam a tela em velocidade máxima. Não desaceleram quando estão fora da tela.
easeIn: 'cubic-bezier(0.4, 0, 1, 1)',
// A atenuação de curva sharp é usada por objetos que podem retornar a tela a qualquer momento.
sharp: 'cubic-bezier(0.4, 0, 0.6, 1)',
},
},
});
Referências
Confira a página de Transições para explorar os componentes de transição que estão incluídos com o Material-UI.