--- --- @import 'util'; @import 'colors'; @import 'fonts'; @import 'mobile'; $flag-shadow: rgba(black, 0.2); $animate-time: 0.03s; #sidebar { display: flex; flex-direction: column; flex-shrink: 0; width: 180px; margin: 0; padding: { top: 5px; bottom: 5px; left: 0px; } } #navFlags { display: block; margin-block-start: 0; margin-block-end: 0; list-style-type: none; line-height: 0; margin: 0; padding: { left: 0px; } } #navLinks { display: block; padding: { left: 10px; } color: $subtle; font-family: $sidebar-font; a{ color: $sidebar-link-text; text-decoration: none; @include prefix-group(( transition-duration: $animate-time, transition-property: color, ), webkit moz o); } a:hover{ color: $sidebar-link-hover; text-decoration: underline; } } .flagButton, .flagButton::after, .flagPoint, .flagPoint::after { @include prefix-group(( transition-duration: $animate-time, transition-timing-function: ease-out ), webkit moz o); } .flagText { font: { family: $sidebar-font; size: 20px; weight: 600; } position: absolute; line-height: normal; text-align: center; width: 160px; right:0; top:15px; color: $sidebar-text; } @media screen and (min-width: $mobile-width){ #navFlags { .flag { display: inline-block; position: relative; left: -3px; text-align: center; z-index: 1; padding: { top: 5px; bottom: 5px; left: 0px; } .flagButton { display: block; float: left; height: 50px; width: 160px; border-radius: 0 5px 5px 0; @include prefix(transition-property, width, webkit moz o); @include prefix(transition-property, border-radius, webkit moz o); } .flagButton::after{ z-index: -1; content: " "; display: block; position: relative; left: 3px; top: 4px; height: 50px; width: 160px; background-color: $flag-shadow; border-radius: 0 5px 5px 0; @include prefix(transition-property, width, webkit moz o); @include prefix(transition-property, border-radius, webkit moz o); } .flagPoint{ position: absolute; width: 0; height: 0; left: 160px; border-top: 25px solid transparent; border-bottom: 25px solid transparent; border-left-width: 0px; border-left-style: solid; background-color: transparent; @include prefix(transition-property, left, webkit moz o); @include prefix(transition-property, border-left-width, webkit moz o); } .flagPoint.blue { border-left-color: $blue; } .flagPoint.orange { border-left-color: $orange; } .flagPoint.green { border-left-color: $green; } .flagPoint.magenta { border-left-color: $magenta; } .flagPoint::after{ position: absolute; width: 0; height: 0; border-top: 25px solid transparent; border-bottom: 25px solid transparent; border-left: 0px solid $flag-shadow; z-index: -1; content: " "; left: -20 + 3px; top: -25 + 4px; @include prefix(transition-property, border-left-width, webkit moz o); } .flagFold{ display: block; position: absolute; z-index: -100; left:0px; top:55px; width: 3px; height: 3px; mask-image: url('../svg/fold.svg'); -webkit-mask-image: url('../svg/fold.svg'); } } .flag:hover { .flagButton { width: 170px; border-radius: 0; } .flagButton::after{ width: 170px; border-radius: 0; } .flagPoint { left: 170px; border-left-width: 20px; } .flagPoint::after{ border-left-width: 20px; } } } } @media screen and (max-width: $mobile-width){ #sidebar{ position: -webkit-sticky; display: flex; justify-content: space-between; top: 0; width: 100%; } #navFlags { display: flex; flex-wrap: wrap; justify-content: space-evenly; li { padding: 5px; flex-grow: 1; flex-shrink: 0; min-width: 100px; } .flag { text-decoration: none; display: block; flex-shrink: 0; flex-grow: 1; width: 100%; .flagPoint, .flagFold { display: none; } .flagButton{ border-radius: 5px; display: block; height: 50px; width: 100%; .flagText { display: block; position: relative; width: 100%; } } } } #navLinks { display: none; } }