253 lines
6.0 KiB
CSS
253 lines
6.0 KiB
CSS
.nav {
|
|
--color: var(--black);
|
|
--color--active: var(--white);
|
|
--color-background: var(--black);
|
|
|
|
--button-text: var(--black);
|
|
--button-background: transparent;
|
|
--button-text--active: var(--white);
|
|
--button-background--active: var(--black);
|
|
--button-outline: var(--black);
|
|
--button-outline--active: transparent;
|
|
z-index: 10;
|
|
}
|
|
.nav--blackAndActiveIsWhite {
|
|
--color: var(--black);
|
|
--color--active: var(--black);
|
|
--color-background: var(--white);
|
|
}
|
|
.nav--whiteAndActiveIsBlack {
|
|
--color: var(--white);
|
|
--color--active: var(--white);
|
|
--color-background: var(--black);
|
|
}
|
|
.nav--whiteAndActiveIsWhite {
|
|
--color: var(--white);
|
|
--color--active: var(--black);
|
|
--color-background: var(--white);
|
|
}
|
|
.nav--whiteAndActiveIsBlack,
|
|
.nav--whiteAndActiveIsWhite {
|
|
--button-text: var(--white);
|
|
--button-background: transparent;
|
|
--button-text--active: var(--black);
|
|
--button-background--active: var(--white);
|
|
--button-outline: var(--white);
|
|
--button-outline--active: transparent;
|
|
}
|
|
.nav--showNavigationGradient,
|
|
.nav--showNavigationGradient.nav--blackAndActiveIsWhite,
|
|
.nav--showNavigationGradient.nav--whiteAndActiveIsBlack,
|
|
.nav--showNavigationGradient.nav--whiteAndActiveIsWhite {
|
|
--button-text: var(--black);
|
|
--button-background: var(--green);
|
|
--button-text--active: var(--black);
|
|
--button-background--active: var(--white);
|
|
--button-outline: transparent;
|
|
--button-outline--active: transparent;
|
|
}
|
|
|
|
.nav {
|
|
position: absolute;
|
|
width: 100%;
|
|
height: 120px;
|
|
-moz-osx-font-smoothing: grayscale;
|
|
-webkit-font-smoothing: antialiased;
|
|
}
|
|
.nav__container {
|
|
align-items: center;
|
|
}
|
|
@media (min-width: 800px) {
|
|
.nav {
|
|
height: 200px;
|
|
}
|
|
}
|
|
.nav__logo {
|
|
z-index: 3;
|
|
}
|
|
.nav__logo img {
|
|
max-height: 80px;
|
|
max-width: 100%;
|
|
object-fit: contain;
|
|
}
|
|
.nav__links {
|
|
visibility: hidden;
|
|
padding-top: var(--space-20);
|
|
padding-bottom: var(--space-10);
|
|
background: var(--green);
|
|
transition: clip-path 0.3s, visibility 0.3s;
|
|
clip-path: polygon(0% 0%, 100% 0%, 100% 0%, 0% 0%);
|
|
}
|
|
@media (max-width: 1079px) {
|
|
.nav__container {
|
|
pointer-events: none;
|
|
}
|
|
.nav__logo,
|
|
.nav__menu-button {
|
|
pointer-events: all;
|
|
}
|
|
.nav[aria-expanded="true"] .nav__container {
|
|
pointer-events: all;
|
|
}
|
|
.nav[aria-expanded="true"] .nav__links {
|
|
z-index: 2;
|
|
clip-path: polygon(
|
|
0% 0%,
|
|
100% 0%,
|
|
100% calc(100% - calc(var(--diagonal) / 2)),
|
|
0% 100%
|
|
);
|
|
}
|
|
}
|
|
@media (min-width: 1080px) {
|
|
.nav__links {
|
|
visibility: visible;
|
|
padding: 0;
|
|
}
|
|
}
|
|
@media (max-width: 1079px) {
|
|
.nav[aria-expanded="true"] .nav__links {
|
|
visibility: visible;
|
|
}
|
|
}
|
|
.nav__item {
|
|
color: var(--color);
|
|
font-family: var(--headline);
|
|
font-weight: var(--headline-extrabold);
|
|
text-decoration: none;
|
|
}
|
|
@media (max-width: 1079px) {
|
|
.nav__item {
|
|
color: var(--black);
|
|
font-size: 1.25rem;
|
|
}
|
|
}
|
|
.nav__item--active {
|
|
position: relative;
|
|
color: var(--color--active);
|
|
z-index: 1;
|
|
}
|
|
.nav__item--active::before {
|
|
position: absolute;
|
|
top: -40%;
|
|
left: -15%;
|
|
content: "";
|
|
width: 130%;
|
|
height: calc(180% + 5px);
|
|
background-color: var(--color-background);
|
|
transform: rotate(-1.5deg);
|
|
z-index: -1;
|
|
}
|
|
.nav__link:hover,
|
|
.nav__item--active .nav__link,
|
|
.nav__item:focus .nav__link {
|
|
border-bottom: 0.15em solid currentColor;
|
|
}
|
|
.nav__item:focus {
|
|
outline: 0;
|
|
}
|
|
.nav__menu-button {
|
|
justify-self: flex-end;
|
|
grid-row: 2 / 3;
|
|
grid-column: 11 / 16;
|
|
padding: 0.75em 1.25em;
|
|
font-size: 0.8rem;
|
|
font-family: var(--headline);
|
|
font-weight: var(--headline-extrabold);
|
|
text-decoration: none;
|
|
background: transparent;
|
|
border: none;
|
|
color: var(--button-text);
|
|
background: var(--button-background);
|
|
box-shadow: inset 0 0 0 2px var(--button-outline);
|
|
border-radius: 100px;
|
|
cursor: pointer;
|
|
z-index: 3;
|
|
}
|
|
.nav[aria-expanded="true"] .nav__menu-button {
|
|
box-shadow: inset 0 0 0 2px var(--black);
|
|
}
|
|
[data-whatinput="mouse"] .nav__menu-button {
|
|
outline: 0;
|
|
}
|
|
|
|
@media (min-width: 600px) {
|
|
.nav__menu-button {
|
|
grid-column: 14 / 16;
|
|
}
|
|
}
|
|
@media (min-width: 1080px) {
|
|
.nav__links {
|
|
clip-path: none;
|
|
background: transparent;
|
|
}
|
|
.nav__menu-button {
|
|
display: none;
|
|
}
|
|
.nav__item:last-child {
|
|
padding: 0.75em 1.25em;
|
|
font-family: var(--headline);
|
|
font-weight: var(--headline-extrabold);
|
|
text-decoration: none;
|
|
color: var(--color);
|
|
background: transparent;
|
|
border: none;
|
|
border-radius: 100px;
|
|
cursor: pointer;
|
|
color: var(--button-text);
|
|
background: var(--button-background);
|
|
box-shadow: inset 0 0 0 2px var(--button-outline);
|
|
transition: transform 0.2s ease-out;
|
|
}
|
|
.nav__item.nav__item--active {
|
|
color: var(--color--active);
|
|
background: var(--color);
|
|
}
|
|
.nav__item--active:last-child::before {
|
|
content: initial;
|
|
}
|
|
.nav__item--active:last-child .nav__link,
|
|
.nav__item:last-child:hover .nav__link,
|
|
.nav__item:last-child:focus .nav__link {
|
|
border: none;
|
|
}
|
|
.nav__item:last-child:hover,
|
|
.nav__item:last-child:focus {
|
|
color: var(--button-text--active);
|
|
background: var(--button-background--active);
|
|
box-shadow: inset 0 0 0 2px var(--button-outline--active);
|
|
}
|
|
.nav__item:last-child:active {
|
|
transform: scale(0.96);
|
|
}
|
|
}
|
|
@media (max-width: 1079px) {
|
|
.nav[aria-expanded="true"].nav--whiteAndActiveIsWhite,
|
|
.nav[aria-expanded="true"].nav--whiteAndActiveIsBlack {
|
|
--color: var(--black);
|
|
--color--active: var(--black);
|
|
--color-background: var(--white);
|
|
}
|
|
.nav[aria-expanded="true"].nav--whiteAndActiveIsWhite .nav__logo,
|
|
.nav[aria-expanded="true"].nav--whiteAndActiveIsBlack .nav__logo {
|
|
filter: invert(1);
|
|
transition: filter 0.2s;
|
|
}
|
|
}
|
|
.nav--whiteAndActiveIsBlack .nav__logo,
|
|
.nav--whiteAndActiveIsWhite .nav__logo {
|
|
filter: none;
|
|
}
|
|
|
|
.nav--showNavigationGradient {
|
|
background: linear-gradient(
|
|
to bottom,
|
|
rgba(255, 255, 255, 0.9),
|
|
rgba(255, 255, 255, 0)
|
|
);
|
|
}
|
|
.nav--showNavigationGradient.nav--whiteAndActiveIsBlack,
|
|
.nav--showNavigationGradient.nav--whiteAndActiveIsWhite {
|
|
background: linear-gradient(to bottom, rgba(0, 0, 0, 0.9), rgba(0, 0, 0, 0));
|
|
}
|