@mixin transition($time) {
  will-change: transform;
  transition: all ease $time;
}

@mixin transform($type) {
  opacity: 0;
  transform: $type;
}

.se {
  &-fade-enter-active,
  &-fade-leave-active {
    @include transition(0.3s);
  }

  &-fade-enter-from,
  &-fade-leave-to {
    @include transform('');
  }

  &-fade-transform-enter-active,
  &-fade-transform-leave-active {
    @include transition(0.3s);
  }

  &-fade-transform-enter-from {
    @include transform(translateX(-30px));
  }

  &-fade-transform-leave-to {
    @include transform(translateX(30px));
  }

  &-slide-fade-enter-active,
  &-slide-fade-leave-active {
    @include transition(0.3s);
  }

  &-slide-fade-enter-from,
  &-slide-fade-leave-to {
    @include transform(translateX(30px));
  }

  &-slide-right-enter-active,
  &-slide-right-leave-active,
  &-slide-left-enter-active,
  &-slide-left-leave-active {
    @include transition(0.3s);
  }

  &-slide-right-enter-from,
  &-slide-left-leave-to {
    @include transform(translateX(-100%));
  }

  &-slide-left-enter-from,
  &-slide-right-leave-to {
    @include transform(translateX(100%));
  }
}
