@keyframes fadeInLeft{ 0%{ opacity: 0; transform: translateX(-50px); } 100%{ opacity: 1; transform: translateX(0); } } @keyframes fadeOutRight{ 0%{ opacity: 1; transform: translateX(0); } 100%{ opacity: 0; transform: translateX(50px); } } @mixin navigation-bar(){ .nav-bar{ display: flex; justify-content: flex-start; position: relative; flex-flow: row wrap; position: relative; border-color: transparent; // overflow: hidden; // border-bottom: 1px solid map-get($colors, 6); .indicator{ content: ''; position: absolute; display: block; bottom: -2px; height: 2px; background-color: map-get($colors, primary); transition: left 0.4s ease-in-out, right 0.2s ease-in-out; &.transition-reverse{ transition: left 0.2s ease-in-out, right 0.4s ease-in-out; } } &.nav-bar-right{ justify-content: flex-end; } &.nav-bar-center{ justify-content: center; } .nav-bar-item{ // color: map-get($colors, 4); padding: $el-padding-3/2 $el-padding-5; font-size: modular-scale(-1); line-height: modular-scale(0); font-family: $font-1; display: inline-block; font-weight: 600; margin-bottom: 0; text-align: center; cursor: pointer; border: 1px solid transparent; @include mq($until: mobile) { padding: $el-padding-3/2 $el-padding-5/2; } &.active{ color: map-get($colors, primary); } } } } .tabs{ display: flex; flex-direction: column; @include navigation-bar(); .tab-contents{ margin-top: 30px; position: relative; .tab-content{ backface-visibility: hidden; &:not(.active){ position: absolute; left: 0; top: 0; pointer-events: none; opacity: 1; animation: fadeOutRight .25s ease forwards; } &.active{ animation: fadeInLeft .5s ease forwards; } } } }