:root { /* background */ --axiom-color-background: #fff; --axiom-color-background-secondary: #e2e2e2; /* text */ --axiom-font-family-sans: "Inter", "Arial", sans; --axiom-font-family-serif: serif; /* color */ --axiom-color: #373c44; --axiom-color-title: #2d3138; --axiom-color-muted: #646b79; --axiom-color-link: #0172ad; --axiom-color-selection: #029ae840; /* elements */ --axiom-body-margin: 5vw; --axiom-color-border: #cfd5e2; --axiom-border: 1px solid var(--axiom-color-border); --axiom-padding: 1rem; --axiom-border-radius: 0.4rem; /* buttons */ --axiom-color-button: #0172ad; --axiom-color-button-fg: #fff; /* icons */ --axiom-icon-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(136, 145, 164)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E"); --axiom-icon-close: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(136, 145, 164)' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'%3E%3C/line%3E%3Cline x1='6' y1='6' x2='18' y2='18'%3E%3C/line%3E%3C/svg%3E"); --axiom-icon-loading: url("data:image/svg+xml,%3Csvg fill='none' height='24' width='24' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' %3E%3Cstyle%3E g %7B animation: rotate 2s linear infinite; transform-origin: center center; %7D circle %7B stroke-dasharray: 75,100; stroke-dashoffset: -5; animation: dash 1.5s ease-in-out infinite; stroke-linecap: round; %7D @keyframes rotate %7B 0%25 %7B transform: rotate(0deg); %7D 100%25 %7B transform: rotate(360deg); %7D %7D @keyframes dash %7B 0%25 %7B stroke-dasharray: 1,100; stroke-dashoffset: 0; %7D 50%25 %7B stroke-dasharray: 44.5,100; stroke-dashoffset: -17.5; %7D 100%25 %7B stroke-dasharray: 44.5,100; stroke-dashoffset: -62; %7D %7D %3C/style%3E%3Cg%3E%3Ccircle cx='12' cy='12' r='10' fill='none' stroke='rgb(136, 145, 164)' stroke-width='4' /%3E%3C/g%3E%3C/svg%3E"); } @media (prefers-color-scheme: dark) { :root { /* background */ --axiom-color-background: #13171F; --axiom-color-background-secondary: #2a3140; /* color */ --axiom-color: #c2c7d0; --axiom-color-title: #e0e3e7; --axiom-color-muted: #7b8495; --axiom-color-link: #01aaff; --axiom-color-selection: #01aaff30; /* elements */ --axiom-color-border: #2a3140; } } @media screen and (width <= 768px) { button:not([rel="prev"]) { width: 100% !important; } } body { background-color: var(--axiom-color-background); color: var(--axiom-color); font-family: var(--axiom-font-family-sans); text-align: left; line-height: 1.5rem; height: 100vh; width: 56rem; max-width: 90vw; margin: 0 var(--axiom-body-margin); } main { padding: var(--axiom-padding) 0; } ::selection { background-color: var(--axiom-color-selection); } h1, h2, h3, h4, h5, h6 { --axiom-title-font-family: var(--axiom-font-family-sans); --axiom-title-text-align: left; --axiom-title-color: var(--axiom-color-title); font-family: var(--axiom-title-font-family); color: var(--axiom-title-color); text-align: var(--axiom-title-text-align); } h1 { line-height: 2.4rem; } h2 { line-height: 2rem; } h3 { line-height: 1.6rem; } a { text-decoration: none; color: var(--axiom-color-link); } strong, em, sub, sup { color: var(--axiom-color); } header { padding: var(--axiom-padding) 0; } .carousel { display: flex; gap: var(--axiom-padding); overflow-x: auto; max-width: 100%; } .carousel > * { flex: 1 1 0; min-width: min-content; } nav { display: flex; justify-content: space-between; align-items: center; } nav > *:not(:last-child) { padding-right: var(--axiom-padding); } nav ul { padding: 0; display: flex; justify-content: space-between; list-style: none; } nav ul li:not(:last-child) { padding-right: var(--axiom-padding); } .overflow-auto { overflow: auto; } .body-width { width: calc(100vw - (var(--axiom-body-margin) * 2)); overflow-x: auto; } .muted { color: var(--axiom-color-muted); } body img { display: block; width: 100%; max-width: 38rem; margin: 0 auto; padding: 1rem 0; } form { display: flex; flex-direction: column; } form div { display: flex; justify-content: space-between; align-items: center; } label { color: var(--axiom-color); } input, button, select, textarea { font-family: var(--axiom-font-family-sans); box-sizing: border-box; color: var(--axiom-color); white-space: nowrap; font-size: 1.1rem; width: 100%; margin: calc(var(--axiom-padding) * .5) 0; padding: calc(var(--axiom-padding) * .5) calc(var(--axiom-padding) * 0.8); border: var(--axiom-border); border-radius: var(--axiom-border-radius); background-color: #00000002; } textarea { resize: vertical; white-space: pre-wrap; min-height: 2em; max-height: 65vh; overflow-y: auto; } canvas { /* TODO: canvas */ } button { width: max-content; font-weight: 600; background-color: var(--axiom-color-button); border-color: var(--axiom-color-button); color: var(--axiom-color-button-fg); cursor: pointer; } button.outline { background-color: #0000; color: var(--axiom-color-button); } [type="checkbox"][role="switch"] { font-size: inherit; appearance: none; margin: 0.2em 0; padding: 1em; cursor: pointer; position: relative; width: 3.8em; height: 100%; border: var(--axiom-border); border-radius: 2em; outline: none; background-color: #ccc; transition: background .2s; } [type="checkbox"][role="switch"]::after { content: ''; position: absolute; top: 0.97em; left: 28%; transform: translate(-50%, -50%); border-radius: 50%; height: 1.55em; width: 1.55em; background-color: #fff; transition: left .2s; } [type="checkbox"][role="switch"]:checked { background-color: var(--axiom-color-link); border-color: var(--axiom-color-link); } [type="checkbox"][role="switch"]:checked::after { left: 72%; } footer { padding: var(--axiom-padding) 0; } details { padding: calc(var(--axiom-padding) * .5) 0; } details summary { list-style-type: none; cursor: pointer; } details summary::after { width: 1rem; height: 1rem; float: right; transform: rotate(-90deg); background-image: var(--axiom-icon-chevron); background-size: 1rem auto; background-repeat: no-repeat; content: ""; } details[open] summary::after { transform: rotate(0deg); } table { color: var(--axiom-color); width: 100%; margin: var(--axiom-padding) 0; border-collapse: collapse; table-layout: auto; } tbody tr:nth-child(odd) { background: #00000002; } th, td { font-size: 0.8rem; padding: 0.1rem 0.4rem; white-space: nowrap; border-bottom: var(--axiom-border); } th > input, td > input { all: unset; font-weight: normal; max-width: 10em; } dialog[open] { display: flex; z-index: 999; position: fixed; inset: 0; align-items: center; justify-content: center; width: inherit; min-width: 100%; height: inherit; min-height: 100%; padding: 0; border: 0; backdrop-filter: blur(0.375rem); background-color: #00000008; } dialog > article { padding: var(--axiom-padding); width: 85%; height: 80vh; max-width: 40rem; overflow-y: auto; border: var(--axiom-border); border-radius: var(--axiom-border-radius); background-color: var(--axiom-color-background); } article > header { margin-top: calc(var(--axiom-padding) * -1); } dialog > article > header :is(a, button)[rel="prev"] { float: right; width: 2.5rem; height: 2.5rem; border: var(--axiom-border); border-radius: var(--axiom-border-radius); background-image: var(--axiom-icon-close); background-position: center; background-size: auto 1rem; background-repeat: no-repeat; background-color: transparent; } .grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(20em, 1fr)); gap: var(--axiom-padding); } [aria-busy="true"]:not(input, textarea, html, form)::after { margin-right: 0.5em; display: inline-block; width: 1em; height: 1em; background-image: var(--axiom-icon-loading); background-size: 1em auto; background-repeat: no-repeat; content: ""; vertical-align: -.125em; } [aria-busy="true"]:not(input, textarea):is(button, [type="submit"], [type="button"], [type="reset"], [role="button"]):not(.outline)::after { filter: brightness(0) invert(1); } .clickable { cursor: pointer; transition: all 0.1s ease; } .clickable:hover { background-color: var(--axiom-color-background-secondary); }