diff --git a/fe/src/pages/ListsPage.vue b/fe/src/pages/ListsPage.vue index ac5f252..8821d0b 100644 --- a/fe/src/pages/ListsPage.vue +++ b/fe/src/pages/ListsPage.vue @@ -559,12 +559,13 @@ onUnmounted(() => { display: grid; align-items: center; justify-content: center; - transition: all 0.2s ease; + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); } .neo-checkbox-label input[type="checkbox"]:hover { border-color: var(--secondary); background: var(--light); + transform: scale(1.05); } .neo-checkbox-label input[type="checkbox"]::before, @@ -575,6 +576,7 @@ onUnmounted(() => { background: var(--primary); border-radius: 2px; opacity: 0; + transition: opacity 0.2s ease; } .neo-checkbox-label input[type="checkbox"]::before { @@ -592,21 +594,22 @@ onUnmounted(() => { .neo-checkbox-label input[type="checkbox"]:checked { border-color: var(--primary); background: var(--light); + transform: scale(1.05); } .neo-checkbox-label input[type="checkbox"]:checked::before { opacity: 1; - animation: check-01 0.4s ease forwards; + animation: check-01 0.5s cubic-bezier(0.4, 0, 0.2, 1) forwards; } .neo-checkbox-label input[type="checkbox"]:checked::after { opacity: 1; - animation: check-02 0.4s ease forwards; + animation: check-02 0.5s cubic-bezier(0.4, 0, 0.2, 1) forwards; } .checkbox-text-span { position: relative; - transition: color 0.3s ease; + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); } .checkbox-text-span::before, @@ -614,6 +617,7 @@ onUnmounted(() => { content: ""; position: absolute; left: 0; + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); } .checkbox-text-span::before { @@ -623,7 +627,7 @@ onUnmounted(() => { transform: translateY(-50%); background: var(--secondary); border-radius: 2px; - transition: background 0.3s ease; + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); } .checkbox-text-span::after { @@ -632,7 +636,7 @@ onUnmounted(() => { width: 4px; height: 4px; top: 50%; - left: 50%; + left: 130%; transform: translate(-50%, -50%); border-radius: 50%; background: var(--accent); @@ -640,8 +644,15 @@ onUnmounted(() => { pointer-events: none; } +.neo-checkbox-label input[type="checkbox"]:checked+.checkbox-text-span { + color: var(--dark); + opacity: 0.7; + text-decoration: line-through var(--dark); + transform: translateX(4px); +} + .neo-checkbox-label input[type="checkbox"]:checked+.checkbox-text-span::after { - animation: firework 0.6s ease forwards 0.15s; + animation: firework 0.8s cubic-bezier(0.4, 0, 0.2, 1) forwards 0.15s; } .neo-completed-static { @@ -814,7 +825,7 @@ onUnmounted(() => { @keyframes firework { 0% { opacity: 1; - transform: translate(-50%, -50%); + transform: translate(-50%, -50%) scale(0.5); box-shadow: 0 0 0 0 var(--accent), 0 0 0 0 var(--accent), @@ -826,11 +837,12 @@ onUnmounted(() => { 50% { opacity: 1; + transform: translate(-50%, -50%) scale(1); } 100% { opacity: 0; - transform: translate(-50%, -50%); + transform: translate(-50%, -50%) scale(1.2); box-shadow: 0 -15px 0 0 var(--accent), 14px -8px 0 0 var(--accent),