bavbavhaus.net/css/style.css

439 lines
6.2 KiB
CSS

/*
* css styling for bavbavhaus.net
*
* A dark mono-sized monofont, two-column layout stylesheet with "compact"
* markdown formatting of html generated by `pandoc`.
*
*/
/* variables */
:root {
--font-size: 12pt;
--line-height: 1.25;
--font-family: monospace;
/* colors */
--black: #000000;
--red: #fa3500;
--green: #009843;
--orange: #d06600;
--blue: #856cff;
--magenta: #ff1170;
--cyan: #008cca;
--white: #e2e2e2;
--bright-black: #848484;
--bright-red: #ff888e;
--bright-green: #00c55b;
--bright-orange: #ff8d48;
--bright-blue: #ac9fff;
--bright-magenta: #ffb1c0;
--bright-cyan: #92ccff;
--bright-white: #ffffff;
--md-formatting-color: var(--blue);
--error-color: var(--red);
}
/* wider screens */
@media (min-width: 120ch) {
:root {
--font-size: 12pt;
}
}
/* reset */
:root {
box-sizing: border-box;
text-size-adjust: none;
-moz-text-size-adjust: none;
-webkit-text-size-adjust: none;
}
*,
*::before,
*::after {
box-sizing: inherit;
margin: 0;
padding: 0;
border: 0;
}
/* root, * */
:root {
color: var(--white);
background-color: var(--black);
font: var(--font-size)/var(--line-height) var(--font-family);
overflow-wrap: break-word;
}
*,
*::before,
*::after {
font: inherit;
scrollbar-width: none;
}
::selection {
color: var(--black);
background-color: var(--white);
}
/* blocks */
h1, h2, h3, h4, h5, h6 {
text-wrap: balance;
font-weight: bold;
}
h1::before { content: "# "; }
h2::before { content: "## "; }
h3::before { content: "### "; }
h4::before { content: "#### "; }
h5::before { content: "##### "; }
h6::before { content: "###### "; }
:is(h1, h2, h3, h4, h5, h6)::before {
color: var(--md-formatting-color);
}
article :is(h2, h3, h4, h5, h6) {
margin-top: 2rlh;
}
article :is(blockquote, dl, div, figure, hr, menu, ol, p, pre, ul) {
margin-top: 1rlh;
}
article :is(blockquote, div)>:is(blockquote, div, figure, hr, menu, ol, p, pre, ul):first-child {
margin-top: unset;
}
blockquote,
figcaption,
dd {
position: relative;
margin-left: 2ch;
}
blockquote::before,
figcaption::before,
dd::before {
position: absolute;
left: -2ch;
color: var(--md-formatting-color);
}
blockquote::before {
content: "> ";
}
figcaption::before {
content: "! ";
}
dd::before {
content: ": ";
}
dt {
font-style: italic;
}
figure {
display: grid;
grid-template-rows: round(down, calc(min(160ch, 100vw)/2), 1rlh) auto;
}
figure img {
place-self: center;
}
hr {
color: unset;
border: unset;
}
hr::after {
content: "***";
margin-left: round(down, calc(50% - 1.5ch), 1ch);
color: var(--md-formatting-color);
}
:is(ol, ul, menu, dd, li) :is(blockquote, div, figure, hr, menu, ol, p, pre, ul) {
margin-top: unset;
}
ul, menu {
padding-left: 2ch;
}
ol {
padding-left: 3ch;
}
ol:has(li:nth-child(10)) {
padding-left: 4ch;
}
ol:has(li:nth-child(100)) {
padding-left: 5ch;
}
li::marker {
color: var(--md-formatting-color);
}
ol>li::marker {
content: counter(list-item) ". ";
}
ul>li::marker {
content: "- ";
}
li p + p {
text-indent: 2ch;
}
p {
hyphens: auto;
}
pre {
overflow-x: scroll;
}
pre::before,
pre::after {
display: block;
content: "```";
color: var(--md-formatting-color);
}
img, svg {
max-width: 100%;
max-height: 100%;
display: block;
}
.math.diplay {
display: block;
text-align: center;
}
.math.display::before,
.math.display::after {
content: "$$";
color: var(--md-formatting-color);
}
/* inlines */
a {
color: inherit;
cursor: pointer;
text-decoration: underline solid;
text-decoration-color: var(--md-formatting-color);
}
a:active {
color: var(--red);
text-decoration-color: var(--red);
}
a:visited {
text-decoration-color: var(--magenta);
}
a:visited:active {
text-decoration-color: var(--red);
}
code {
font-family: monospace;
}
:not(pre)>code::before,
:not(pre)>code::after {
content: "`";
color: var(--md-formatting-color);
}
em {
font-style: italic;
}
mark {
color: var(--orange);
background: unset;
}
strong {
font-weight: bold;
}
sup, sub {
font-size: unset;
vertical-align: unset;
line-height: 0;
}
sup::before,
sup::after {
content: "^";
color: var(--md-formatting-color);
}
sub::before,
sub::after {
content: "~";
color: var(--md-formatting-color);
}
u {
text-decoration: underline wavy var(--red) 1pt;
}
del, ins {
text-decoration: unset;
}
del { color: var(--red); }
del::before { content: "[-"; }
del::after { content: "-]"; }
ins { color: var(--green); }
ins::before { content: "{+"; }
ins::after { content: "+}"; }
.math.inline::before,
.math.inline::after {
content: "$";
color: var(--md-formatting-color);
}
.smallcaps {
font-variant: small-caps;
}
/* tables */
table {
display: block;
margin-top: 1rlh;
margin-left: auto;
margin-right: auto;
border-spacing: 0;
overflow-x: scroll;
}
thead {
font-weight: bold;
overflow-x: scroll;
}
th, td {
padding-left: 1ch;
padding-right: 1ch;
}
th {
vertical-align: bottom;
border-bottom: 1pt solid white;
}
td {
vertical-align: baseline;
}
table caption {
text-align: unset;
}
table caption::before {
content: "! ";
color: var(--md-formatting-color);
}
/* footnotes */
a.footnote-ref sup::before {
content: "[";
}
a.footnote-ref sup::after {
content: "]";
}
a.footnote-ref:active sup::before,
a.footnote-ref:active sup::after {
color: var(--red);
}
#footnotes>ol {
padding-left: 5ch;
}
#footnotes>ol:has(li:nth-child(10)) {
padding-left: 6ch;
}
#footnotes>ol:has(li:nth-child(100)) {
padding-left: 7ch;
}
#footnotes>ol>li::marker {
content: "[" counter(list-item) "]: ";
}
#footnotes a.footnote-back {
color: var(--md-formatting-color);
}
#footnotes a.footnote-back:active {
color: var(--red);
}
/* div.horizontal */
div.horizontal {
display: grid;
grid-auto-flow: column;
grid-auto-columns: 100%;
overflow-x: scroll;
scroll-snap-type: inline proximity;
}
div.horizontal>* {
margin-top: unset;
scroll-snap-align: end;
}
/* layout */
body {
width: min(80ch, round(down, 100vw, 2ch));
height: round(down, 100vh, 1rlh);
margin-left: auto;
margin-right: auto;
padding-top: 1rlh;
padding-bottom: 1rlh;
}
main {
height: 100%;
}
main>article {
height: 100%;
overflow-y: scroll;
}