This commit is contained in:
2026-09-07 00:47:32 +02:00
parent 2eced36997
commit c994bf283a
88 changed files with 3018 additions and 587 deletions
+421 -319
View File
@@ -1,402 +1,504 @@
$columnleft: 12rem;
$gap: 1.875rem;
/* purple green yellow */
$spaceindigo: #3D315B;
$duskblue: #444B6E;
$dustyolive: #708B75;
$mutedolive: #9AB87A;
$limecream: #F8F991;
$dark: #0b0b0b;
$grey: #a1a1a1;
/* blue pink violet */
$oceanblue: #2E86AB;
$berryblush: #A23B72;
$carrotorange: #F18F01;
$redochre: #C73E1D;
$midnightviolet: #3B1F2B;
$orange: #F39F5A;
$pink: #AE445A;
$bordeaux: #662549;
$purple: #451952;
/* something */
$grey: #455054;
$blue: #308695;
$pink: #D45769;
$orange: #E69D45;
$light: #D4CFC9;
$mainBg: #232323;
$defaultColor: #c9c9c9;
/* 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.75rem 0.75rem 6.25rem 0;
background-color: $mainBg;
min-height: 100vh;
box-sizing: border-box;
padding: 0;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
font-size: 1.125rem;
background: $inkpanel;
color: $colortext;
font-family: "Fira Sans", sans-serif;
font-size: 16px;
line-height: 1.6;
color: $defaultColor;
a,
p,
h1,
h2,
h3,
h4 {
padding: 0;
margin: 0;
-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;
}
a,
p {
line-height: 1.6;
margin: 0.75rem 0;
}
.logo {
font-family: $font-mono;
font-weight: 700;
color: rgba($light, 0.3);
a {
color: $orange;
}
.firstname {
color: rgba($pink, .8);
}
ul,
ol {
margin: 0.75rem 0;
li {
margin: 0.5rem 0;
.lastname {
color: rgba($orange, .8);
}
}
.contact {
color: $pink;
}
.contact-middle {
color: $bordeaux;
}
// --------------------------------------------------
// Main page
// --------------------------------------------------
.main {
max-width: 62.5rem;
margin: 3.125rem auto 0;
padding-left: 0.75rem;
.top {
text-align: center;
h1.name {
font-size: 4.5rem;
line-height: 1.1;
margin-bottom: 0.5rem;
.firstname {
color: $orange;
}
.lastname {
color: $pink;
}
}
h2 {
font-size: 2rem;
line-height: 1.2;
color: $defaultColor;
margin-bottom: 0.5rem;
}
.skills {
color: $defaultColor;
}
}
h3 {
color: rgba($defaultColor, 0.6);
margin-bottom: 0.75rem;
margin-top: 4.375rem;
font-weight: 600;
}
nav {
display: flex;
justify-content: center;
gap: 14px;
margin-left: 72px;
a {
color: $orange;
display: inline-block;
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;
&.main-link {
font-size: 1.25rem;
margin-left: 1.125rem;
margin-right: 1.125rem;
}
}
.movie {
display: flex;
flex-direction: row;
align-items: center;
justify-content: flex-start;
margin-top: 2.25rem;
p {
margin: 0;
&:hover {
color: rgba($light, 1);
transform: translateX(4px);
}
img {
margin-right: 0.75rem;
&.mobile {
display: none;
}
}
a {
color: $orange;
font-size: 0.875rem;
opacity: 0.5;
}
h4 {
margin-right: 0.75rem;
}
.movie-title {
margin-bottom: 0.375rem;
display: flex;
flex-direction: row;
align-items: center;
h4 {
font-size: 1.125rem;
font-weight: 600;
}
&.active {
color: rgba($light, 1);
transform: translateX(4px);
}
}
}
}
// --------------------------------------------------
// Main page — mobile
// --------------------------------------------------
@media (max-width: 37.5rem) {
.main {
.top h1.name {
font-size: 3rem;
}
.movie {
img {
display: none;
&.mobile {
display: block;
margin: 0 auto 0.75rem;
}
}
.movie-title {
flex-direction: column;
}
}
}
}
// --------------------------------------------------
// Blog
// --------------------------------------------------
pre {
padding: 0.75rem;
border-radius: 0.25rem;
overflow: auto;
code {
padding: 0;
background: none;
}
}
code {
padding: 0.125rem 0.25rem;
background: #383838;
font-size: 0.875rem;
line-height: 1.8;
color: $grey;
}
.main {
a {
text-decoration: none;
color: $pink;
&:hover {
text-decoration: underline;
}
}
// --------------------------------------------------
// Blog header
// --------------------------------------------------
.header {
display: grid;
grid-template-columns: $columnleft minmax(0, 1fr);
column-gap: $gap;
margin-bottom: 1.5rem;
a {
margin-right: 2rem;
}
}
.logo {
display: block;
width: $columnleft;
padding: 0.3125rem;
box-sizing: border-box;
text-align: right;
.subtitle {
color: $orange;
font-weight: 600;
font-size: 1.25rem;
text-transform: uppercase;
font-family: $font-mono;
font-size: .8rem;
letter-spacing: .18em;
margin-bottom: 8px;
font-weight: 400;
}
a {
.firstname {
color: $orange;
.about {
p {
margin-bottom: 12px;
}
}
.latest-writing {
.entry {
display: flex;
align-items: center;
.date {
margin-right: 24px;
opacity: .5;
}
.lastname {
color: $pink;
a {
color: $light;
}
&:hover {
text-decoration: none;
h3 {
margin: 0;
font-weight: 400;
}
}
}
.latest-reading,
.latest-films {
.entry {
margin-bottom: 24px;
// --------------------------------------------------
// Blog entries
// --------------------------------------------------
h3 {
margin: 0;
font-weight: 400;
}
.blog {
margin-top: 1.5rem;
max-width: 75rem;
a {
color: $light;
}
p.tag-link {
color: rgba($orange, 0.6);
margin-top: 0.25rem;
.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: grid;
grid-template-columns: $columnleft minmax(0, 1fr);
column-gap: $gap;
align-items: start;
margin-bottom: 2.25rem;
display: flex;
align-items: center;
gap: 24px;
margin-bottom: 48px;
.column-left {
color: $grey;
margin-top: 0.25rem;
h2 {
margin: 0;
font-size: 2rem;
}
a {
color: $light;
}
img {
display: block;
}
.meta {
display: flex;
flex-direction: column;
align-items: flex-end;
flex-wrap: wrap;
align-items: center;
opacity: .6;
font-size: 1rem;
.middot {
margin: 0 12px;
}
line-height: 0;
.tags {
display: flex;
align-items: center;
flex-wrap: wrap;
p {
margin: 0 0 0.375rem;
> p {
margin-right: 12px;
}
}
}
.column-right {
min-width: 0;
.opinion {
.mobile {
display: none;
}
p {
margin-bottom: 4px;
h1 {
font-size: 1.625rem;
line-height: 1.3;
margin-bottom: 0.375rem;
a {
color: $defaultColor;
&.plot {
border-left: 3px solid rgba($light, .4);
padding-left: 12px;
margin: 12px 0 6px 0;
}
}
&.post {
min-width: 0;
a {
color: $pink;
}
}
}
}
}
h1 {
font-size: 2.5rem;
line-height: 1.2;
margin-bottom: 1.5rem;
}
.journal {
.entry {
margin: 24px 0;
border-bottom: 1px solid rgba($light, .05);
padding: 0 0 24px 0;
p {
font-size: 1.125rem;
line-height: 1.7;
}
h2 {
font-size: 2rem;
margin-bottom: 0;
h2,
h3 {
margin-top: 3rem;
}
> 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;
// --------------------------------------------------
// Blog — mobile
// --------------------------------------------------
@media (max-width: 37.5rem) {
padding-left: 0.75rem;
p {
margin: 0.75rem 0;
}
.header {
display: block;
margin-left: 0;
}
.logo {
text-align: left;
width: auto;
padding: 0;
}
.blog {
.entry {
display: block;
.column-left {
display: none;
p {
display: flex;
flex-direction: column;
a {
color: $light;
font-size: 1.1rem;
margin-bottom: 6px;
}
}
.column-right {
.mobile {
display: block;
&.rustlings {
> p {
margin-bottom: 12px;
.tags {
display: flex;
flex-direction: row;
margin-bottom: 0.75rem;
> p {
margin: 0 0.75rem 0 0;
}
}
a {
font-size: 1rem;
}
}
}
}
&.post {
h1 {
font-size: 2rem;
}
h1.title {
font-size: 3.5rem;
}
p {
font-size: 1.125rem;
line-height: 1.7;
}
.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;
}
}