/* 页面切换动画
------------------------------- */
.slide-right-enter-active,
.slide-right-leave-active,
.slide-left-enter-active,
.slide-left-leave-active {
    will-change: transform;
    transition: all 0.3s ease;
}

// slide-right
.slide-right-enter-from {
    opacity: 0;
    transform: translateX(-20px);
}

.slide-right-leave-to {
    opacity: 0;
    transform: translateX(20px);
}

// slide-left
.slide-left-enter-from {
    @extend .slide-right-leave-to;
}

.slide-left-leave-to {
    @extend .slide-right-enter-from;
}

// opacitys
.opacitys-enter-active,
.opacitys-leave-active {
    will-change: transform;
    transition: all 0.3s ease;
}

.opacitys-enter-from,
.opacitys-leave-to {
    opacity: 0;
}

// 淡入淡出滑动效果
.slide-fade-enter-active {
    transition: all 0.3s ease;
}

.slide-fade-leave-active {
    transition: all 0.3s cubic-bezier(1, 0.5, 0.8, 1);
}

.slide-fade-enter-from {
    transform: translateX(20px);
    opacity: 0;
}

.slide-fade-leave-to {
    transform: translateX(-20px);
    opacity: 0;
}

// 水平滑动效果
.slide-x-enter-active,
.slide-x-leave-active {
    transition: all 0.25s ease-out;
}

.slide-x-enter-from {
    opacity: 0;
    transform: translateX(30px);
}

.slide-x-leave-to {
    opacity: 0;
    transform: translateX(-30px);
}

/* Breadcrumb 面包屑过渡动画
------------------------------- */
.breadcrumb-enter-active,
.breadcrumb-leave-active {
    transition: all 0.3s;
}

.breadcrumb-enter-from,
.breadcrumb-leave-active {
    opacity: 0;
    transform: translateX(20px);
}

.breadcrumb-leave-active {
    position: absolute;
}

/* logo 过渡动画
------------------------------- */
@keyframes logoAnimation {
    0% {
        transform: scale(0);
    }

    80% {
        transform: scale(1.2);
    }

    100% {
        transform: scale(1);
    }
}

/* 404、401 过渡动画
------------------------------- */
@keyframes error-num {
    0% {
        transform: translateY(60px);
        opacity: 0;
    }

    100% {
        transform: translateY(0);
        opacity: 1;
    }
}

@keyframes error-img {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}