@keyframes fade-in { 0% { transform: scale(0.97); opacity: 0; } 50% { transform: scale(1); } 100% { transform: scale(1); opacity: 1; } } @keyframes fade-up-blocks-chain { 0% { flex-basis: 0%; width: 0%; opacity: 0; overflow-x: hidden; } 50% { opacity: 0; } 100% { flex-basis: 25%; width: 25%; opacity: 1; overflow-x: auto; } } @keyframes fade-up { 0% { height: 0; opacity: 0; } 25% { opacity: 0; transform: translateY(10px) scale(0.97); } 100% { height: 100%; opacity: 1; transform: translateY(0) scale(1); } } @keyframes shrink-out { 0% { transform: scale(1); opacity: 1; } 100% { opacity: 0; transform: scale(0.75); } } .fade-in { animation: fade-in 0.6s ease-out 0.4s backwards; } .fade-up-blocks-chain { will-change: transform, opacity, width; white-space: nowrap; animation: fade-up-blocks-chain 0.3s cubic-bezier(0.455, 0.03, 0.515, 0.955); @include media-breakpoint-down(md) { animation: fade-up 0.6s cubic-bezier(0.455, 0.03, 0.515, 0.955); } } .fade-up { will-change: transform, opacity, height; animation: fade-up 0.6s cubic-bezier(0.455, 0.03, 0.515, 0.955); @media (max-width: $breakpoint-md) { max-height: 300px; animation: fade-up--mobile 0.6s cubic-bezier(0.455, 0.03, 0.515, 0.955); } } .shrink-out { transform-origin: bottom center; animation: shrink-out 0.3s cubic-bezier(0.55, 0.055, 0.675, 0.19) forwards; }