tilde.club/tilde.css

208 lines
4.8 KiB
CSS

/* Default color schemes */
:root {
--bg: #fff;
--fg: #000;
--font-size: 18px;
--link: #00f;
--link-visited: #519;
}
/* Dark mode */
@media (prefers-color-scheme: dark) {
:root {
--bg: #334;
--fg: #fff;
--font-size: 18px;
--link: #0bf;
--link-visited: #b4d;
}
}
/* Other themes */
.dark {
--bg: #334;
--fg: #fff;
--link: #0bf;
--link-visited: #b4d;
}
.h4x0r {
--bg: #000;
--fg: #0f0;
--link: #0ff;
--link-visited: #f0f;
}
.light {
--bg: #fff;
--fg: #000;
--link: #00f;
--link-visited: #519;
}
/* Apply themes */
* {
font-family: monospace;
}
body, pre {
background-color: var(--bg);
color: var(--fg);
font-size: var(--font-size);
}
a {
color: var(--link);
}
a:visited {
color: var(--link-visited);
}
dt {
position: relative;
}
/* ASCII aesthetics */
hr {
border: none;
}
hr::after {
content: "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~";
}
input[type=checkbox], input[type=radio] {
display: none;
}
label::before {
background-color: var(--bg);
color: var(--fg);
font-size: var(--font-size);
padding: 0ch 1ch;
white-space: nowrap;
}
input[type=checkbox] + label::before {
content: "[ ]";
}
input[type=checkbox]:checked + label::before {
content: "[x]";
}
input[type=radio] + label::before {
content: "( )";
}
input[type=radio]:checked + label::before {
content: "(o)";
}
header, section {
max-width: 80ch;
min-width: 80ch;
width: 80ch;
}
ul#preferences {
padding-inline-start: 0px;
}
/* ASCII aesthetics intensifies */
body.ascii h1 {
position: relative;
}
body.ascii h1::before, body.ascii dt::before {
font-size: var(--font-size);
position: absolute;
right: 0ch;
white-space: pre;
}
body.ascii header h1::before {
content: "\
___ ___ ___\A\
/ | / | / - \\\A\
/ /] | / /] | / __ \\\A\
/_____/ /_____/ /_____/\A";
top: calc(-1*var(--font-size));
}
body.ascii #about h1::before {
content: "\
╔═╗┌┐ ┌─┐┬ ┬┌┬┐\A\
╠═╣├┴┐│ ││ │ │\A\
╩ ╩└─┘└─┘└─┘ ┴\A";
line-height: 1;
top: calc(-1*var(--font-size));
}
body.ascii #bash h1::before {
content: "\
____ ____ ____ ____\A\
||b |||a |||s |||h ||\A\
||__|||__|||__|||__||\A\
|/__\\|/__\\|/__\\|/__\\|\A";
top: calc(-2*var(--font-size));
}
body.ascii #readings h1::before {
content: '\
ooooooooo. .o8 o8o\A\
`888 `Y88. "888 `"`\A\
888 .d88` .ooooo. .oooo. .oooo888 oooo ooo. .oo. .oooooooo .oooo.o\A\
888ooo88P` d88` `88b `P )88b d88` `888 `888 `888P"Y88b 888` `88b d88( "8\A\
888`88b. 888ooo888 .oP"888 888 888 888 888 888 888 888 `"Y88b.\A\
888 `88b. 888 .o d8( 888 888 888 888 888 888 `88bod8P` o. )88b\A\
o888o o888o `Y8bod8P` `Y888""8o `Y8bod88P" o888o o888o o888o `8oooooo. 8""888P`\A\
d" YD\A\
"Y88888P\A';
transform: translateX(20ch) translateY(calc(-3*var(--font-size))) scale(.5);
}
body.ascii #projects h1::before {
content: '\
[H_] [He]\A\
[Li][Be] [B_][C_][N_][O_][F_][Ne]\A\
[Na][Mg] [Al][Si][P_][S_][Cl][Ar]\A\
[K_][Ca] [Sc][Ti][V_][Cr][Mn][Fe][Co][Ni][Cu][Zn][Ga][Ge][As][Se][Br][Kr]\A\
[Rb][Sr] [Y_][Zr][Nb][Mo][Tc][Ru][Rh][Pd][Ag][Cd][In][Sn][Sb][Te][I_][Xe]\A\
[Cs][Ba][La][Ce][Pr][Nd][Pm][Sm][Eu][Gd][Tb][Dy][Ho][Er][Tm][Yb][Lu][Hf][Ta][W_][Re][Os][Ir][Pt][Au][Hg][Tl][Pb][Bi][Po][At][Rn]\A\
[Fr][Ra][Ac][Th][Pa][U_][Np][Pu][Am][Cm][Bk][Cf][Es][Fm][Md][No][Lr][Rf][Db][Sg][Bh][Hs][Mt][Ds][Rg][Cn][Nh][Fl][Mc][Lv][Ts][Og]';
transform: translateX(32ch) translateY(calc(-3.5*var(--font-size))) scale(.5);
}
body.ascii dt#lambdabot::before {
content: '\
_____ _____\A\
\\ \\ \\ \\\A\
\\ \\ \\ \\\A\
\\ \\ \\ \\\A\
\\ \\ \\ \\ \\-----------|\A\
\\ \\ \\ \\ \\ |\A\
\\ \\ \\ \\ \\---------|\A\
/ / / \\\A\
/ / / \\ \\-------|\A\
/ / / ^ \\ \\ |\A\
/ / / / \\ \\ \\ ----|\A\
/ / / / \\ \\\A\
/____/ /____/ \____\\';
display: block;
transform: translateX(11ch) translateY(calc(-5*var(--font-size))) scale(calc(1/3));
}
#lambdabot + dd {
width: 65ch;
}
#readings h1 {
margin-bottom: calc(4*var(--font-size));
}
#reading-years li {
display: inline;
}