Todos os componentes
MotionHeight
Altura que acompanha o conteúdo: recolher, expandir e mudanças de conteúdo.
WebReact NativeConteúdo e tamanho
Experimente
Uso mais curto
Details.jsx<button onClick={() => setOpen(!open)}>Details</button>
<MotionHeight open={open}>
<Answer />
</MotionHeight>
O que ele resolve para você
- Anima até a altura real do conteúdo, medida para você.
- Acompanha o conteúdo quando ele cresce ou diminui enquanto está aberto.
- Começa da altura na tela, mesmo no meio de uma mudança.
- Redimensionar a página ajusta na hora, em vez de ficar atrasado em relação à nova largura.
- O conteúdo fechado continua montado, mas oculto e inerte, então o estado é preservado.
Use para
- Respostas em uma FAQ.
- Um grupo de configurações que se abre.
- Uma lista cuja altura total deve ser animada (envolva
MotionList).
Props
| Prop | Tipo | Padrão | Descrição |
|---|
open | boolean | true | false recolhe até altura zero; o conteúdo continua montado, mas oculto e inerte. |
|---|
children | ReactNode | | O conteúdo. |
|---|
as | element | 'div' | O elemento a renderizar. |
|---|
transition | Transition | spring | Uma curva de tempo { duration, easing } ou uma mola { tempo: 'spring', spring }. As molas mantêm o embalo quando interrompidas. |
|---|
onMotionComplete | (open) => void | | Roda com open quando a altura se acomoda. |
|---|
As outras props vão para o elemento renderizado, então className, style e handlers de eventos funcionam normalmente.