--- --- @import 'util'; @import 'colors'; @import 'fonts'; $flag-shadow: rgba(black, 0.2); $animate-time: 0.03s; $mobile-width: {{ site.mobile-width }}; #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; list-style-type: none; margin-left: 2.5em; padding-left: 0; color: $subtle; font-family: $sidebar-font; li { position: relative; } a { vertical-align: 10%; 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; } svg { left: -2em; position: absolute; text-align: center; width: 2em; } } .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: relative; line-height: normal; text-align: center; float: right; width: 160px; top: 0.6em; color: $sidebar-text; } @media screen and (min-width: $mobile-width + 1) { .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; 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 { display: flex; justify-content: space-between; top: 0; width: 100%; } #navFlags { display: flex; flex-wrap: wrap; justify-content: space-evenly; padding: { left: 15px; right: 15px; } li { flex-grow: 1; flex-shrink: 0; } } #navLinks { display: none; } .flag { display: block; margin: 5px; //text-decoration: none; .flagPoint, .flagFold { display: none; } .flagButton { border-radius: 5px; display: block; height: 50px; padding: { left: 10px; right: 10px; } } .flagText { display: block; position: relative; width: 100%; } } .flag:hover a { text-decoration: underline; } }