/* Import the true normalize.css library for consistency across browsers */ @import url("https://necolas.github.io/normalize.css/8.0.1/normalize.css"); /* Document form */ :root { /* The defining em-size of the document, in rem. */ --base-scale: 1rem; /* The width of the document, in em. */ --document-width: 50em; /* The basic color of the page, used for all values below. You can use this for a quick, single-color theme. */ --base-color: 0, 0%; /* The font used in the document. */ --font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; /* The weight of the font used in the document. */ --font-weight: normal; /* The font used for headers in the document. */ --header-font-family: var(--font-family); /* The weight of the font used for headers in the document. */ --header-font-weight: bold; /* The underlay color of the document. */ --underlay-color: hsl(var(--base-color), 10%); /* The page color. */ --background-color: hsl(var(--base-color), 15%); /* The foreground color of the page. */ --color: hsl(var(--base-color), 85%); /* The accent color of the page. */ --accent-color: hsl(var(--base-color), 30%); /* The background-adjacent accent color of the page. */ --accent-color-bg: hsl(var(--base-color), 75%); /* The foreground accent color of the page. */ --accent-color-fg: hsl(var(--base-color), 95%); /* The width of the borders used on certain elements. */ --border-width: calc(1em / 16); /* The style of the borders used on certain elements. */ --border-style: solid; /* The color of the borders used on certain elements. */ --border-color: var(--color); /* The radius of the borders used on certain elements. */ --border-radius: 0; } @media (prefers-color-scheme: light) { :root { /* The underlay color of the document. */ --underlay-color: hsl(var(--base-color), 90%); /* The page color. */ --background-color: hsl(var(--base-color), 80%); /* The foreground color of the page. */ --color: hsl(var(--base-color), 15%); /* The accent color of the page. */ --accent-color: hsl(var(--base-color), 70%); /* The background-adjacent accent color of the page. */ --accent-color-bg: hsl(var(--base-color), 25%); /* The foreground accent color of the page. */ --accent-color-fg: hsl(var(--base-color), 5%); /* The color of the borders used on certain elements. */ --border-color: var(--color); } } html.base { /* --base-color: 0, 0% !important; */ /* --font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol" !important; --font-weight: normal !important; --header-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol" !important; --header-font-weight: bold !important; */ --underlay-color: #fff !important; --background-color: transparent !important; --color: #000 !important; --accent-color: #c0c0c0 !important; --accent-color-bg: #000 !important; --accent-color-fg: #000 !important; --border-width: calc(1em / 16) !important; --border-style: solid !important; --border-color: var(--color) !important; --border-radius: 0 !important; } @media (prefers-color-scheme: dark) { html.base { --underlay-color: #000 !important; --background-color: transparent !important; --color: #fff !important; --accent-color: #404040 !important; --accent-color-bg: #fff !important; --accent-color-fg: #fff !important; --border-color: var(--color); } } @media (forced-colors: active) { :root { /* --base-color: 0, 0% !important; */ /* --font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol" !important; --font-weight: normal !important; --header-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol" !important; --header-font-weight: bold !important; */ --underlay-color: #fff !important; --background-color: transparent !important; --color: #000 !important; --accent-color: #c0c0c0 !important; --accent-color-bg: #000 !important; --accent-color-fg: #000 !important; --border-width: calc(1em / 16) !important; --border-style: solid !important; --border-color: var(--color) !important; --border-radius: 0 !important; } } /* Size and type normalize */ html { font-size: var(--base-scale); line-height: 1em; background-color: var(--underlay-color); color: var(--color); } body { width: 100vw; background-color: var(--background-color); max-width: var(--document-width); min-height: 100vh; margin: auto; padding-inline: 2em; padding-block: 1em; } main { margin-block: 1em; } h1 { font-family: var(--header-font-family); font-weight: var(--header-font-weight); font-size: 2em; line-height: 1.5em; margin: 0; margin-block: 0.125em; } h2 { font-family: var(--header-font-family); font-weight: var(--header-font-weight); font-size: 1.5em; line-height: 1.25em; margin: 0; margin-block: 0.5em; } h3 { font-family: var(--header-font-family); font-weight: var(--header-font-weight); font-size: 1.1em; line-height: 1.25em; margin: 0; margin-block: 0.5em; } h4 { font-family: var(--header-font-family); font-weight: var(--header-font-weight); font-size: 1em; line-height: 1.25em; margin: 0; margin-block: 0.5em; } p { font-size: 1em; line-height: 1.5em; margin-inline: 0; margin-block: 0.5em; } img { max-width: 100%; } ul, ol { padding: 0; padding-inline-start: 1em; margin: 0; margin-block: 0.5em; } li { margin-inline: 0; line-height: 1.5em; margin-block: 0.5em; } small { font-size: 0.75em; } big { font-size: 1.5em; } code { font-size: 1em; line-height: 1.25em; font-family: monospace; } pre { display: inline-block; width: 100%; overflow-x: auto; font-size: 1em; line-height: 1.25em; padding: 0.5em; margin-block: 0.5em; box-sizing: border-box; } hr { border: none; border-top: var(--border-width) var(--border-style) var(--border-color); background-color: transparent; margin-inline: 0; margin-block: 0.25em; } blockquote { margin-inline: 1em; margin-block: 0.5em; } /* Pseudo normalize */ ::selection { color: var(--background-color); background-color: var(--color); } /* Form normalize */ html { font-family: var(--font-family); font-weight: var(--font-weight); } * { box-sizing: border-box; } *:focus { outline: 2px solid var(--accent-color-bg); } fieldset { border: var(--border-width) var(--border-style) var(--border-color); border-radius: var(--border-radius); padding-inline: 0.5em; padding-block: 0.25em; margin-inline: 0; margin-block: 0.5em; font-size: 1em; background-color: var(--background-color); color: var(--color); } legend { padding-inline: var(--border-width); } summary { font-size: 1em; line-height: 1.5em; margin-inline: 0; margin-block: 0.5em; } iframe { border: var(--border-width) var(--border-style) var(--border-color); border-radius: var(--border-radius); width: 100%; aspect-ratio: 16/9; } /* Interactive normalize */ a { color: var(--accent-color-bg); text-decoration: underline; } a:hover, a:focus { opacity: 0.8; } a:active { opacity: 0.5; } input, select, textarea { font-family: inherit; border: var(--border-width) var(--border-style) var(--border-color); border-radius: var(--border-radius); padding-inline: 0.5em; padding-block: 0.25em; margin-inline: 0; margin-block: 0.25em; font-size: 1em; vertical-align: middle; background-color: var(--background-color); color: var(--color); } input:disabled { opacity: 0.5; } button, input[type="button"], input[type="submit"], input[type="reset"] { border: var(--border-width) var(--border-style) var(--border-color); border-radius: var(--border-radius); padding-inline: 0.5em; padding-block: 0.25em; margin-inline: 0; margin-block: 0.25em; font-size: 1em; line-height: 1.25em; font-family: inherit; background-color: var(--accent-color); color: var(--accent-color-fg); } button[data-outlined], input[type="button"][data-outlined], input[type="submit"][data-outlined], input[type="reset"][data-outlined] { border: var(--border-width) var(--border-style) var(--border-color); border-radius: var(--border-radius); background-color: var(--background-color); color: var(--accent-color); } button:hover, input[type="button"]:hover, input[type="submit"]:hover, input[type="reset"]:hover, button:focus, input[type="button"]:focus, input[type="submit"]:focus, input[type="reset"]:focus { opacity: 0.8; } button:active, input[type="button"]:active, input[type="submit"]:active, input[type="reset"]:active { opacity: 0.5; } button:disabled, input[type="button"]:disabled, input[type="submit"]:disabled, input[type="reset"]:disabled { opacity: 0.5; } /* -- Checkbox styling */ label.checkbox { display: inline-block; position: relative; margin-inline: 0; margin-block: 0.25em; vertical-align: middle; } label.checkbox input[type="checkbox"] { /* visibility: hidden; */ opacity: 0; width: 0; height: 0; position: absolute; top: 0; left: 0; } label.checkbox input[type="checkbox"] + span.checkbox { display: inline-block; width: 1em; height: 1em; line-height: 1em; padding-inline: 0.25em; padding-block: 0.25em; box-sizing: content-box; border: var(--border-width) var(--border-style) var(--border-color); border-radius: var(--border-radius); color: transparent; text-align: center; user-select: none; vertical-align: middle; } label.checkbox input[type="checkbox"]:focus + span.checkbox { outline: 2px solid var(--accent-color-bg); } label.checkbox input[type="checkbox"]:checked + span.checkbox { background-color: var(--accent-color); border: var(--border-width) var(--border-style) var(--border-color); border-radius: var(--border-radius); color: var(--accent-color-fg); } /* -- Range styling */ input[type="range"] { -webkit-appearance: none; appearance: none; box-sizing: content-box; position: relative; display: inline-block; width: 10em; height: 1em; line-height: 1em; border: var(--border-width) var(--border-style) var(--border-color); border-radius: var(--border-radius); padding-inline: 0; padding-block: 0.25em; margin-inline: 0; margin-block: 0.25em; } input[type="range"]:focus { outline: none; } input[type="range"]::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; border: var(--border-width) var(--border-style) var(--border-color); border-radius: var(--border-radius); background-color: var(--accent-color); height: 1.5em; box-sizing: content-box; width: 1em; } input[type="range"]:focus::-webkit-slider-thumb { outline: 2px solid var(--accent-color-bg); } input[type="range"]::-moz-range-thumb { border: var(--border-width) var(--border-style) var(--border-color); border-radius: var(--border-radius); background-color: var(--accent-color); height: 1.5em; box-sizing: content-box; width: 1em; } input[type="range"]:focus::-moz-range-thumb { outline: 2px solid var(--accent-color-bg); }