.menu { position: fixed; top: 0; right: 0; text-align: right; width: 100vw; background-color: var(--purple); z-index: 1000; } .menu__label { position: absolute; top: 0; right: 0; font-size: 4rem; opacity: 1; color: var(--green); z-index: 999; transition: opacity 0.2s ease-in-out; } .menu__label--close { font-size: 6rem; color: var(--green); } .menu__burger { display: inline-block; } .menu__links { list-style-type: none; margin: 0; padding: 20px; display: flex; flex-flow: column nowrap; justify-content: center; position: absolute; top: -50%; left: 50%; height: 100vh; width: 100vw; transform: translate(-50%, -100%); text-align: center; transition: transform 0.4s ease-in-out; z-index: 99; } .menu__link { display: block; padding: 10px; font-size: 3rem; color: var(--white); transition: color 0.2s ease-in-out; } .menu__link:visited { color: white; } .menu__link:hover, .menu__link:focus { color: var(--green); transition: color 0.2s ease-in-out; } .menu__link:active { border-bottom: 1px solid white; } .menu input:focus + .menu__label { color: var(--dark); transition: color 0.2s ease-in-out; } .menu input:checked + .menu__label { opacity: 0; transition: opacity 0.2s ease-in-out; } .menu input:checked ~ .menu__links { top: 0; transform: translate(-50%, 0); transition: transform 0.4s ease-in-out; } .menu__links:focus-within { top: 0; transform: translate(-50%, 0); transition: transform 0.4s ease-in-out; } @media screen and (min-width: 768px) { .menu__label { border: 0 !important; clip: rect(1px, 1px, 1px, 1px) !important; height: 1px !important; overflow: hidden !important; padding: 0 !important; position: absolute !important; width: 1px !important; } .menu__links { position: static; transform: none; width: auto; height: auto; flex-flow: row wrap; justify-content: flex-end; max-width: 1004px; margin: 0 auto; } .menu__links:focus-within { transform: none; } .menu__link { font-size: 2rem; } .menu__label--close { border: 0 !important; clip: rect(1px, 1px, 1px, 1px) !important; height: 1px !important; overflow: hidden !important; padding: 0 !important; position: absolute !important; width: 1px !important; } }