:root { --nav-bg-color: black; --nav-text-color: white; --nav-header-bg-color: #0f0; --nav-header-text-color: black; --nav-link-active-text-color: white; --nav-link-active-bg-color: var(--main-bg-color, #404040); --nav-transition-speed: 250ms; } @media screen and (prefers-color-scheme: light) { :root { --nav-bg-color: black; --nav-text-color: white; --nav-header-bg-color: #0f0; --nav-header-text-color: black; --nav-link-active-text-color: black; --nav-link-active-bg-color: var(--main-bg-color, white); } } header { display: grid; align-items: center; width: 100%; background-color: var(--nav-bg-color); color: var(--nav-text-color); } header h1 { font-size: 18px; margin: 0; background-color: var(--nav-header-bg-color); color: var(--nav-header-text-color); } nav { overflow: hidden; font-size: larger; width: fit-content; } nav a, header h1, label[for="navtoggle"] { text-align: left; padding-left: 8px; padding-right: 8px; text-decoration: none; vertical-align: middle; height: 2em; line-height: 2em; } label[for="navtoggle"], #navtoggle { display: none; } @media screen and (width >= 600px){ header { grid-template-columns: auto 1fr; } nav { display: flex; align-items: center; } nav a[aria-current="page"], nav a:hover { color: var(--nav-link-active-text-color); background-color: var(--nav-link-active-bg-color); } nav:hover a[aria-current="page"]:has(~ a:hover) { color: var(--nav-text-color); background-color: var(--nav-bg-color); } nav:hover a[aria-current="page"]:hover { color: var(--nav-link-active-text-color); background-color: var(--nav-link-active-bg-color); } } @media screen and (width <= 600px){ header { grid-template-columns: 1fr auto; } nav { display: block; position: absolute; top: 2em; right: 0; background-color: var(--nav-bg-color); } nav a { box-sizing: border-box; display: block; text-align: center; width: 100%; } label[for="navtoggle"] { display: inline-block; } #navtoggle ~ nav a { height: 0; line-height: 2em; opacity: 0; transition: height var(--nav-transition-speed) cubic-bezier(0.23, 1, 0.32, 1), opacity var(--nav-transition-speed) cubic-bezier(0.23, 1, 0.32, 1) ; } #navtoggle:checked ~ nav a { height: 2em; line-height: 2em; opacity: 1; transition: height var(--nav-transition-speed) cubic-bezier(0.23, 1, 0.32, 1), opacity var(--nav-transition-speed) cubic-bezier(0.23, 1, 0.32, 1) ; } }