:root { --common-font: "Roboto", Helvetica, sans-serif; --mono-font: "JetBrains Mono", monospace; } * { border-color: inherit; } body { font-family: var(--common-font); max-width: var(--body-width); margin: 0 auto; min-height: 100vh; display: flex; flex-direction: column; overflow-x: hidden; } header, footer { padding: 0.2rem; margin: 0.5rem; border-width: 0.15rem; border-style: solid; border-radius: 0.5rem; display: flex; align-items: center; justify-content: space-between; } main { margin: 0 1rem; flex-grow: 1; display: flex; flex-direction: column; align-items: flex-start; } p { align-self: normal; } p, h1, h2, h3 { margin: 0.5rem 0; } pre, code { font-family: var(--mono-font); font-size: 0.8rem; } main>pre { margin: 0.5rem 0; padding: 0 1rem; font-size: 0.8rem; } pre>code { font-size: inherit; } code { font-size: 0.9rem; white-space: pre; } a { color: var(--link); } a:visited { color: var(--link-fg-override, var(--visited)); } span[title]:hover { text-decoration: underline dotted; } hr { margin-inline: 0; align-self: stretch; } main img { margin: 0.5rem auto; display: block; } main img + em { text-align: center; display: block; } button { box-sizing: initial; font-family: var(--common-font); font-size: 1em; } .theme-apply, .theme-apply.button { color: var(--fg); background: var(--bg); border-color: var(--border); } /* TABLES */ .table-box { overflow-x: auto; align-self: center; width: max-content; max-width: 100vw; } table { border-collapse: collapse; border-color: var(--fg); width: max-content; margin: auto; } th { font-weight: bold; } th:empty { border: none; } th, td { border-style: solid; border-width: 1px; padding: 0.3em; text-align: center; } /* SCROLLBAR */ ::-webkit-scrollbar { width: 0.6rem; height: 0.2rem; } ::-webkit-scrollbar-thumb { border-radius: 1rem; background: var(--fg); } /* ADDITIONAL BLOCK PROPERTIES */ .stretched { align-self: stretch; } .centered { display: flex; align-self: stretch; flex-direction: column; align-items: center; } .big-block { width: 75% } .line-block { display: flex; align-items: center; } .centered-line-block { align-self: stretch; display: flex; align-items: center; justify-content: space-evenly; flex-wrap: wrap; } .file-list { align-self: center; min-width: 25%; } .breadcrumbs { flex-grow: 1; overflow-x: auto; white-space: nowrap; padding: 0.1rem 0; display: flex; flex-direction: row-reverse; justify-content: flex-end; } .theme-panel { display: flex; align-self: stretch; justify-content: space-around; } #invert-theme-button::after { font-family: 'Material Icons', var(--common-font); } label[for="body-width-range"] { font-family: 'JetBrains Mono', monospace; } /* ARTICLE PREVIEW */ .preview-block { display: flex; align-self: stretch; justify-content: space-around; flex-wrap: wrap; gap: 0.3rem; } .preview { padding: 0.5rem; border-radius: 0.5rem; width: 100%; } .preview>* { margin: 0; } /* ICON */ .icon { display: inline-block; } .icon::after { font-family: 'Material Icons'; user-select: none; text-transform: none; text-decoration: none; line-height: 1; white-space: nowrap; direction: ltr; font-feature-settings: 'liga'; -webkit-font-smoothing: antialiased; } .button>.icon:not(:empty), .button>.svg-icon { margin-right: 0.25rem; } /* SVG ICONS */ .svg-icon { height: 1.2rem; width: 1.2rem; background: currentColor; mask-size: 100%; -webkit-mask-size: 100%; } .license-icon { mask-image: url(/static/media/license_icon.svg); -webkit-mask-image: url(/static/media/license_icon.svg); } .github-icon { mask-image: url(/static/media/github_icon.svg); -webkit-mask-image: url(/static/media/github_icon.svg); } /* BUTTON */ .text-block, .button { display: block; margin: 0.2rem; text-align: center; text-decoration: none; display: flex; align-items: center; } .frame, .button { border-style: solid; border-width: 0.15rem; border-radius: 0.5rem; padding: 0.2rem; margin: 0.2rem; } .preview, .button { color: inherit; background: inherit; font-size: 1em; cursor: pointer; user-select: none; text-decoration: none; --link-fg-override: var(--fg); } .preview:hover, .button:hover { background: var(--hover); } .preview:active, .button:active { background: var(--active); } /* SWITCH */ .switch { margin: 0.2rem; border-radius: 0.3rem; font-size: 1.25rem; display: inline-block; } .switch input { display: none; } .slider { background: var(--inactive); display: flex; padding: 0; width: 2em; } .slider::after { content: ""; height: 1em; width: 1em; border-radius: 0.3rem; background: var(--slider); position: relative; left: 0em; } input:checked+.slider { background: var(--active); } input:checked+.slider::after { left: 1em; } /* RANGE */ .range-block { display: flex; flex-direction: column; align-self: stretch; margin: 0.4rem; } .range { font-size: 1.25rem; flex-grow: 1; padding: 0; -webkit-appearance: none; height: max-content; border-radius: 0.5rem; background: var(--inactive); } .range::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; height: 1em; width: 1em; border-radius: 0.3rem; background: var(--slider); cursor: pointer; } .range::-webkit-slider-thumb:hover { background: var(--slider-hover); } .range::-moz-range-thumb { -webkit-appearance: none; appearance: none; height: 1em; width: 1em; border-radius: 0.3rem; background: var(--slider); cursor: pointer; } .range::-moz-range-thumb:hover { background: var(--slider-hover); } /* CODE HIGHLIGHT */ .highlight-block { --hl-fg: #def; --hl-fg-hover: #abc; --text: #A9B7C6; --frame: #777; --string-start: #666; --tooltip-bg: #444; --tooltip-border: #888; --button: #2b2b2b; --button-hover: #444; --button-active: #333; border-radius: 0.4rem; padding: 0.2rem; margin: 0.5rem; display: flex; max-width: fit-content; align-self: stretch; position: relative; color: var(--hl-fg); background-color: var(--frame); } .highlight-block * { color: inherit; background-color: inherit; } .highlight-block pre { margin: 0; padding: 0.5rem 0.15rem 0.5rem 0; } .highlight-block>pre { cursor: default; user-select: none; text-align: end; } .highlight { border-radius: 0.2rem; padding: 0 0.5rem; overflow-x: auto; } .highlight pre { border-left-width: 0.1rem; border-left-style: solid; padding: 0.5rem 0.3rem; border-left-color: var(--string-start); } .highlight::-webkit-scrollbar { height: 0.4rem; } .highlight::-webkit-scrollbar-track { margin-inline: 0.4rem; } .highlight::-webkit-scrollbar-thumb { border-radius: 1rem; background: var(--hl-fg); } .highlight::-webkit-scrollbar-thumb:hover { background: var(--hl-fg-hover); } .copy-button { font-family: 'Material Icons', monospace; font-size: 0.75rem; user-select: none; cursor: pointer; position: absolute; top: 0; right: 0; margin: 0.4rem; padding: 0.1rem; border-radius: 0.1rem; box-shadow: 0 0 0 0; background: var(--button); color: var(--text); opacity: 0; } .highlight-block:hover>.copy-button { opacity: 0.5; } .highlight-block:hover>.copy-button:hover { box-shadow: 0 0 0 0.1rem; background: var(--button-hover); border-color: var(--hl-fg); opacity: 1; } .copy-button:active { background: var(--button-active); } .copy-tooltip { font-family: var(--common-font); font-size: 0.8rem; width: max-content; position: absolute; top: -1.85rem; left: 50%; transform: translateX(-50%); padding: 0.2rem; border: 0.1rem; border-style: solid; border-radius: 0.4rem; cursor: default; opacity: 0; pointer-events: none; background-color: var(--tooltip-bg); color: var(--text); border-color: var(--tooltip-border); } .copy-tooltip::after { content: ""; position: absolute; top: 100%; left: 50%; margin-left: -0.3rem; border-width: 0.3rem; border-style: solid; border-color: transparent; border-top-color: var(--tooltip-bg); } .copy-tooltip>::after { content: "Copy"; } :hover>.copy-tooltip { opacity: 1; } .copy-animation>.copy-tooltip>::after { animation: copy-tooltip 1.5s; } .copy-animation { animation: copy-button 1.5s; } .copy-animation::after { animation: copy-button-icon 1.5s; } @keyframes copy-button { from, to { color: #88be05; } } @keyframes copy-tooltip { from, to { content: "Copied"; } }