diff options
Diffstat (limited to 'style.css')
| -rw-r--r-- | style.css | 444 |
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 |
