blob: ee0fc7f754ec637029b8ec9babfa880216c78cf4 [file] [log] [blame]
/* SPDX-License-Identifier: LGPL-2.1-or-later */
@font-face {
font-family: 'Heebo';
src: url('fonts/heebo-regular.woff');
font-weight: 400;
}
@font-face {
font-family: 'Heebo';
src: url('fonts/heebo-bold.woff');
font-weight: 600;
}
/* Variables */
:root {
--sd-brand-black: hsl(270, 19%, 13%); /* #201A26; */
--sd-brand-green: hsl(145, 66%, 51%); /* #30D475; */
--sd-brand-white: #fff;
--sd-black: hsl(270, 7%, 13%);
--sd-green: hsl(145, 66%, 43%); /* #26b763 */
--sd-gray-extralight: hsl(30, 10%, 96%); /* #f6f5f4 */
--sd-gray-light: hsl(30, 10%, 92%);
--sd-gray: hsl(30, 10%, 85%);
--sd-gray-dark: hsl(257, 23%, 20%);
--sd-gray-extradark: hsl(257, 23%, 16%); /* #241f31 */
--sd-blue: hsl(200, 66%, 55%);
--sd-highlight-bg-light: rgba(255, 255, 255, 1);
--sd-highlight-bg-dark: rgba(0, 0, 0, .6);
--sd-highlight-inline-bg-light: rgba(0, 0, 0, 0.07);
--sd-highlight-inline-bg-dark: rgba(255, 255, 255, 0.1);
--sd-font-weight-normal: 400;
--sd-font-weight-bold: 600;
/* Light mode variables */
--sd-foreground-color: var(--sd-gray-extradark);
--sd-background-color: var(--sd-gray-extralight);
--sd-logo-color: var(--sd-brand-black);
--sd-link-color: var(--sd-green);
--sd-small-color: var(--sd-gray-dark);
--sd-highlight-bg: var(--sd-highlight-bg-light);
--sd-highlight-inline-bg: var(--sd-highlight-inline-bg-light);
--sd-link-font-weight: var(--sd-font-weight-bold);
--sd-table-row-bg: var(--sd-highlight-inline-bg-light);
--sd-table-row-hover-bg: var(--sd-gray);
}
@media (prefers-color-scheme: dark) {
:root {
color-scheme: dark;
--sd-foreground-color: var(--sd-gray);
--sd-background-color: var(--sd-black);
--sd-logo-color: var(--sd-brand-white);
--sd-link-color: var(--sd-brand-green);
--sd-small-color: var(--sd-gray);
--sd-highlight-bg: var(--sd-highlight-bg-dark);
--sd-highlight-inline-bg: var(--sd-highlight-inline-bg-dark);
--sd-link-font-weight: var(--sd-font-weight-normal);
--sd-table-row-bg: var(--sd-highlight-inline-bg-dark);
--sd-table-row-hover-bg: var(--sd-highlight-bg-dark);
}
}
/* Typography */
* {
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
html, body {
margin: 0;
padding: 0;
font-size: 1rem;
font-family: "Heebo", sans-serif;
font-weight: 400;
line-height: 1.6;
}
body {
color: var(--sd-foreground-color);
background-color: var(--sd-background-color);
}
h1, h2, h3, h4, h5, h6 {
margin: 1rem 0 0.625rem;
font-weight: 600;
line-height: 1.25;
}
h1 {
text-align: center;
font-size: 1.87rem;
font-weight: 400;
font-style: normal;
margin-bottom: 2rem;
}
@media screen and (min-width: 650px) {
h1 {
font-size: 2.375em;
}
}
h2 {
font-size: 1.25rem;
margin-top: 2.5em;
}
h3 {
font-size: 1.15rem;
}
a {
font-weight: var(--sd-link-font-weight);
text-decoration: none;
color: var(--sd-link-color);
cursor: pointer;
}
a:hover {
text-decoration: underline;
}
b {
font-weight: 600;
}
small {
color: var(--sd-small-color);
}
hr {
margin: 3rem auto 4rem;
width: 40%;
opacity: 40%;
}
/* Layout */
.container > * {
width: 80%;
margin-left: auto;
margin-right: auto;
max-width: 720px;
}
.container > table {
max-width: 1600px;
}
.container > h1 {
max-width: 530px;
}
/* Tables */
table {
width: auto !important;
border-collapse: separate;
border-spacing: 0;
margin-top: 2em;
margin-bottom: 3em;
overflow-x: auto;
display: block; /* required for overflow-x auto on tables */
}
@media screen and (min-width: 768px) {
table {
display: table;
border-left: 1rem solid transparent;
border-right: 1rem solid transparent;
}
}
thead tr,
tbody:first-child tr:nth-child(odd),
thead + tbody tr:nth-child(even) {
background-color: var(--sd-table-row-bg);
}
tbody tr:hover {
background-color: var(--sd-table-row-hover-bg) !important;
}
th, td {
vertical-align: top;
text-align: left;
padding: .5rem;
}
th:first-child, td:first-child {
padding-left: 0.75rem;
}
th:last-child, td:last-child {
padding-right: 0.75rem;
}
/* Custom content */
.intro-code-block {
background-color: var(--sd-brand-black);
color: var(--sd-brand-white);
font-size: 0.875rem;
padding: 1em;
overflow-x: auto;
}
@media (prefers-color-scheme: dark) {
.intro-code-block {
background-color: var(--sd-highlight-bg);
}
}
/* Singletons */
.page-logo {
display: block;
padding: 5rem 0 3rem;
color: var(--sd-logo-color);
}
.page-logo > svg {
display: block;
width: 12.625em;
height: auto;
margin: 0 auto;
}
.brand-white {
background-color: var(--sd-brand-white);
}
.brand-green {
background-color: var(--sd-brand-green);
}
.brand-black {
background-color: var(--sd-brand-black);
color: var(--sd-brand-white);
}
.color-green {
color: var(--sd-brand-green);
}
.color-blue {
color: var(--sd-blue);
}
.page-link::after {
content: " ➜";
}
/* Footer */
footer {
text-align: center;
padding: 3em 0 3em;
font-size: 1em;
margin-top: 4rem;
}
/* Make tables vertically aligned to the top */
tbody td {
vertical-align: top;
}
/* Rouge Code Highlight, github style */
/* Generated with: rougify style github | sed '/background-color: #f8f8f8/d' */
.highlight table td { padding: 5px; }
.highlight table pre { margin: 0; }
@media (prefers-color-scheme: light) {
.highlight .cm {
color: #999988;
font-style: italic;
}
.highlight .cp {
color: #999999;
font-weight: bold;
}
.highlight .c1 {
color: #999988;
font-style: italic;
}
.highlight .cs {
color: #999999;
font-weight: bold;
font-style: italic;
}
.highlight .c, .highlight .ch, .highlight .cd, .highlight .cpf {
color: #999988;
font-style: italic;
}
.highlight .err {
color: #a61717;
background-color: #e3d2d2;
}
.highlight .gd {
color: #000000;
background-color: #ffdddd;
}
.highlight .ge {
color: #000000;
font-style: italic;
}
.highlight .gr {
color: #aa0000;
}
.highlight .gh {
color: #999999;
}
.highlight .gi {
color: #000000;
background-color: #ddffdd;
}
.highlight .go {
color: #888888;
}
.highlight .gp {
color: #555555;
}
.highlight .gs {
font-weight: bold;
}
.highlight .gu {
color: #aaaaaa;
}
.highlight .gt {
color: #aa0000;
}
.highlight .kc {
color: #000000;
font-weight: bold;
}
.highlight .kd {
color: #000000;
font-weight: bold;
}
.highlight .kn {
color: #000000;
font-weight: bold;
}
.highlight .kp {
color: #000000;
font-weight: bold;
}
.highlight .kr {
color: #000000;
font-weight: bold;
}
.highlight .kt {
color: #445588;
font-weight: bold;
}
.highlight .k, .highlight .kv {
color: #000000;
font-weight: bold;
}
.highlight .mf {
color: #009999;
}
.highlight .mh {
color: #009999;
}
.highlight .il {
color: #009999;
}
.highlight .mi {
color: #009999;
}
.highlight .mo {
color: #009999;
}
.highlight .m, .highlight .mb, .highlight .mx {
color: #009999;
}
.highlight .sa {
color: #000000;
font-weight: bold;
}
.highlight .sb {
color: #d14;
}
.highlight .sc {
color: #d14;
}
.highlight .sd {
color: #d14;
}
.highlight .s2 {
color: #d14;
}
.highlight .se {
color: #d14;
}
.highlight .sh {
color: #d14;
}
.highlight .si {
color: #d14;
}
.highlight .sx {
color: #d14;
}
.highlight .sr {
color: #009926;
}
.highlight .s1 {
color: #d14;
}
.highlight .ss {
color: #990073;
}
.highlight .s, .highlight .dl {
color: #d14;
}
.highlight .na {
color: #008080;
}
.highlight .bp {
color: #999999;
}
.highlight .nb {
color: #0086B3;
}
.highlight .nc {
color: #445588;
font-weight: bold;
}
.highlight .no {
color: #008080;
}
.highlight .nd {
color: #3c5d5d;
font-weight: bold;
}
.highlight .ni {
color: #800080;
}
.highlight .ne {
color: #990000;
font-weight: bold;
}
.highlight .nf, .highlight .fm {
color: #990000;
font-weight: bold;
}
.highlight .nl {
color: #990000;
font-weight: bold;
}
.highlight .nn {
color: #555555;
}
.highlight .nt {
color: #000080;
}
.highlight .vc {
color: #008080;
}
.highlight .vg {
color: #008080;
}
.highlight .vi {
color: #008080;
}
.highlight .nv, .highlight .vm {
color: #008080;
}
.highlight .ow {
color: #000000;
font-weight: bold;
}
.highlight .o {
color: #000000;
font-weight: bold;
}
.highlight .w {
color: #bbbbbb;
}
}
@media (prefers-color-scheme: dark) {
/* rouge "base16.dark" code highlight */
/* generated with: rougify style base16.dark | sed '/background-color: #151515/d' */
.highlight, .highlight .w {
color: #d0d0d0;
}
.highlight .err {
color: #151515;
background-color: #ac4142;
}
.highlight .c, .highlight .ch, .highlight .cd, .highlight .cm, .highlight .cpf, .highlight .c1, .highlight .cs {
color: #505050;
}
.highlight .cp {
color: #f4bf75;
}
.highlight .nt {
color: #f4bf75;
}
.highlight .o, .highlight .ow {
color: #d0d0d0;
}
.highlight .p, .highlight .pi {
color: #d0d0d0;
}
.highlight .gi {
color: #90a959;
}
.highlight .gd {
color: #ac4142;
}
.highlight .gh {
color: #6a9fb5;
font-weight: bold;
}
.highlight .k, .highlight .kn, .highlight .kp, .highlight .kr, .highlight .kv {
color: #aa759f;
}
.highlight .kc {
color: #d28445;
}
.highlight .kt {
color: #d28445;
}
.highlight .kd {
color: #d28445;
}
.highlight .s, .highlight .sb, .highlight .sc, .highlight .dl, .highlight .sd, .highlight .s2, .highlight .sh, .highlight .sx, .highlight .s1 {
color: #90a959;
}
.highlight .sa {
color: #aa759f;
}
.highlight .sr {
color: #75b5aa;
}
.highlight .si {
color: #8f5536;
}
.highlight .se {
color: #8f5536;
}
.highlight .nn {
color: #f4bf75;
}
.highlight .nc {
color: #f4bf75;
}
.highlight .no {
color: #f4bf75;
}
.highlight .na {
color: #6a9fb5;
}
.highlight .m, .highlight .mb, .highlight .mf, .highlight .mh, .highlight .mi, .highlight .il, .highlight .mo, .highlight .mx {
color: #90a959;
}
.highlight .ss {
color: #90a959;
}
}
/* Code Blocks */
.highlighter-rouge {
padding: 2px 1rem;
border-radius: 5px;
color: var(--sd-foreground-color);
background-color: var(--sd-highlight-bg);
overflow: auto;
}
.highlighter-rouge .highlight .err {
background: transparent !important;
color: inherit !important;
}
/* Inline Code */
code.highlighter-rouge {
padding: 2px 6px;
background-color: var(--sd-highlight-inline-bg);
}
a code.highlighter-rouge {
color: inherit;
}