iTunes-style coverflow

Adjacent slides are visible and rotated in 3D, creating the classic album-art coverflow look. Use slidesPerPage: 3 (or more) so the neighbours peek from the sides — that's what makes the effect work. The rotate option controls the Y-axis angle of the side cards, and depth pushes them back on the Z axis.

1
2
3
4
5
6
View code
<div class="c--slider-a c--slider-a--coverflow" id="my-slider">
  <div class="c--slider-a__wrapper">
    <div class="c--slider-a__slide">1</div>
    <div class="c--slider-a__slide">2</div>
    <div class="c--slider-a__slide">3</div>
    <div class="c--slider-a__slide">4</div>
    <div class="c--slider-a__slide">5</div>
    <div class="c--slider-a__slide">6</div>
  </div>
</div>
<div id="my-pag" class="c--slider-a__pagination"></div>
.c--slider-a { position: relative; width: 100%; overflow: hidden; }
.c--slider-a__wrapper { display: flex; will-change: transform; }
.c--slider-a__slide { flex-shrink: 0; height: 220px; }

/* Coverflow: show sides, don't clip them */
.c--slider-a--coverflow { overflow: visible; background: transparent; }
.c--slider-a--coverflow .c--slider-a__slide { transition: transform 0.4s ease; }
.c--slider-a {
  position: relative;
  width: 100%;
  overflow: hidden;

  &__wrapper {
    display: flex;
    will-change: transform;
  }

  &__slide {
    flex-shrink: 0;
    height: 220px;
  }

  &--coverflow {
    overflow: visible;
    background: transparent;
  }

  &--coverflow .c--slider-a__slide {
    transition: transform 0.4s ease;
  }
}
import { Slider } from '@andresclua/sliderkit'
import { arrows, pagination } from '@andresclua/sliderkit-plugins'
import { coverflowEffect } from '@andresclua/sliderkit-effects'

new Slider('#my-slider', {
  slidesPerPage: 3,
  gutter: 20,
  loop: true,
  speed: 400,
  plugins: [
    coverflowEffect({ rotate: 50, depth: 100, modifier: 1 }),
    arrows(),
    pagination({ el: '#my-pag', type: 'dots', clickable: true }),
  ],
})

Subtle coverflow (low rotate)

Lower the rotate value (e.g. 25) for a softer, more modern feel — side cards angle gently instead of fully turning. Combine with edgePadding so the very edges of neighbouring slides peek in, hinting that there's more content to explore.

1
2
3
4
5
View code
<div class="c--slider-a c--slider-a--coverflow" id="my-slider">
  <div class="c--slider-a__wrapper">
    <div class="c--slider-a__slide">1</div>
    <div class="c--slider-a__slide">2</div>
    <div class="c--slider-a__slide">3</div>
    <div class="c--slider-a__slide">4</div>
    <div class="c--slider-a__slide">5</div>
  </div>
</div>
<div id="my-pag" class="c--slider-a__pagination"></div>
.c--slider-a { position: relative; width: 100%; overflow: hidden; }
.c--slider-a__wrapper { display: flex; will-change: transform; }
.c--slider-a__slide { flex-shrink: 0; height: 220px; }

.c--slider-a--coverflow { overflow: visible; background: transparent; }
.c--slider-a--coverflow .c--slider-a__slide { transition: transform 0.5s ease; }
.c--slider-a {
  position: relative;
  width: 100%;
  overflow: hidden;

  &__wrapper {
    display: flex;
    will-change: transform;
  }

  &__slide {
    flex-shrink: 0;
    height: 220px;
  }

  &--coverflow {
    overflow: visible;
    background: transparent;
  }

  &--coverflow .c--slider-a__slide {
    transition: transform 0.5s ease;
  }
}
import { Slider } from '@andresclua/sliderkit'
import { arrows, pagination } from '@andresclua/sliderkit-plugins'
import { coverflowEffect } from '@andresclua/sliderkit-effects'

new Slider('#my-slider', {
  slidesPerPage: 2,
  edgePadding: 60,
  gutter: 16,
  loop: true,
  speed: 500,
  plugins: [
    coverflowEffect({ rotate: 25, depth: 60, modifier: 1 }),
    arrows(),
    pagination({ el: '#my-pag', type: 'dots', clickable: true }),
  ],
})