@define refs {
  name: backX;
  left: backLeft;
  right: backRight;
}

@define props {
  duration: 0.5s;
}

@alga {refs.name} {
  .{refs.left}-enter-active,
  html[dir=rtl] .{refs.right}-enter-active {
    ref-animation: {refs.left} {props.duration};
  }
  
  .{refs.left}-leave-active,
  html[dir=rtl] .{refs.right}-leave-active {
    ref-animation: {refs.left} {props.duration} reverse;
  }
  
  @keyframes {refs.left} {
    0% {
      ref: opacity-0.7;
      ref-transform: translateX(-2000px) scale(.7);
    }
    80% {
      ref: opacity-0.7;
      ref-transform: translateX(0) scale(.7);
    }
    100% {
      ref: opacity-1;
      ref-transform: scale(1);
    }
  }
  
  .{refs.right}-enter-active,
  html[dir=rtl] .{refs.left}-enter-active {
    ref-animation: {refs.right} {props.duration};
  }
  
  .{refs.right}-leave-active,
  html[dir=rtl] .{refs.left}-leave-active {
    ref-animation: {refs.right} {props.duration} reverse;
  }
  
  @keyframes {refs.right} {
    0% {
      ref: opacity-0.7;
      ref-transform: translateX(2000px) scale(.7);
    }
    80% {
      ref: opacity-0.7;
      ref-transform: translateX(0) scale(.7);
    }
    100% {
      ref: opacity-1;
      ref-transform: scale(1);
    }
  }
}
