body { width: 100%; height: 100%; margin: 0 auto; background-color: var(--background-outer); } a { color: var(--link); text-decoration: none; background-position: 0% 100%; background-repeat: no-repeat; background-size: 0% 2px; padding-bottom: 2px; transition: background-size 0.25s ease-in-out; background-image: linear-gradient(var(--link-underline), var(--link-underline)); } a:hover { background-size: 100% 2px; } /* set an anchor's class to `no-underline` to disable all of this */ .no-underline { background: none !important; padding-bottom: 0; } /* * make SVG icons relative to surrounding text: * https://github.com/twitter/twemoji#inline-styles */ .icon { display: inline-block; height: 1.2em; width: 1.2em; vertical-align: -0.2em; } /* all code */ code { font-size: 0.925em; page-break-inside: avoid; border: 1px solid var(--kinda-light); } /* inline code in paragraphs/elsewhere (single backticks) */ :not(pre) code { padding: 0.1em 0.25em; } /* code blocks */ pre code { display: block; overflow-x: auto; padding: 1em; tab-size: 2; } /* sub-heading anchor styles */ .h-anchor { margin: 0 0.25em; padding: 0 0.25em; color: var(--medium-light); background: none; font-weight: 300; opacity: 0; /* overridden on hover */ user-select: none; } .h-anchor::before { content: "\0023"; /* pound sign `#`, done here to keep content DOM cleaner */ } .h-anchor:hover { color: var(--link); } /* make anchor `#` link show up on hover over the corresponding heading */ h2:hover .h-anchor, h3:hover .h-anchor, h4:hover .h-anchor { opacity: 1; } /* offset (approximately) with sticky header so jumped-to content isn't hiding behind it */ h2 { scroll-margin-top: 4em; } h3, h4 { scroll-margin-top: 5em; } @media screen and (max-width: 768px) { h2 { scroll-margin-top: 5em; } h3, h4 { scroll-margin-top: 6em; } } /* https://web.dev/prefers-reduced-motion/#(bonus)-forcing-reduced-motion-on-all-websites */ @media (prefers-reduced-motion: reduce) { *, ::before, ::after { animation-delay: -1ms !important; animation-duration: 1ms !important; animation-iteration-count: 1 !important; transition-duration: 0s !important; transition-delay: 0s !important; } }