@mixin move-motion($className, $keyframeName, $time: .3s) {
    @include make-motion($className, $keyframeName, $time);

    .#{$className}-enter-active,
    .#{$className}-appear {
        opacity: 0;
        animation-timing-function: ease-in-out;
    }

    .#{$className}-leave-active {
        animation-timing-function: ease-in-out;
    }
}

@include move-motion(move-up, #{$prefix-name}MoveUp); 
@include move-motion(move-down, #{$prefix-name}MoveDown);
@include move-motion(move-left, #{$prefix-name}MoveLeft);
@include move-motion(move-right, #{$prefix-name}MoveRight);




@keyframes #{$prefix-name}MoveUpIn {
    0% {
        transform-origin: 0 0;
        transform: translateY(-100%);
        opacity: 0;
    }

    100% {
        transform-origin: 0 0;
        transform: translateY(0%);
        opacity: 1;
    }
}

@keyframes #{$prefix-name}MoveUpOut {
    0% {
        transform-origin: 0 0;
        transform: translateY(0%);
        opacity: 1;
    }

    100% {
        transform-origin: 0 0;
        transform: translateY(-100%);
        opacity: 0;
    }
}

@keyframes #{$prefix-name}MoveDownIn {
    0% {
        transform-origin: 0 0;
        transform: translateY(100%);
        opacity: 0;
    }

    100% {
        transform-origin: 0 0;
        transform: translateY(0%);
        opacity: 1;
    }
}

@keyframes #{$prefix-name}MoveDownOut {
    0% {
        transform-origin: 0 0;
        transform: translateY(0%);
        opacity: 1;
    }

    100% {
        transform-origin: 0 0;
        transform: translateY(100%);
        opacity: 0;
    }
}

@keyframes #{$prefix-name}MoveLeftIn {
    0% {
        transform-origin: 0 0;
        transform: translateX(-100%);
        opacity: 0;
    }

    100% {
        transform-origin: 0 0;
        transform: translateX(0%);
        opacity: 1;
    }
}

@keyframes #{$prefix-name}MoveLeftOut {
    0% {
        transform-origin: 0 0;
        transform: translateX(0%);
        opacity: 1;
    }

    100% {
        transform-origin: 0 0;
        transform: translateX(-100%);
        opacity: 0;
    }
}

@keyframes #{$prefix-name}MoveRightIn {
    0% {
        opacity: 0;
        transform-origin: 0 0;
        transform: translateX(100%);
    }

    100% {
        opacity: 1;
        transform-origin: 0 0;
        transform: translateX(0%);
    }
}

@keyframes #{$prefix-name}MoveRightOut {
    0% {
        transform-origin: 0 0;
        transform: translateX(0%);
        opacity: 1;
    }

    100% {
        transform-origin: 0 0;
        transform: translateX(100%);
        opacity: 0;
    }
}

@keyframes #{$prefix-name}MoveUpIn {
    0% {
        transform-origin: 0 0;
        transform: translateY(-100%);
        opacity: 0;
    }

    100% {
        transform-origin: 0 0;
        transform: translateY(0%);
        opacity: 1;
    }
}

@keyframes #{$prefix-name}MoveUpOut {
    0% {
        transform-origin: 0 0;
        transform: translateY(0%);
        opacity: 1;
    }

    100% {
        transform-origin: 0 0;
        transform: translateY(-100%);
        opacity: 0;
    }
}