Voltar à galeria
Accordion Suave
FAQ claro com abertura fluida via grid-rows, detalhe esmeralda e ícone que gira.
ReactModais & OverlaysMédio
Preview ao vivoInterativo
Carregando preview…
import { useState } from "react";
import "./styles.css";
const ITEMS = [
{ q: "Posso cancelar quando quiser?", a: "Sim. Sem multa, sem burocracia: dois cliques e pronto." },
{ q: "Tem período de teste?", a: "14 dias grátis com acesso completo, sem pedir cartão." },
{ q: "Vocês emitem nota fiscal?", a: "Emitimos automaticamente em todo pagamento aprovado." },
];
export default function App() {
const [open, setOpen] = useState(0);
return (
<div className="stage">
<div className="acc">
{ITEMS.map((it, i) => {
const isOpen = open === i;
return (
<div key={i} className={isOpen ? "item open" : "item"}>
<button className="head" onClick={() => setOpen(isOpen ? -1 : i)}>
{it.q}
<span className="plus">+</span>
</button>
<div className="body">
<div className="body-inner">{it.a}</div>
</div>
</div>
);
})}
</div>
</div>
);
}
Efeitos relacionados
carregando
Login que treme e exibe um alerta com mola quando as credenciais estão erradas.
Alerta Shake de Formulário
ReactLogin que treme e exibe um alerta com mola quando as credenciais estão erradas.
carregando
Aviso de cookies que sobe do rodapé com spring, dois botões e saída suave.
Banner de Cookies com Mola
ReactAviso de cookies que sobe do rodapé com spring, dois botões e saída suave.
carregando
Folha inferior arrastável que gruda em três alturas, como nos apps de entrega.
Bottom Sheet com Snap Points
ReactFolha inferior arrastável que gruda em três alturas, como nos apps de entrega.
