/* ------------------------------ Component: Hamburger ------------------------------ */ $bar-width: 35px; $bar-height: 3px; $bar-spacing: 8px; $bar-color: #85C7CC; .c-hamburger { display: flex; height: $bar-height + $bar-spacing*2; transition: transform $ease-out 400ms; backface-visibility: hidden; position: relative; cursor: pointer; border: 0; margin: 0; padding: 0; background-color: transparent; appearance: none; &:after { content: attr(data-label); transform: translateX(50%); @include font-size(18px); top: -3px; left: -7px; font-weight: $medium; padding-left: 17px; position: absolute; transition: color 300ms $ease-out; } .bar, .bar:after, .bar:before { width: $bar-width; height: $bar-height; border-radius: 10px; } .bar { position: relative; transform: translateY($bar-spacing); background-color: rgba($bar-color, 1); transition: all 0ms 300ms; &:before, &:after { left: 0; content: ""; position: absolute; bottom: $bar-spacing; background-color: rgba($bar-color, 1); } &:before { bottom: $bar-spacing; transition: bottom 300ms 300ms $ease-out, transform 300ms $ease-out, background-color 300ms $ease-out; } &:after { top: $bar-spacing; transition: top 300ms 300ms $ease-out, transform 300ms $ease-out, background-color 300ms $ease-out; } &.animate { background-color: rgba(255, 255, 255, 0); &:before { bottom: 0; transform: rotate(-45deg); transition: bottom 300ms $ease-out, transform 300ms 300ms $ease-out; } &:after { top: 0; transform: rotate(45deg); transition: top 300ms $ease-out, transform 300ms 300ms $ease-out; } } } }