victorwesterlund.com/public/assets/css/style.css
2022-07-18 10:20:11 +02:00

209 lines
No EOL
3.5 KiB
CSS
Executable file

/* -- Cornerstones -- */
:root {
--primer-color-base: 255, 255, 255;
--primer-color-contrast: 0, 0, 0;
--color-base: rgb(var(--primer-color-base));
--color-contrast: rgb(var(--primer-color-contrast));
--padding: 20px;
}
* {
margin: 0;
box-sizing: border-box;
font-family: 'Courier', sans-serif;
font-size: 20px;
color: inherit;
}
::selection {
background-color: var(--color-contrast);
color: var(--color-base);
}
::placeholder {
color: rgba(var(--primer-color-contrast), .5);
}
body {
display: flex;
flex-direction: column;
align-items: center;
color: var(--color-contrast);
background-color: var(--color-base);
gap: var(--padding);
margin: var(--padding) 0;
margin-bottom: 30vh;
}
a:not(p > a) {
text-decoration: none;
}
/* -- Components -- */
input {
letter-spacing: 5px;
}
input,
.button {
background-color: var(--color-contrast);
color: var(--color-base);
padding: calc(var(--padding) / 2) calc(var(--padding) * 1.5);
text-align: left;
display: flex;
align-items: center;
justify-content: center;
gap: var(--padding);
height: 3.5em;
}
input,
.button.phantom {
background-color: transparent;
border: solid 3px var(--color-contrast);
color: var(--color-contrast);
}
img,
.button {
user-select: none;
}
.button :not(p) {
height: 2em;
}
.interact::before {
content: "tap";
}
/* ---- */
.spacer {
display: grid;
justify-items: center;
}
body > .spacer {
margin: var(--padding) 0;
}
.spacer div {
width: 205px;
height: 7px;
background-color: var(--color-contrast);
transform: rotate(-4deg);
}
/* -- Content -- */
section {
max-width: 600px;
margin: var(--padding) calc(var(--padding) * 1.5);
display: flex;
flex-direction: column;
align-items: center;
text-align: justify;
gap: var(--padding);
}
section > *,
section picture > img {
width: 100%;
}
section#intro {
max-width: 250px;
text-align: center;
}
section#contact > div {
display: grid;
grid-template-rows: repeat(2, 1fr);
gap: var(--padding);
}
section#sky .button img {
height: 50%;
}
section#coffee > img {
width: 100px;
margin-bottom: calc(var(--padding) * 2);
}
/* ---- */
.banner {
width: 100%;
background-color: rgba(var(--primer-color-contrast), .05);
text-align: center;
padding: calc(var(--padding) / 2) 0;
margin: var(--padding) 0;
}
/* -- Media queries -- */
@media (hover: hover) {
.button:hover {
background-color: rgba(var(--primer-color-contrast), .75);
}
.button:active {
background-color: rgba(var(--primer-color-contrast), .7);
}
/* ---- */
.button.phantom:hover {
background-color: rgba(var(--primer-color-contrast), .05);
}
.button.phantom:active {
background-color: rgba(var(--primer-color-contrast), .1);
}
}
@media (pointer: fine) {
.button {
cursor: pointer;
}
.interact::before {
content: "click";
}
}
@media (prefers-color-scheme: dark) {
:root {
--primer-color-base: 0, 0, 0;
--primer-color-contrast: 255, 255, 255;
}
section#coffee > img {
filter: invert(1);
}
}
@media (max-width: 303px) {
section#sky img {
display: none;
}
}
@media (min-width: 600px) {
section#code {
display: grid;
grid-template-columns: 1fr 40px 1fr;
width: 100%;
}
section#contact > div {
grid-template-rows: 1fr;
grid-template-columns: repeat(2, 1fr);
}
}