Files
website/sass/main.scss
T
2026-09-07 00:47:32 +02:00

505 lines
7.3 KiB
SCSS

/* purple green yellow */
$spaceindigo: #3D315B;
$duskblue: #444B6E;
$dustyolive: #708B75;
$mutedolive: #9AB87A;
$limecream: #F8F991;
/* blue pink violet */
$oceanblue: #2E86AB;
$berryblush: #A23B72;
$carrotorange: #F18F01;
$redochre: #C73E1D;
$midnightviolet: #3B1F2B;
/* something */
$grey: #455054;
$blue: #308695;
$pink: #D45769;
$orange: #E69D45;
$light: #D4CFC9;
/* variables */
$paperblack: #121315;
$inkpanel: #17181B;
$warmivory: #F3F1EA;
$bronzeaccent: #8A7A5A;
$colortext: #C8C3B9;
$font-display: "Instrument Serif", Georgia, serif;
$font-body: "Fira Sans", sans-serif;
$font-mono: "DM Mono", monospace;
$maxwidth: 960px;
/* reset */
* {
box-sizing: border-box;
}
html {
scroll-behavior: smooth;
}
h1, p {
margin: 0;
padding: 0;
}
body {
margin: 0;
padding: 0;
background: $inkpanel;
color: $colortext;
font-family: "Fira Sans", sans-serif;
font-size: 16px;
line-height: 1.6;
-webkit-font-smoothing: antialiased;
}
::selection {
background: $bronzeaccent;
color: $paperblack;
}
a {
color: inherit;
text-decoration: none;
}
button,
input,
textarea {
font: inherit;
}
/* --- new ---*/
.section {
margin-bottom: 48px;
}
.centered {
max-width: $maxwidth;
margin: 0 auto;
padding: 24px 24px;
}
.top {
background-color: $paperblack;
border-bottom: 1px solid rgba($light, 0.15);
.header {
display: flex;
align-items: center;
}
.logo {
font-family: $font-mono;
font-weight: 700;
color: rgba($light, 0.3);
.firstname {
color: rgba($pink, .8);
}
.lastname {
color: rgba($orange, .8);
}
}
nav {
display: flex;
justify-content: center;
gap: 14px;
margin-left: 72px;
a {
font-size: 0.75rem;
font-family: $font-mono;
text-transform: uppercase;
font-weight: 400;
letter-spacing: .15em;
color: rgba($light, 0.5);
transition: transform .2s ease, color .2s ease;
&:hover {
color: rgba($light, 1);
transform: translateX(4px);
}
&.active {
color: rgba($light, 1);
transform: translateX(4px);
}
}
}
}
.main {
a {
color: $pink;
&:hover {
text-decoration: underline;
}
}
.subtitle {
color: $orange;
text-transform: uppercase;
font-family: $font-mono;
font-size: .8rem;
letter-spacing: .18em;
margin-bottom: 8px;
font-weight: 400;
}
.about {
p {
margin-bottom: 12px;
}
}
.latest-writing {
.entry {
display: flex;
align-items: center;
.date {
margin-right: 24px;
opacity: .5;
}
a {
color: $light;
}
h3 {
margin: 0;
font-weight: 400;
}
}
}
.latest-reading,
.latest-films {
.entry {
margin-bottom: 24px;
h3 {
margin: 0;
font-weight: 400;
}
a {
color: $light;
}
.author {
opacity: .5;
.middot {
margin: 0 4px;
}
}
}
}
.opportunities {
display: flex;
align-items: center;
font-family: $font-mono;
font-weight: 700;
font-size: .8rem;
margin-bottom: 48px;
.available {
text-transform: uppercase;
color: $pink;
letter-spacing: .1em;
}
.location {
margin-left: 24px;
color: rgba($light, .6);
}
}
.elsewhere {
margin-top: 48px;
.links {
padding: 4px 14px;
border-left: 3px solid rgba($orange, .4);
a {
color: $light;
}
}
}
.best {
margin-bottom: 96px;
.subtitle {
margin-bottom: 24px;
}
.entry {
display: flex;
align-items: center;
gap: 24px;
margin-bottom: 48px;
h2 {
margin: 0;
font-size: 2rem;
}
a {
color: $light;
}
img {
display: block;
}
.meta {
display: flex;
flex-wrap: wrap;
align-items: center;
opacity: .6;
font-size: 1rem;
.middot {
margin: 0 12px;
}
.tags {
display: flex;
align-items: center;
flex-wrap: wrap;
> p {
margin-right: 12px;
}
}
}
.opinion {
p {
margin-bottom: 4px;
&.plot {
border-left: 3px solid rgba($light, .4);
padding-left: 12px;
margin: 12px 0 6px 0;
}
}
a {
color: $pink;
}
}
}
}
}
.journal {
.entry {
margin: 24px 0;
border-bottom: 1px solid rgba($light, .05);
padding: 0 0 24px 0;
h2 {
font-size: 2rem;
margin-bottom: 0;
> a{
color: $light;
}
}
p {
> code {
background: rgba($pink, .25);
padding: .1rem .2rem;
font-size: 85%;
border-radius: 4px;
}
}
.meta {
display: flex;
align-items: center;
flex-wrap: wrap;
opacity: .6;
margin-bottom: 12px;
.split {
margin: 0 12px;
}
.date {
font-family: $font-mono;
text-transform: uppercase;
font-size: .8rem;
}
.tags {
display: flex;
align-items: center;
flex-wrap: wrap;
.tag {
font-family: $font-mono;
text-transform: uppercase;
font-size: .75rem;
margin-right: 8px;
}
}
}
}
&.article {
.table-of-contents {
padding-left: 12px;
p {
display: flex;
flex-direction: column;
a {
color: $light;
font-size: 1.1rem;
margin-bottom: 6px;
}
}
&.rustlings {
> p {
margin-bottom: 12px;
a {
font-size: 1rem;
}
}
}
}
h1.title {
font-size: 3.5rem;
}
.content {
margin-top: 36px;
h2 {
font-size: 2rem;
margin: 48px 0 24px 0;
}
h3 {
font-size: 1.5rem;
margin: 24px 0 12px;
}
}
pre {
padding: 12px;
border: 1px solid rgba($light, .1);
overflow: scroll;
}
.table {
ol {
padding: 0;
li {
font-size: 1.2rem;
a {
color: $blue;
}
}
}
}
}
}
.footer {
padding: 48px 0;
display: flex;
align-items: center;
justify-content: center;
font-family: $font-mono;
font-size: .8rem;
flex-grow: 1;
.middot {
opacity: .3;
margin: 0 12px;
}
}
a[target="_blank"]:hover {
text-decoration: underline dotted;
}
// --- small screens ---
@media (max-width: 600px) {
.top {
.header {
flex-direction: column;
align-items: flex-start;
}
nav {
flex-direction: column;
align-items: flex-start;
margin-left: 0;
margin-top: 12px;
}
}
.main .opportunities {
flex-direction: column;
.location {
margin-left: 0;
}
}
.main .latest-writing {
.entry {
flex-direction: column;
align-items: flex-start;
margin-top: 24px;
}
}
.main .best {
.entry {
img {
display: none;
}
}
}
.footer {
flex-direction: column;
align-items: flex-start;
margin: 48px 24px;
}
}