1
0
Fork 0
isopod.cool/style.css
2024-07-08 16:54:51 -06:00

390 lines
8.2 KiB
CSS

@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);
}
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 */
h1 {
margin-top: calc(var(--navbarheight) + var(--stdpadding));
font-size: 3em;
background-image: url('images/isopod.php');
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 {
position: fixed;
z-index: -10;
bottom: 0;
top: 0;
background-position: center;
background-size: cover;
--shadowsize: 3rem;
--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 {
background-color: black;
padding: 0.15rem;
}
:is(main,body,pre) > code {
display: block;
width: 75%;
margin: auto;
margin-bottom: 1rem;
padding: 0.7rem;
border: 1px solid #00ffd5;
}
:is(main,body,pre) > code > span.codetitle {
margin: -0.7rem;
margin-top: -0.4rem;
margin-bottom: 0.7rem;
padding-bottom: 0.2rem;
font-weight: normal;
top: 0;
left: 0;
right: 0;
text-align: center;
border-bottom: 1px solid #00ffd5;
display: block;
}
/* 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);
}
/* Misc */
img, picture, video {
max-width: 100%;
}
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;
display: inline-block;
}
.house {
color: cornflowerblue;
}
@keyframes growshrink {
0%, 100% { transform: scale(1) rotate(-10deg); }
50% { transform: scale(1.2) 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);
}
h1 {
margin-top: initial;
}
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;
}
:is(main,body,pre) > code {
border-width: .1rem;
}
@media (max-width: 43rem) {
.buttons > * {
width: 24%;
}
.buttons > a > img {
width: 100%;
}
}
code {
font-size: 0.8em;
}
#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;
}
}
}
/* 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;
}
}