copié de @jhey sur Twitter
[!NOTER]
Cela suppose que vous avez déjà configuré votre mode lumière sombre avec une sorte de fonction pour mettre à jour votre thème
/* Angled */ [data-style='angled']::view-transition-old(root) { animation: none; z-index: -1; } [data-style='angled']::view-transition-new(root) { animation: unclip 1s; clip-path: polygon(-100vmax 100%, 100% 100%, 100% -100vmax); } @keyframes unclip { 0% { clip-path: polygon(100% 100%, 100% 100%, 100% 100%); } }
useEffect(() => { // set the data-style attribute document.documentElement.dataset.style = "angled"; }, []);
en SSR, il peut être défini directement dans la balise html
function transitionColors() { if (typeof window !== "undefined") { document.startViewTransition(() => { const newTheme = theme === "light" ? "dark" : "light"; document.documentElement.dataset.theme = newTheme; updateTheme(newTheme); }); } }
d'autres styles de transition peuvent être ajoutés en incluant le fichier CSS correspondant et en ajoutant l'attribut de style de données correct
exemple de réaction
Si vous aimez ce type d'astuces CSS, pensez à suivre jhey
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3