From a6b0c9230d9152947f784d5e5c89f270378c2478 Mon Sep 17 00:00:00 2001 From: krmax44 Date: Mon, 13 Jan 2025 17:00:21 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=92=84=20add=20view=20transitions?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/assets/style.css | 35 +++++- src/components/App.vue | 67 +++++------ src/components/Questionnaire.vue | 186 +++++++++++++++++-------------- src/components/Weights.vue | 4 +- src/pages/index.astro | 4 +- 5 files changed, 178 insertions(+), 118 deletions(-) diff --git a/src/assets/style.css b/src/assets/style.css index 62a184c..6f84aba 100644 --- a/src/assets/style.css +++ b/src/assets/style.css @@ -6,7 +6,7 @@ body { .btn { @apply inline-flex items-center px-4 py-2 text-white font-medium; - @apply bg-blue-700 hover:bg-blue-800 focus:ring focus:ring-blue-900 outline-none transition; + @apply bg-blue-700 hover:bg-blue-800 focus:ring focus:ring-blue-900 outline-none motion-safe:transition; } .btn:disabled { @@ -40,3 +40,36 @@ body { font-style: normal; font-display: swap; } + +@media (prefers-reduced-motion: no-preference) { + .slide-enter-active, + .slide-back-enter-active { + transition: + opacity 0.25s, + transform 0.25s theme(transitionTimingFunction.out); + } + + .slide-leave-active, + .slide-back-leave-active { + transition: + opacity 0.25s, + transform 0.25s theme(transitionTimingFunction.in); + } + + .slide-leave-to, + .slide-enter-from, + .slide-back-leave-to, + .slide-back-enter-from { + opacity: 0; + } + + .slide-leave-to, + .slide-back-enter-from { + transform: translateX(-20%); + } + + .slide-enter-from, + .slide-back-leave-to { + transform: translateX(20%); + } +} diff --git a/src/components/App.vue b/src/components/App.vue index 6174741..462c380 100644 --- a/src/components/App.vue +++ b/src/components/App.vue @@ -1,5 +1,5 @@