439 lines
12 KiB
Svelte
439 lines
12 KiB
Svelte
<script>
|
||
import Header from "$lib/header.svelte";
|
||
import Footer from "$lib/footer.svelte";
|
||
|
||
let { children } = $props();
|
||
</script>
|
||
|
||
<div class="waters"></div>
|
||
<div class="all-content-container">
|
||
<Header />
|
||
|
||
{@render children()}
|
||
|
||
<Footer />
|
||
</div>
|
||
|
||
<style>
|
||
/* #region Old Fonts */
|
||
/* Roboto Flex */
|
||
@font-face {
|
||
font-family: "Roboto Flex";
|
||
src: url("/fonts/roboto-flex/flex.ttf");
|
||
}
|
||
|
||
/* Space Mono */
|
||
@font-face {
|
||
font-family: "Space Mono";
|
||
src: url("/fonts/space-mono/regular.ttf");
|
||
}
|
||
@font-face {
|
||
font-family: "Space Mono";
|
||
src: url("/fonts/space-mono/italic.ttf");
|
||
font-style: italic;
|
||
}
|
||
@font-face {
|
||
font-family: "Space Mono";
|
||
src: url("/fonts/space-mono/bold.ttf");
|
||
font-weight: bold;
|
||
}
|
||
@font-face {
|
||
font-family: "Space Mono";
|
||
src: url("/fonts/space-mono/bolditalic.ttf");
|
||
font-style: italic;
|
||
font-weight: bold;
|
||
}
|
||
/* IBM Plex Mono */
|
||
@font-face {
|
||
font-family: "IBM Plex Mono";
|
||
src: url("/fonts/ibm-plex-mono/medium.ttf");
|
||
font-weight: 500;
|
||
}
|
||
/* #endregion */
|
||
|
||
/* #region New Fonts */
|
||
/* Bai Jamjuree. wght: 200-700 */
|
||
|
||
@font-face {
|
||
font-family: "Bai Jamjuree";
|
||
src: url("/fonts/bai-jamjuree/extralight.ttf");
|
||
font-weight: 200;
|
||
}
|
||
@font-face {
|
||
font-family: "Bai Jamjuree";
|
||
src: url("/fonts/bai-jamjuree/extralight-italic.ttf");
|
||
font-weight: 200;
|
||
font-style: italic;
|
||
}
|
||
@font-face {
|
||
font-family: "Bai Jamjuree";
|
||
src: url("/fonts/bai-jamjuree/light.ttf");
|
||
font-weight: 300;
|
||
}
|
||
@font-face {
|
||
font-family: "Bai Jamjuree";
|
||
src: url("/fonts/bai-jamjuree/light-italic.ttf");
|
||
font-weight: 300;
|
||
font-style: italic;
|
||
}
|
||
@font-face {
|
||
font-family: "Bai Jamjuree";
|
||
src: url("/fonts/bai-jamjuree/regular.ttf");
|
||
font-weight: 400;
|
||
}
|
||
@font-face {
|
||
font-family: "Bai Jamjuree";
|
||
src: url("/fonts/bai-jamjuree/italic.ttf");
|
||
font-weight: 400;
|
||
font-style: italic;
|
||
}
|
||
@font-face {
|
||
font-family: "Bai Jamjuree";
|
||
src: url("/fonts/bai-jamjuree/medium.ttf");
|
||
font-weight: 500;
|
||
}
|
||
@font-face {
|
||
font-family: "Bai Jamjuree";
|
||
src: url("/fonts/bai-jamjuree/medium-italic.ttf");
|
||
font-weight: 500;
|
||
font-style: italic;
|
||
}
|
||
@font-face {
|
||
font-family: "Bai Jamjuree";
|
||
src: url("/fonts/bai-jamjuree/semibold.ttf");
|
||
font-weight: 600;
|
||
}
|
||
@font-face {
|
||
font-family: "Bai Jamjuree";
|
||
src: url("/fonts/bai-jamjuree/semibold-italic.ttf");
|
||
font-weight: 600;
|
||
font-style: italic;
|
||
}
|
||
@font-face {
|
||
font-family: "Bai Jamjuree";
|
||
src: url("/fonts/bai-jamjuree/bold.ttf");
|
||
font-weight: bold;
|
||
}
|
||
@font-face {
|
||
font-family: "Bai Jamjuree";
|
||
src: url("/fonts/bai-jamjuree/bold-italic.ttf");
|
||
font-weight: bold;
|
||
font-style: italic;
|
||
}
|
||
|
||
/* Kode Mono. wght: 400-700 */
|
||
@font-face {
|
||
font-family: "Kode Mono";
|
||
src: url("/fonts/kode-mono/variable-wght.ttf");
|
||
font-weight: 400 700;
|
||
font-style: normal;
|
||
}
|
||
/* #endregion */
|
||
|
||
:global {
|
||
:root {
|
||
--color-text: #d0d0d0;
|
||
--color-text-img: invert(98%) sepia(1%) saturate(4643%) hue-rotate(297deg) brightness(115%) contrast(76%);
|
||
--color-text-dark: #1e1e1e;
|
||
--color-highlight: #51B86B;
|
||
--color-header: color-mix(in srgb, var(--color-highlight) 80%, black);
|
||
--color-header-highlight: color-mix(in srgb, #6d1e26 80%, transparent);
|
||
|
||
--color-background: #111111;
|
||
--color-background-highlight: color-mix(in srgb, var(--color-highlight) 10%, transparent);
|
||
--color-background-highlight-hover: color-mix(in srgb, var(--color-highlight) 60%, transparent);
|
||
|
||
--color-waters: #242424;
|
||
|
||
--notch-size: 32px;
|
||
--notch-size-small: 16px;
|
||
|
||
--color-link-unvisited: #c2e8ff;
|
||
--color-link-visited: #ffd7f0;
|
||
--color-link-hovered: #ffdad5;
|
||
|
||
/* --font-title: 'Roboto Flex'; */
|
||
--font-sans-serif: 'Bai Jamjuree', sans-serif;
|
||
--font-mono: 'Kode Mono', monospace;
|
||
--font-stylised: 'Space Mono', monospace;
|
||
|
||
--page-width: 1200px;
|
||
--content-width: 1000px;
|
||
--screen-width-mobile: 800px;
|
||
|
||
--margin-content-side: 24px;
|
||
}
|
||
|
||
html {
|
||
scroll-behavior: smooth;
|
||
position: relative;
|
||
min-height: 100%;
|
||
}
|
||
|
||
body {
|
||
font-family: var(--font-sans-serif);
|
||
font-size: 1.2rem;
|
||
color: var(--color-text); /* text colour */
|
||
|
||
margin: 0;
|
||
background-color: var(--color-background);
|
||
}
|
||
|
||
.all-content-container {
|
||
display: flex;
|
||
flex-direction: column;
|
||
height: 100vh;
|
||
/* max-width: 100%; */
|
||
}
|
||
|
||
.waters {
|
||
position: fixed;
|
||
z-index: -99;
|
||
top: 0;
|
||
left: 0;
|
||
height: 100%;
|
||
width: 100%;
|
||
background-color: var(--color-waters);
|
||
mask-image: url('/bremen-waters-white.svg');
|
||
mask-position: center;
|
||
background-position: center;
|
||
background-attachment: fixed;
|
||
}
|
||
|
||
p, span, li, pre, a {
|
||
color: var(--color-text);
|
||
font-size: 1.1rem;
|
||
line-height: 1.6rem;
|
||
font-weight: 400;
|
||
}
|
||
ul {
|
||
padding: 0;
|
||
}
|
||
|
||
li::before {
|
||
content: "–";
|
||
font-weight: 900;
|
||
color: var(--color-highlight);
|
||
padding-right: 8px;
|
||
}
|
||
li {
|
||
display: flex;
|
||
padding-left: 0;
|
||
margin-top: 4px;
|
||
margin-bottom: 4px;
|
||
transition: background-color 0.2s ease-in-out;
|
||
padding: 2px 12px;
|
||
}
|
||
li a {
|
||
display: inline;
|
||
}
|
||
|
||
h1 {
|
||
font-size: 4.0rem;
|
||
line-height: 4.0rem;
|
||
}
|
||
|
||
h2 {
|
||
font-size: 2.5rem;
|
||
line-height: 2.5rem;
|
||
}
|
||
h2::before {
|
||
letter-spacing: -0.5rem;
|
||
content: '› ';
|
||
margin-right: 15px;
|
||
}
|
||
|
||
h3 {
|
||
font-size: 2.0rem;
|
||
line-height: 2.0rem;
|
||
}
|
||
h3::before {
|
||
letter-spacing: -0.3rem;
|
||
content: '›› ';
|
||
margin-right: 10px;
|
||
}
|
||
|
||
h4, h5, h6 {
|
||
font-size: 1.7rem;
|
||
line-height: 1.7rem;
|
||
}
|
||
h4::before {
|
||
letter-spacing: -0.26rem;
|
||
content: '››› ';
|
||
margin-right: 6px;
|
||
}
|
||
|
||
h1, h2, h3, h4, h5, h6 {
|
||
font-weight: 870;
|
||
font-family: var(--font-sans-serif);
|
||
color: var(--color-highlight);
|
||
margin-top: 12px;
|
||
margin-bottom: 8px;
|
||
width: fit-content;
|
||
}
|
||
h1, h2, h3, h4, h5, h6, .wide-font {
|
||
font-variation-settings:
|
||
"wdth" 151, /* width */
|
||
"XTRA" 560, /* counter width */
|
||
"YTUC" 662, /* uppercase height */
|
||
"YTAS" 700, /* ascender height */
|
||
"YOPQ" 69, /* thin stroke */
|
||
"YTFI" 788 /* figure height */
|
||
;
|
||
}
|
||
|
||
code, .code-block {
|
||
font-family: var(--font-mono);
|
||
font-size: 0.8em;
|
||
font-weight: 500;
|
||
background-color: var(--color-background-highlight);
|
||
/* color: var(--color-background); */
|
||
border-radius: 8px;
|
||
padding-left: 6px;
|
||
padding-right: 6px;
|
||
}
|
||
|
||
img, video {
|
||
width: 80%;
|
||
margin-left: auto;
|
||
margin-right: auto;
|
||
display: flex;
|
||
}
|
||
|
||
.horizontally-centre-aligned {
|
||
width: 80%;
|
||
display: flex;
|
||
justify-content: center;
|
||
align-items: center;
|
||
margin-left: auto;
|
||
margin-right: auto;
|
||
}
|
||
|
||
.inline-img-left {
|
||
float: left;
|
||
max-width: 24%;
|
||
margin: 0 24px 24px 0;
|
||
}
|
||
|
||
.inline-img-right {
|
||
float: right;
|
||
max-width: 24%;
|
||
margin: 0 0 24px 24px;
|
||
}
|
||
|
||
a:link {
|
||
color: var(--color-link-unvisited);
|
||
text-decoration-style: dashed;
|
||
}
|
||
/* visited link */
|
||
a:visited {
|
||
color: var(--color-link-visited);
|
||
}
|
||
/* mouse over link */
|
||
a:hover {
|
||
color: var(--color-link-hovered);
|
||
}
|
||
|
||
.notched {
|
||
clip-path: polygon(
|
||
0% var(--notch-size),
|
||
var(--notch-size) 0%,
|
||
calc(100% - var(--notch-size)) 0%,
|
||
100% var(--notch-size),
|
||
100% calc(100% - var(--notch-size)),
|
||
calc(100% - var(--notch-size)) 100%,
|
||
var(--notch-size) 100%,
|
||
0% calc(100% - var(--notch-size))
|
||
);
|
||
}
|
||
|
||
.notched-small {
|
||
clip-path: polygon(
|
||
0% var(--notch-size-small),
|
||
var(--notch-size-small) 0%,
|
||
calc(100% - var(--notch-size-small)) 0%,
|
||
100% var(--notch-size-small),
|
||
100% calc(100% - var(--notch-size-small)),
|
||
calc(100% - var(--notch-size-small)) 100%,
|
||
var(--notch-size-small) 100%,
|
||
0% calc(100% - var(--notch-size-small))
|
||
);
|
||
}
|
||
|
||
.project-subtitle {
|
||
color: var(--color-highlight);
|
||
font-weight: 700;
|
||
font-style: italic;
|
||
margin-top: 0;
|
||
font-family: var(--font-mono);
|
||
}
|
||
|
||
.project-banner-container {
|
||
position: relative;
|
||
width: 80%;
|
||
margin-left: auto;
|
||
margin-right: auto;
|
||
display: flex;
|
||
}
|
||
|
||
.project-banner {
|
||
margin: 0; /* reset left/right margins */
|
||
width: 100%;
|
||
}
|
||
|
||
.project-icon {
|
||
float: left;
|
||
margin: 16px 16px 16px 0;
|
||
width: 20%;
|
||
}
|
||
|
||
.project-date {
|
||
font-size: 1rem;
|
||
font-weight: 700;
|
||
line-height: 1rem;
|
||
width: fit-content;
|
||
margin: 0;
|
||
padding: 0;
|
||
|
||
color: var(--color-text-dark);
|
||
background-color: var(--color-highlight);
|
||
font-family: var(--font-stylised);
|
||
padding: 4px;
|
||
}
|
||
|
||
.project-date-embed {
|
||
position: absolute;
|
||
left: 0;
|
||
bottom: 0;
|
||
}
|
||
|
||
.pixelated-img {
|
||
image-rendering: pixelated;
|
||
}
|
||
|
||
@media screen and (max-width: 800px) {
|
||
h1 {
|
||
font-size: 2.3rem;
|
||
line-height: 2.4rem;
|
||
}
|
||
|
||
h2 {
|
||
font-size: 1.8rem;
|
||
line-height: 1.8rem;
|
||
}
|
||
|
||
h3 {
|
||
font-size: 1.6rem;
|
||
line-height: 1.6rem;
|
||
}
|
||
|
||
h4, h5, h6 {
|
||
font-size: 1.4rem;
|
||
line-height: 1.4rem;
|
||
}
|
||
|
||
/* p, span, li, pre, a {
|
||
} */
|
||
}
|
||
}
|
||
</style> |