ben.wiegand.pw/www/style.css
Benjamin Wiegand 67a7eeef0b add new project
2024-12-23 17:42:06 -08:00

494 lines
7.9 KiB
CSS

body {
margin-left: 0;
margin-right: 0;
margin-top: 0;
margin-bottom: 0;
font-family: sans-serif;
background-color: black;
color: white;
}
a {
color: white;
text-decoration-color: white;
}
#header-bg1 {
animation: color-change-1 30s linear .5s infinite normal none;
}
#header-bg2 {
background-color: #29BDBD; /* fall-back */
animation: color-change-2 30s linear .5s infinite normal none;
}
.header-bg {
position: fixed;
width: 100%;
height: 100%;
top:0;
left:0;
z-index: -1;
}
.header-section {
animation: fly-down .5s ease-out 0s 1 normal none;
display: flex;
flex-direction: row;
align-items: center;
/* align-content: center; */
justify-content: center;
flex-wrap: wrap-reverse;
min-height: 25vh;
width: 100%;
}
.header-picture {
align-self: end;
}
.header-picture img {
width: calc(165200px/596);
min-width: 277px;
height: 200px;
margin-top: 30px;
vertical-align: middle;
}
.blank-item {
width: calc(165200px/596);
min-width: 277px;
}
.title-thingy {
flex-basis: content;
text-align: center;
margin: 30px;
}
.title-thingy h2 {
font-family: monospace;
}
.general-content {
background-color: #171717;
overflow: auto;
padding-left: 50px;
padding-right: 50px;
padding-bottom: 60px;
padding-top: 20px;
}
.general-content h2 {
margin-top: 50px;
}
.general-content h3 {
margin-top: 25px;
margin-bottom: 20px;
}
.projects-section {
/* empty for now */
}
.project details {
margin-top: 16px;
margin-bottom: 16px;
}
.project details summary {
cursor: pointer;
}
.spam-manifesto {
text-align: center;
border-style: groove;
padding-left: 5%;
padding-right: 5%;
padding-top: 2%;
padding-bottom: 2%;
border-color: red;
}
.spam-manifesto a {
color: red;
text-decoration: none;
}
.poem {
text-align: start;
}
.poem p {
width:fit-content;
margin-left: auto;
margin-right: auto;
}
.spam-sandwich {
display: none;
}
.text-section {
margin-left: auto;
margin-right: auto;
max-width: 900px;
}
.sub-section details p {
animation: fly-down .5s ease-out 0s 1 normal none;
}
footer {
background-color: black;
display: flex;
flex-direction: column;
align-items: center;
align-content: center;
justify-content: center;
min-height: 20vh;
width: 100%;
}
h1 {
font-size: xx-large;
}
h2 {
font-size: xx-large;
}
h3 {
font-size: x-large;
}
.filler-div {
min-height: 90vh;
}
.screenshot-collection {
display: flex;
flex-wrap: wrap;
justify-content: center;
align-items: center;
}
.screenshot-collection input {
display: none;
}
.project-image .thumbnail {
display: flex;
align-items: center;
justify-content: center;
width: 444px;
max-width: calc(min(450px,calc(100vw - 100px)));
max-height: 253.125px;
overflow: hidden;
margin: 3px;
cursor: pointer;
}
.screenshot-collection .thumbnail img {
min-width: calc(min(450px,calc(100vw - 100px)));
}
.screenshot-collection .no-crop img {
min-width: auto;
max-width: calc(min(450px,calc(100vw - 100px)));
min-height: auto;
max-height: 253.125px;
}
.project-image {
max-width: 100%;
}
.project-image input {
display: none;
}
.modal {
display: none;
}
input:checked + .modal {
animation: fly-forward .5s ease-out 0s 1 normal none;
display: flex;
justify-content: safe center;
align-items: safe center;
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: #000000CC;
overflow: auto;
}
.lazy-image {
display: block;
--ratioH: calc(var(--height) / var(--width));
--ratioW: calc(var(--width) / var(--height));
width: calc(min(90vw, 90vh * var(--ratioW)));
height: calc(min(90vh, 90vw * var(--ratioH)));
background-size: contain;
background-repeat: no-repeat;
background-position: center;
cursor: zoom-in;
}
input:checked + .lazy-image {
cursor: zoom-out;
--zwidth: calc(min(200vw, 200vh * var(--ratioW))*2);
--zheight: calc(min(200vh, 200vw * var(--ratioH))*2);
width: var(--zwidth);
height: var(--zheight);
scroll-snap-align: center;
}
input:checked + .lazy-image:active {
cursor: grabbing;
}
body:has(.project-image > input:checked) {
overflow: hidden;
}
.modal .close {
cursor: pointer;
position: fixed;
top: 0;
right: 0;
margin: 20px;
width: 60px;
height: 60px;
background-image: url('/img/modal-close.svg');
background-size: 30px 30px;
background-position: center;
background-repeat: no-repeat;
}
.modal-bg {
position: fixed;
z-index: -1;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
.text-section > * {
animation: fly-up .5s ease-out 0s 1 normal none;
}
.footer-logo {
width: 50px;
height: 50px;
}
#cursor-thing {
position: static;
cursor: pointer;
width: 50px;
height: 50px;
background-image: url('/img/duck-sprite.webp');
z-index: 1;
}
@keyframes fly-up {
0% {
transform: translateY(70%);
opacity: 0%;
}
40% {
transform: translateY(0%);
opacity: 70%;
}
100% {
opacity: 100%;
}
}
@keyframes fly-down {
0% {
transform: translateY(-70%);
opacity: 0%;
}
20% {
transform: translateY(0%);
opacity: 70%;
}
100% {
opacity: 100%;
}
}
@keyframes fly-forward {
0% {
transform: scale(0);
opacity: 0%;
}
20% {
transform: scale(1);
opacity: 70%;
}
100% {
opacity: 100%;
}
}
@keyframes color-change-1 {
0% {
background-color: #29BDBD;
}
25% {
background-color: #197293;
}
75% {
background-color: #197293;
}
100% {
background-color: #29BDBD;
}
}
@keyframes color-change-2 {
0% {
background: linear-gradient(90deg, #00000000 0%, #29BDBD 100%);
}
25% {
opacity: 100%;
}
49% {
background: linear-gradient(90deg, #00000000 0%, #29BDBD 100%);
opacity: 0%;
}
50% {
background: linear-gradient(90deg, #29BDBD 0%, #00000000 100%);
opacity: 0%;
}
75% {
opacity: 100%;
}
100% {
background: linear-gradient(90deg, #29BDBD 0%, #00000000 100%);
}
}
/* full-res images */
#oscp-fr {
background-image: url(/img/osc-pairing.png);
--width: 1260;
--height: 798;
}
#oscc-fr {
background-image: url(/img/osc-clicker.png);
--width: 1551;
--height: 3284;
}
#lpcl-fr {
background-image: url(/img/peercord-login.png);
--width: 2004;
--height: 1262;
}
#lpcc-fr {
background-image: url(/img/peercord-chat.png);
--width: 2004;
--height: 1262;
}
#lio-fr {
background-image: url(/img/ilo-overview.jpg);
--width: 1913;
--height: 921;
}
#lit-fr {
background-image: url(/img/ilo-temperatures.jpg);
--width: 1907;
--height: 923;
}
#lid-fr {
background-image: url(/img/ilo-drives.jpg);
--width: 1916;
--height: 917;
}
#lifci-fr {
background-image: url(/img/ilo-fan-and-cpu-info.jpg);
--width: 1188;
--height: 823;
}
#sma-fr {
background-image: url(/img/smbus-mitm-arduino.jpg);
--width: 1920;
--height: 1440;
}
#smw-fr {
background-image: url(/img/smbus-mitm-wiring.jpg);
--width: 1920;
--height: 1440;
}
#scst-fr {
background-image: url(/img/security-camera-stream.jpg);
--width: 1764;
--height: 1004;
}
#scsc-fr {
background-image: url(/img/security-camera-screenshot.png);
--width: 1440;
--height: 3120;
}
#r-fr {
background-image: url(/img/roomba.jpg);
--width: 1233;
--height: 925;
}
#rc-fr {
background-image: url(/img/roomba-control.jpg);
--width: 1185;
--height: 655;
}