@define refs {
  name: backY;
  top: backTop;
  down: backDown;
  bottom: backBottom;
  up: backUp;
}

@define props {
  duration: 0.5s;
}

@alga {refs.name} {
  .{refs.top}-enter-active,
  .{refs.down}-enter-active {
    ref-animation: {refs.top} {props.duration};
  }
  
  .{refs.top}-leave-active,
  .{refs.down}-leave-active {
    ref-animation: {refs.top} {props.duration} reverse;
  }
  
  @keyframes {refs.top} {
    0% {
      ref: opacity-0.7;
      ref-transform: translateY(-1200px) scale(.7);
    }
    80% {
      ref: opacity-0.7;
      ref-transform: translateY(0px) scale(.7);
    }
    100% {
      ref: opacity-1;
      ref-transform: scale(1);
    }
  }
  
  .{refs.bottom}-enter-active,
  .{refs.up}-enter-active {
    ref-animation: {refs.bottom} {props.duration};
  }
  
  .{refs.bottom}-leave-active,
  .{refs.up}-leave-active {
    ref-animation: {refs.bottom} {props.duration} reverse;
  }
  
  @keyframes {refs.bottom} {
    0% {
      ref: opacity-0.7;
      ref-transform: translateY(1200px) scale(.7);
    }
    80% {
      ref: opacity-0.7;
      ref-transform: translateY(0px) scale(.7);
    }
    100% {
      ref: opacity-1;
      ref-transform: scale(1);
    }
  }
}
