$foreground: #FFFFFF; $background: #000000; $animation-length: 4s; $animation-delay: $animation-length - 1.5; $slide-count: 5; * { box-sizing: border-box; } body { justify-content: center; align-items: center; background: $background; color: $foreground; font-family: Sans-Serif; margin:0; padding:0; overflow:hidden; animation: colorchange 10s alternate infinite; } .container { height:100vh; width: 100vw; @for $child from 0 to $slide-count - 1 { >:nth-child(#{$child+1}) { animation-delay: $animation-delay*$child; animation-duration: $animation-length; animation-name: slide-in-out; animation-fill-mode: both; } } >:nth-child(#{$slide-count}) { animation-delay: $animation-delay* ($slide-count - 1); animation-duration: $animation-length; animation-name: slide-in; animation-fill-mode: both; } } .slide { position: absolute; height:100vh; width: 100vw; display: flex; align-items: center; justify-content: center; flex-direction: column; } @keyframes slide-in-out { 0% { transform: translateY(50px); opacity: 0; } 30%, 60% { transform: translateY(0); opacity: 1; } 100% { transform: translateY(-50px); opacity: 0; } } @keyframes slide-in { 0% { transform: translateY(50px); opacity: 0; } 30%, 100% { transform: translateY(0); opacity: 1; } } @keyframes colorchange { 0% {background: #002b4a;} 50% {background: #01004b;} 100% {background: #30004b;} }