.header { --item-size: 3rem; position: relative; display: grid; grid-template-columns: 1fr 1fr; align-items: center; padding: var(--s-4); z-index: 10; background-color: var(--bg); } .logoContainer { background-color: var(--bg-lighter); background-image: url(/svg/background-pattern.svg); display: grid; place-items: center; padding: var(--s-1); border-radius: var(--rounded); justify-self: flex-start; cursor: pointer; width: var(--item-size); min-width: var(--item-size); height: var(--item-size); min-height: var(--item-size); } .logo { max-width: 100%; max-height: 100%; } .avatar { border-radius: var(--rounded); width: var(--item-size); min-width: var(--item-size); height: var(--item-size); } .searchContainer { display: none; } .rightContainer { display: flex; gap: var(--s-4); justify-self: flex-end; } .nav { display: none; justify-content: center; background-color: var(--bg-lighter); background-image: url(/svg/background-pattern.svg); } .navItems { background-color: var(--bg-lighter); display: inline-flex; justify-content: center; gap: var(--s-12); grid-template-columns: repeat(4, 100px); padding: var(--s-4) var(--s-8); } .navItemColumn { display: flex; flex-direction: column; gap: var(--s-2); } .navLink { display: flex; align-items: center; gap: var(--s-2); color: var(--text); text-decoration: none; font-size: var(--fonts-sm); font-weight: var(--bold); text-transform: capitalize; transition: 0.2s transform; } .navLink:hover { transform: translateX(2px); } .navGroupTitle { text-transform: uppercase; font-weight: var(--bold); color: var(--text-lighter); font-size: var(--fonts-xxs); } .navIcon { width: 2rem; height: 2rem; } .main { padding-top: var(--s-8); } .transformingBurger { display: flex; width: 3rem; height: 3rem; flex-direction: column; align-items: center; justify-content: center; padding: 0.5rem; border: 2px solid; border-color: var(--bg-lighter); background-color: transparent; border-radius: 50%; color: inherit; cursor: pointer; gap: 2px; } @media only screen and (min-width: 700px) { .transformingBurger { display: none; } } .topLine { transform: none; transform-origin: 16px 10px; transition-duration: 150ms; transition-property: transform; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); } .topLine[data-expanded="true"] { transform: translateY(7px) rotate(45deg); } .middleLine { opacity: 1; transition-duration: 150ms; transition-property: opacity; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); } .middleLine[data-expanded="true"] { opacity: 0; } .bottomLine { transform: none; transform-origin: 16px 22px; transition-duration: 150ms; transition-property: transform; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); } .bottomLine[data-expanded="true"] { transform: translateY(-5px) rotate(-45deg); } .searchInputContainer { display: flex; height: 1rem; align-items: center; justify-content: center; padding: var(--s-5) var(--s-4); background-color: var(--bg-lighter); border-radius: var(--rounded); } .searchInputContainer:focus-within { outline: 2px solid var(--theme); } .searchInput { width: 12rem; height: 2rem; border: none; background-color: var(--bg-lighter); font-size: var(--fonts-sm); outline: none; color: var(---text); flex-grow: 1; } .searchInput::placeholder { color: var(--text-lighter); letter-spacing: 0.5px; font-weight: var(--semi-bold); } .searchInputIcon { height: 1.25rem; color: var(--text); } .mobileNavContainer { position: absolute; bottom: 100vh; width: 100%; height: 100%; transition: bottom 0.5s; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); background-image: url(/svg/background-pattern.svg); background-color: var(--bg-lighter); z-index: 5; overflow-y: auto; padding-bottom: var(--s-6); /* TODO: same for Safari */ overscroll-behavior: contain; } .mobileNavContainer[data-expanded="true"] { bottom: 0; } .mobileNavTopAction { display: grid; gap: var(--s-4); place-items: center; background-color: var(--bg); padding-top: var(--s-24); padding-bottom: var(--s-8); } .mobileNavLinksContainer { display: grid; justify-content: center; grid-auto-columns: 1fr; grid-auto-rows: 4rem; } .mobileNavGroupTitle { text-transform: uppercase; align-self: flex-end; justify-self: center; padding: var(--s-2) var(--s-3); margin-bottom: var(--s-1); background-color: var(--bg); font-weight: var(--bold); border-radius: var(--rounded); } .mobileNavLink { display: flex; align-items: center; gap: var(--s-2); text-transform: capitalize; border-top: 3px solid var(--bg-lighter); font-weight: var(--bold); background-color: var(--bg); padding: 0 var(--s-2); font-size: var(--fonts-sm); margin: 0 var(--s-12); color: var(--text); text-decoration: none; } .mobileNavLink[data-order="first"] { border-radius: var(--rounded) var(--rounded) 0 0; } .mobileNavLink[data-order="last"] { border-radius: 0 0 var(--rounded) var(--rounded); } @media screen and (min-width: 640px) { .header { --item-size: 38px; grid-template-columns: 1fr 1fr 1fr; } .searchContainer { display: block; } .nav { display: flex; } .mobileNavContainer { display: none; } } @media screen and (min-width: 480px) { .mobileNavLink { margin: 0 var(--s-24); } }