:root { --primer-color-deep: 0, 128, 255; --primer-color-light: 135, 255, 255; --color-deep: rgba(var(--primer-color-deep)); --color-light: rgba(var(--primer-color-light)); --border-style-width: 1px; --border-style: solid var(--border-style-width) rgba(var(--primer-color-deep), .2); --padding: 10px; --running-size: 70px; --max-width: 1400px; } /* # Cornerstones */ * { margin: 0; color: inherit; font-size: inherit; box-sizing: border-box; font-family: monospace; } body { font-size: 15px; overflow-x: hidden; overscroll-behavior: none; } body.menuOpen { overflow: hidden; } a { color: inherit; display: contents; text-decoration: none; } /* # Components */ :is(h1, h2, h3, p, li) > a { --underline-tickness: 3px; display: initial; text-decoration: underline; text-decoration-color: var(--color-accent); text-underline-offset: var(--underline-tickness); text-decoration-thickness: var(--underline-tickness); } @media (hover: hover) { :is(h1, h2, h3, p, li) > a:hover { text-decoration-color: var(--color-deep); } } h1 { font-size: 30px; color: var(--color-accent); } h2 { font-size: 25px; } h3 { font-size: 18px; } /* ## Container */ container { margin: auto; height: 100%; display: flex; width: clamp(200px, 100%, 80vw); max-width: var(--max-width); align-items: center; gap: var(--padding); padding: var(--padding) 0; } container.split { display: grid; grid-template-columns: repeat(2, 1fr); } container.split.reverse div:last-child { order: -1; } container.split > div { display: flex; flex-direction: column; align-items: baseline; gap: var(--padding); } /* ## Button */ button { border: unset; fill: black; cursor: pointer; padding: 10px 15px; border-radius: 4px; background-color: rgba(0, 0, 0, 0); border: solid var(--border-style-width) transparent; } button.solid { fill: white; color: white; background-color: var(--color-deep); } button.shade { background-color: rgba(0, 0, 0, .05); } @media (hover: hover) { button:hover { background-color: rgba(var(--primer-color-light), .3); } button.solid:hover { color: var(--color-light); background-color: var(--color-deep); } } button svg { fill: inherit; width: 1em; } /* # Content */ /* ## Runners */ :is(header, footer) ul { display: flex; padding-left: 0; list-style: none; gap: var(--padding); } :is(header, footer) ul:last-of-type { margin-left: auto; } :is(header, footer) container > button { display: none; margin-left: auto; } /* ### Header */ header { --border-width: 2px; top: 0px; position: sticky; background-color: white; height: calc(var(--running-size) + var(--border-style-width)); border-bottom: var(--border-style); z-index: 1000; } header .logo { height: 40px; padding: 5px; border-radius: 4px; background-color: var(--color-deep); } [vv-top-page="/"] header:not(.transparent) a[href="/"] button, [vv-top-page="/help"] header a[href="/help"] button, [vv-top-page^="/docs"] header a[href="/docs"] button, [vv-top-page="/demos"] header a[href="/demos"] button, [vv-top-page="/why"] header a[href="/why"] button { font-weight: bold; color: var(--color-deep); border: var(--border-style); } /* ### Footer */ footer { padding: var(--padding); color: var(--color-light); background-color: var(--color-deep); } /* ### Menu */ menu { display: none; position: fixed; top: var(--running-size); left: 0; width: 100svw; padding: calc(var(--padding) * 2); height: calc(100svh - var(--running-size)); background-color: var(--color-deep); } body.menuOpen menu { display: initial; } menu ul { list-style: none; padding-left: unset; } menu button { color: white; width: 100%; margin-top: var(--padding); } /* # Size queries */ @media (max-width: 950px) { container { min-width: unset; width: 100%; padding: calc(var(--padding) * 2); } container.split { display: flex; flex-direction: column; } container.split.reverse { flex-direction: column-reverse; } header ul button.solid, :is(header, footer) ul:not(:last-of-type) { display: none; } :is(header, footer) container > button { display: initial; } footer :is(container, ul) { flex-direction: column; } footer button, footer ul:last-of-type { width: 100%; margin-left: unset; } } @media (min-width: 950px) { body.menuOpen menu { display: none; } }