components/marquee/index.module.css (39 lines of code) (raw):

.marquee { position: relative; width: 100%; overflow: hidden; display: flex; --marquee-gap: 80px; } .fadingEdges { mask-image: linear-gradient( to right, hsl(0 0% 0% / 0), hsl(0 0% 0% / 1) 20%, hsl(0 0% 0% / 1) 80%, hsl(0 0% 0% / 0) ); } .group { display: flex; align-items: center; justify-content: space-around; min-width: 100%; animation: scroll 60s linear infinite; gap: var(--marquee-gap); flex-shrink: 0; } .group:nth-child(1) { margin-right: var(--marquee-gap); } .paused { animation-play-state: paused; } @keyframes scroll { 0% { transform: translateX(0); } 100% { transform: translateX(-100%); } }