aboutsummaryrefslogtreecommitdiff
path: root/style.css
diff options
context:
space:
mode:
authorHannah Isopod <me@bathynomus.xyz>2025-05-10 03:03:58 -0600
committerHannah Isopod <me@bathynomus.xyz>2025-05-10 03:03:58 -0600
commiteb61c1bae2ffad114e17393d91d86fb00d7ac8cd (patch)
tree4f997d73e0843dab760e5d988679a1a86b76f5da /style.css
parent4b9500ddeedbea21f80f41dfe4149cf3bf9be4c3 (diff)
Initialer commit
Just remade the repo because I don't *need* need a comprehensive source history for my personal website and this is easier than getting filter-repo to work good
Diffstat (limited to 'style.css')
-rw-r--r--style.css444
1 files changed, 444 insertions, 0 deletions
diff --git a/style.css b/style.css
new file mode 100644
index 0000000..4d36472
--- /dev/null
+++ b/style.css
@@ -0,0 +1,444 @@
+@font-face {
+ font-family: b612_mono;
+ src: url(stuff/fonts/B612_Mono/B612Mono-Regular.ttf);
+}
+@font-face {
+ font-family: b612_mono;
+ src: url(stuff/fonts/B612_Mono/B612Mono-Bold.ttf);
+ font-weight: bold;
+}
+@font-face {
+ font-family: b612_mono;
+ src: url(stuff/fonts/B612_Mono/B612Mono-Italic.ttf);
+ font-style: italic;
+}
+@font-face {
+ font-family: b612_mono;
+ src: url(stuff/fonts/B612_Mono/B612Mono-BoldItalic.ttf);
+ font-weight: bold;
+ font-style: italic;
+}
+
+
+:root {
+ --stdfont: b612_mono, mono, monospace;
+ --bgcolor: #222222;
+ --fontcolor: #dcdcdc;
+ --linkcolor: #df1955;
+ --linkhover: #00ffd5;
+ --blockbg: #fff1;
+ --blockbghover: #fff2;
+ --stdshadow: #000;
+ /* ALL colors should be defined here.
+ If there's a color value somewhere else, move it here so it can be responsive */
+
+ --stdaccentborder: 3px solid var(--fontcolor);
+ --bodywidth: min(90vw, 80ch);
+ --stddropshadow: 4px 4px 8px black;
+ --stdpadding: 1rem;
+ --navbarheight: calc(var(--stdpadding) * 2.5);
+ --h1-image: url('images/isopod.php');
+ --shadowsize: 3rem;
+}
+html, body {
+ height: 100%;
+}
+
+body {
+ color: var(--fontcolor);
+ font-family: var(--stdfont);
+ text-shadow: 1px 1px 3px var(--stdshadow);
+
+ max-width: var(--bodywidth);
+ margin: auto;
+ background-color: var(--bgcolor);
+ box-sizing: border-box;
+}
+
+/* Headings */
+body > h1:first-of-type, body > main:first-of-type > div > h1:first-of-type {
+ margin-top: calc(var(--navbarheight) + var(--stdpadding));
+ font-size: 3em;
+ background-image: var(--h1-image);
+ background-size: contain;
+ background-position: right;
+ background-repeat: no-repeat;
+ padding-bottom: calc(var(--stdpadding) * 2);
+ margin-bottom: calc(var(--stdpadding) * -2);
+}
+h1 + h2#caption {
+ font-weight: normal;
+ padding-top: 0;
+ margin-top: -1.4em;
+}
+h1, h2, h3, h4, h5, h6 {
+ border-left: var(--stdaccentborder);
+ padding-left: var(--stdpadding);
+}
+
+/* Links */
+a {
+ color: var(--linkcolor);
+}
+a:hover {
+ color: var(--linkhover);
+}
+
+/* Nav */
+nav {
+ display: flex;
+ flex-wrap: wrap;
+ max-width: 100%;
+ align-items: center;
+ justify-content: center;
+}
+nav#main-nav {
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ height: var(--navbarheight);
+}
+nav a, nav span, body > a{
+ padding: calc(var(--stdpadding) / 2) calc(var(--stdpadding) / 4 * 3);
+ margin: calc(var(--stdpadding) / 2) calc(var(--stdpadding) / 4);
+}
+nav a, body > a {
+ border-left: var(--stdaccentborder);
+ border-color: #0000;
+ background: linear-gradient(var(--blockbghover) 0 0) 0 / var(--bgpos, 0) no-repeat;
+ transition: background .3s, border .3s;
+}
+nav a:hover, body > a:hover {
+ --bgpos: 100%;
+ border-left: var(--stdaccentborder);
+}
+body > a {
+ display: block;
+ margin-left: 0;
+ padding-left: 1rem;
+ font-weight: bold;
+ font-size: 1.25em;
+ border-left: var(--stdaccentborder);
+}
+
+/* Background image type beat */
+#leftsidebg, #rightsidebg {
+ --bgimg: url(images/bg.jxl), url(images/bg.jpg);
+ background-image: linear-gradient(rgba(18, 16, 16, 0) 50%, rgba(0, 0, 0, 0.25) 50%), linear-gradient(90deg, rgba(255, 0, 0, 0.06), rgba(0, 255, 0, 0.02), rgba(0, 0, 255, 0.06)), var(--bgimg), url(images/bg.jxl), url(images/bg.jpg);
+ background-size: 100% 2px, 3px 100%, cover, cover, cover, cover;
+ background-repeat: repeat;
+ background-position: center;
+ position: fixed;
+ z-index: -10;
+ bottom: 0;
+ top: 0;
+ --distancefromcenter: calc((var(--bodywidth) / -2) - (var(--stdpadding) * 3));
+}
+#leftsidebg {
+ right: calc(50% - var(--distancefromcenter));
+ left: 0;
+ box-shadow: calc(0rem - var(--shadowsize)) 0 var(--shadowsize) calc(0rem - var(--shadowsize)) black inset;
+}
+#rightsidebg {
+ right: 0;
+ left: calc(50% - var(--distancefromcenter));
+ box-shadow: var(--shadowsize) 0 var(--shadowsize) calc(0rem - var(--shadowsize)) black inset;
+}
+
+/* 88x31 button container */
+.buttons {
+ text-align: center;
+ font-size: 0;
+}
+.buttons > * {
+ display: inline-block;
+ margin: 0.1rem;
+ font-size: 0;
+}
+.buttons > a > img {
+ transition-duration: .5s;
+ box-shadow: none;
+ display: inline-block;
+ transform: translate(0, 0);
+}
+.buttons > a > img:hover {
+ box-shadow: 2px 2px 4px black;
+ z-index: 5;
+ transform: translate(-2px, -2px);
+}
+
+/* Code snippets */
+code {
+ padding: 0.15rem;
+}
+pre > code {
+ display: block;
+ margin-bottom: 1rem;
+ overflow-x: auto;
+}
+code, .codetitle {
+ background-color: black;
+ font-size: .8rem;
+}
+pre > code, .codetitle {
+ width: 75%;
+ margin: auto;
+ border: 1px solid #00ffd5;
+ padding: 0.7rem;
+}
+.codetitle {
+ margin-bottom: 0;
+ border-bottom: none;
+ text-align: center;
+}
+.codetitle + pre {
+ margin-top: 0;
+}
+
+/* Tables */
+table {
+ border-collapse: collapse;
+}
+td {
+ padding: calc(var(--stdpadding) / 2);
+}
+tr > td:first-child {
+ padding-left: 0;
+}
+tr.indent-1 td {
+ padding-left: calc(var(--stdpadding));
+}
+tr.indent-1 td:first-child {
+ border-left: var(--stdaccentborder);
+}
+
+/* Quotations */
+figure.quote {
+ padding: calc(var(--stdpadding) * 1.5);
+ margin: 0;
+ margin-bottom: initial;
+ border-left: var(--stdaccentborder);
+ background-color: var(--blockbg);
+ margin-bottom: var(--stdpadding);
+}
+figure.quote blockquote {
+ margin: 0;
+}
+figure.quote figcaption {
+ margin-left: calc(var(--stdpadding) * 3);
+ margin-top: var(--stdpadding);
+}
+
+/* Media, plus captions thereof */
+img, picture, video {
+ max-width: 100%;
+ max-height: 50rem;
+ min-width: 0;
+}
+:is(body, p, picture) > img, picture, video, figure.media {
+ margin: auto;
+ display: block;
+}
+
+.gallery {
+ display: flex;
+ max-width: 100%;
+}
+figure.media {
+ width: fit-content;
+ max-width: 100%;
+}
+figure.media > div {
+ display: inline-block;
+}
+figure.media > div > figcaption {
+ width: min-content;
+ min-width: 100%;
+ font-size: 0.9em;
+ padding: calc(var(--stdpadding) * 0.9);
+ margin: 0;
+ margin-bottom: initial;
+ margin-top: -4px;
+ border-left: var(--stdaccentborder);
+ background-color: var(--blockbg);
+ box-sizing: border-box;
+}
+
+/* Misc */
+summary:hover {
+ cursor: pointer;
+}
+[title] {
+ text-decoration: underline;
+}
+[title]:hover {
+ cursor: help;
+}
+hr {
+ width: 30%;
+}
+
+/* Funsies */
+.serif {
+ font-family: serif;
+}
+.flipped {
+ display: inline-block;
+ transform: rotate(180deg);
+}
+.rainbowtext {
+ animation-name: rainbow-text;
+ animation-duration: 20s;
+ animation-iteration-count: infinite;
+}
+.blinking {
+ animation-name: opacityblink;
+ animation-duration: 2s;
+ animation-iteration-count: infinite;
+}
+.minecraftsplash {
+ animation-name: growshrink;
+ animation-duration: 1.5s;
+ animation-iteration-count: infinite;
+ color: yellow;
+ float: right;
+}
+.house {
+ color: cornflowerblue;
+}
+@keyframes growshrink {
+ 0%, 100% { transform: scale(0.9) rotate(-10deg); }
+ 50% { transform: scale(1.1) rotate(-10deg); }
+}
+@keyframes opacityblink {
+ 0%, 50% {opacity: 0;}
+ 50.001%, 100% {opacity: 1;}
+}
+@keyframes rainbow-text {
+ 100%,0%{color: rgb(255,0,0); text-shadow: 0 0 4px rgb(216, 1, 1);}
+ 8%{color: rgb(255,127,0); text-shadow: 0 0 4px rgb(211, 105, 0);}
+ 16%{color: rgb(255,255,0); text-shadow: 0 0 4px rgb(214, 214, 0);}
+ 25%{color: rgb(127,255,0); text-shadow: 0 0 4px rgb(105, 211, 0);}
+ 33%{color: rgb(0,255,0); text-shadow: 0 0 4px rgb(0, 204, 0);}
+ 41%{color: rgb(0,255,127); text-shadow: 0 0 4px rgb(0, 209, 105);}
+ 50%{color: rgb(0,255,255); text-shadow: 0 0 4px rgb(0, 202, 202);}
+ 58%{color: rgb(0,127,255); text-shadow: 0 0 4px rgb(0, 103, 206);}
+ 66%{color: rgb(0,0,255); text-shadow: 0 0 4px rgb(0, 0, 206);}
+ 75%{color: rgb(127,0,255); text-shadow: 0 0 4px rgb(103, 0, 206);}
+ 83%{color: rgb(255,0,255); text-shadow: 0 0 4px rgb(211, 0, 211);}
+ 91%{color: rgb(255,0,127); text-shadow: 0 0 4px rgb(211, 0, 105);}
+}
+
+/* If user is on mobile */
+@media only screen and (hover: none) {
+
+ nav#main-nav {
+ position: initial;
+ top: initial;
+ left: initial;
+ right: initial;
+ height: initial;
+ margin-top: calc(var(--stdpadding) / 2);
+ }
+ body > h1:first-of-type {
+ margin-top: var(--stdpadding);
+ }
+ nav a, nav span {
+ flex-grow: 1;
+ }
+ nav a, body > a {
+ border-left: 3px solid var(--fontcolor);
+ background-color: var(--blockbg);
+ }
+ nav a, body > a, nav span {
+ padding: calc(var(--stdpadding) / 2) calc(var(--stdpadding) / 4 * 3);
+ margin: 0 0 calc(var(--stdpadding) / 2) 0;
+ }
+ body > a {
+ margin-left: 0;
+ }
+ pre > code, .codetitle {
+ border-width: .1rem;
+ width: initial;
+ }
+ @media (max-width: 43rem) {
+ .buttons > * {
+ width: 24%;
+ }
+ .buttons > a > img {
+ width: 100%;
+ }
+ }
+ #leftsidebg, #rightsidebg {
+ top: 0; left: 0; right: 0; bottom: 0;
+ box-shadow: 100vw 0 0 #000000bb inset;
+ }
+ tr:hover {
+ background-color: initial;
+ }
+ td {
+ display: block;
+ }
+ @media (prefers-contrast: more) {
+ #leftsidebg, #rightsidebg {
+ display: none;
+ }
+ }
+}
+
+@media screen and (orientation:portrait) {
+ .gallery {
+ flex-direction: column;
+ }
+}
+
+/* TODO: Light theme
+@media (prefers-color-scheme: light) {
+ :root {
+ --bgcolor: #dffffa;
+ --fontcolor: #222222;
+ --blockbg: #0001;
+ --blockbghover: #00000022;
+ --stdshadow: #19191977;
+ }
+}
+*/
+
+@media (prefers-contrast: more) {
+ body {
+ color: white;
+ background-color:#111111;
+ }
+ #leftsidebg, #rightsidebg {
+ display: none;
+ /*box-shadow: 100vw 0 0 #000000ee inset;*/
+ }
+ a {
+ color: #00ffd5;
+ }
+}
+
+/* TODO: Low contrast theme */
+/*@media (prefers-contrast: less) {
+
+}*/
+
+@media (prefers-reduced-motion) {
+ * {
+ transition-duration: 0s !important;
+ }
+}
+
+@media print {
+ body {
+ text-shadow: none;
+ color: black;
+ }
+ h1 {
+ margin-top: initial;
+ }
+ nav, form {
+ display: none;
+ }
+} \ No newline at end of file