Blossom Carousel Logo
Advanced

Stories

Build an Instagram Stories-inspired 3d effect.
.frame {
  aspect-ratio: 9 / 16;
  width: 100%;
  max-width: 20rem;
  perspective: 1200px;
  overflow: clip;
}

.carousel {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: 100%;
  scroll-snap-type: x mandatory;
  height: 100%;
}

.slide {
  width: 100%;
  height: 100%;
  scroll-snap-align: center;
  scroll-snap-stop: always;
  perspective: 1200px;

  view-timeline: --stories inline;
}

.slide .card {
  width: 100%;
  height: 100%;

  animation: stories linear both;
  animation-timeline: --stories;
  animation-range: cover;
}

@keyframes stories {
  0% {
    transform: rotateY(90deg);
    transform-origin: left center;
  }
  49% {
    transform: rotateY(0deg);
    transform-origin: left center;
  }
  50% {
    transform: rotateY(0deg);
    transform-origin: center center;
  }
  51% {
    transform: rotateY(0deg);
    transform-origin: right center;
  }
  100% {
    transform: rotateY(-90deg);
    transform-origin: right center;
  }
}