From 4ca037d6b259eadb12be29912eba91e4d50b3d24 Mon Sep 17 00:00:00 2001 From: Felipe Coutinho Date: Tue, 24 Feb 2026 16:57:32 +0000 Subject: [PATCH] =?UTF-8?q?style:=20anima=C3=A7=C3=A3o=20suave=20nos=20dia?= =?UTF-8?q?logs=20via=20CSS=20keyframes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Substitui classes do tailwindcss-animate (não instalado) por keyframes CSS nativos. Efeito de fade + scale (96%→100%) ao abrir e fechar, sem conflito com o posicionamento translate do Tailwind v4. Co-Authored-By: Claude Sonnet 4.6 --- app/globals.css | 49 ++++++++++++++++++++++++++++++++++++++++ components/ui/dialog.tsx | 4 ++-- 2 files changed, 51 insertions(+), 2 deletions(-) diff --git a/app/globals.css b/app/globals.css index 371c538..3cea177 100644 --- a/app/globals.css +++ b/app/globals.css @@ -294,3 +294,52 @@ animation: none; mix-blend-mode: normal; } + +/* Dialog animations */ +@keyframes dialog-in { + from { + opacity: 0; + transform: scale(0.96); + } + to { + opacity: 1; + transform: scale(1); + } +} + +@keyframes dialog-out { + from { + opacity: 1; + transform: scale(1); + } + to { + opacity: 0; + transform: scale(0.96); + } +} + +@keyframes overlay-in { + from { opacity: 0; } + to { opacity: 1; } +} + +@keyframes overlay-out { + from { opacity: 1; } + to { opacity: 0; } +} + +[data-slot="dialog-overlay"][data-state="open"] { + animation: overlay-in 0.2s ease-out; +} + +[data-slot="dialog-overlay"][data-state="closed"] { + animation: overlay-out 0.15s ease-in; +} + +[data-slot="dialog-content"][data-state="open"] { + animation: dialog-in 0.25s cubic-bezier(0.16, 1, 0.3, 1); +} + +[data-slot="dialog-content"][data-state="closed"] { + animation: dialog-out 0.15s ease-in; +} diff --git a/components/ui/dialog.tsx b/components/ui/dialog.tsx index b9c9b5b..4bf474f 100644 --- a/components/ui/dialog.tsx +++ b/components/ui/dialog.tsx @@ -37,7 +37,7 @@ function DialogOverlay({