mirror of
https://github.com/prurigro/hypothetical.git
synced 2024-11-24 08:51:25 -05:00
207 lines
5.5 KiB
SCSS
207 lines
5.5 KiB
SCSS
.nav-section-component {
|
|
$logo-offset: pxrem(10);
|
|
$desktop-logo-width: pxrem(35);
|
|
$mobile-logo-width: pxrem(30);
|
|
@include font-sans-semibold;
|
|
position: absolute;
|
|
top: 0px;
|
|
left: 0px;
|
|
width: 100%;
|
|
user-select: none;
|
|
|
|
&-mobile-header {
|
|
position: relative;
|
|
width: 100%;
|
|
height: $nav-height-mobile;
|
|
background-color: $c-base;
|
|
|
|
@media (min-width: $nav-desktop-min) {
|
|
display: none;
|
|
}
|
|
|
|
&-toggle {
|
|
position: absolute;
|
|
top: 50%;
|
|
right: $half-gutter-width;
|
|
transform: translateY(-50%);
|
|
margin: 0px;
|
|
width: pxrem(22);
|
|
height: pxrem(14);
|
|
padding: 0px;
|
|
border: 0;
|
|
border-radius: 0;
|
|
cursor: pointer;
|
|
|
|
&, &:hover, &:focus {
|
|
background-color: transparent;
|
|
}
|
|
|
|
.icon-bar {
|
|
position: absolute;
|
|
left: 0px;
|
|
margin: 0px;
|
|
width: 100%;
|
|
height: pxrem(2);
|
|
background-color: $c-text-light;
|
|
transition: all 150ms;
|
|
|
|
&:nth-child(1), &:nth-child(3) {
|
|
transform: translateY(0%) rotate(0deg);
|
|
}
|
|
|
|
&:nth-child(1) {
|
|
top: 0%;
|
|
}
|
|
|
|
&:nth-child(2) {
|
|
top: 50%;
|
|
transform: translateY(-50%);
|
|
opacity: 1;
|
|
}
|
|
|
|
&:nth-child(3) {
|
|
bottom: 0%;
|
|
}
|
|
}
|
|
|
|
&.open .icon-bar {
|
|
&:nth-child(1) {
|
|
top: 50%;
|
|
transform: translateY(-50%) rotate(45deg);
|
|
}
|
|
|
|
&:nth-child(2) {
|
|
opacity: 0;
|
|
}
|
|
|
|
&:nth-child(3) {
|
|
bottom: 50%;
|
|
transform: translateY(50%) rotate(-45deg);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
&-links {
|
|
background-color: $c-base;
|
|
opacity: 1;
|
|
transition: max-height 500ms;
|
|
|
|
@media (max-width: $nav-mobile-max) {
|
|
overflow: hidden;
|
|
z-index: 100;
|
|
position: relative;
|
|
max-height: ($nav-link-height-mobile * $nav-link-count);
|
|
|
|
&:not(.open) {
|
|
max-height: 0px;
|
|
}
|
|
}
|
|
|
|
@media (min-width: $nav-desktop-min) {
|
|
display: flex;
|
|
width: 100%;
|
|
height: $nav-height-desktop;
|
|
justify-content: flex-end;
|
|
align-items: center;
|
|
}
|
|
|
|
&-wrapper {
|
|
@media (max-width: $nav-mobile-max) {
|
|
overflow-y: auto;
|
|
max-height: calc(100vh - #{$nav-height-mobile});
|
|
}
|
|
|
|
@media (min-width: $nav-desktop-min) {
|
|
padding: 0px $grid-gutter-width 0px ($half-gutter-width + $desktop-logo-width + $logo-offset);
|
|
}
|
|
|
|
.navlink {
|
|
position: relative;
|
|
display: inline-block;
|
|
color: $c-text-light;
|
|
font-size: pxrem(14);
|
|
text-transform: uppercase;
|
|
text-decoration: none;
|
|
|
|
@media (max-width: $nav-mobile-max) {
|
|
display: block;
|
|
height: $nav-link-height-mobile;
|
|
padding: 0px pxrem(10);
|
|
background-color: $c-base;
|
|
line-height: $nav-link-height-mobile;
|
|
transition: background-color 150ms;
|
|
|
|
&:not(.active):hover {
|
|
background-color: color.adjust($c-base, $lightness: 5%);
|
|
}
|
|
}
|
|
|
|
@media (min-width: $nav-desktop-min) {
|
|
padding: pxrem(5) pxrem(20);
|
|
transition: color 150ms;
|
|
|
|
&:first-child {
|
|
padding-left: 0px;
|
|
}
|
|
|
|
&:last-child {
|
|
padding-right: 0px;
|
|
}
|
|
|
|
&:not(.active):hover {
|
|
color: color.adjust($c-text-light, $lightness: -5%);
|
|
}
|
|
}
|
|
|
|
&:hover, &:focus {
|
|
text-decoration: none;
|
|
}
|
|
|
|
span {
|
|
position: relative;
|
|
padding: pxrem(3) 0px;
|
|
|
|
&:after {
|
|
content: "";
|
|
position: absolute;
|
|
bottom: 0px;
|
|
left: 0px;
|
|
width: 100%;
|
|
height: 1px;
|
|
background-color: $c-text-light;
|
|
opacity: 0;
|
|
transition: opacity 200ms;
|
|
}
|
|
}
|
|
|
|
&.active {
|
|
pointer-events: none;
|
|
|
|
span:after {
|
|
opacity: 1;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
&-logo {
|
|
position: absolute;
|
|
top: math.div($nav-height-mobile, 2);
|
|
left: $logo-offset;
|
|
transform: translateY(-50%);
|
|
display: inline-block;
|
|
width: $mobile-logo-width;
|
|
|
|
@media (min-width: $nav-desktop-min) {
|
|
top: math.div($nav-height-desktop, 2);
|
|
width: $desktop-logo-width;
|
|
}
|
|
|
|
img {
|
|
@include img-fluid;
|
|
width: 100%;
|
|
}
|
|
}
|
|
}
|