.navbar-wrapper { background: #fff; position: sticky; top: 0; z-index: 100; &.shadow { box-shadow: var(--elevation-4); } transition: 0.5s box-shadow; } .navbar { @extend .frame; display: flex; align-items: center; a { text-decoration: none; color: inherit; } .brand { flex-grow: 1; font-size: 0; img { height: 2rem; } } .menu { display: none; @media screen and (max-width: 40rem) { display: block; appearance: none; color: $color-primary; font-size: 2rem; &::before { content: "menu"; } &:checked::before { content: "close"; } &:checked + .links { display: block; } } } .brand, .menu { // mobile position: relative; z-index: 10; } .links { font-weight: 700; color: $color-primary; display: flex; align-items: center; @media screen and (max-width: 40rem) { flex-direction: column; align-items: stretch; display: none; position: absolute; z-index: 5; top: 0; left: 0; width: 100%; padding-top: 6rem; background: #fff; font-size: 1.5em; box-shadow: var(--elevation-8); } } .link { margin-left: 1.5rem; @media screen and (max-width: 40rem) { margin-bottom: 1.5rem; margin-left: 1.5rem; margin-right: 1.5rem; } } .button { background: $color-primary; color: #fff; line-height: 1; @media screen and (max-width: 40rem) { text-align: center; font-size: 1.25rem; padding-top: 0.75rem; padding-bottom: 0.75rem; } padding: 0.5rem 1.5rem; border-radius: 2rem; } }