Files
pages/src/routes/+layout.svelte

322 lines
8.7 KiB
Svelte
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<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>
@import url('https://fonts.upset.dev/css2?family=IBM+Plex+Mono:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;1,100;1,200;1,300;1,400;1,500;1,600;1,700&family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&family=Space+Mono:ital,wght@0,400;0,700;1,400;1,700&display=swap');
@import url('https://fonts.upset.dev/css2?family=Roboto+Flex:opsz,slnt,wdth,wght,XTRA,YOPQ,YTAS,YTFI,YTUC@8..144,-10..0,25..151,100..1000,323..603,69,649..854,560..788,528..760&display=swap');
: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 !important;
--color-background: #1b1b1b;
--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: #2b2b2b;
--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: 'Roboto Flex', 'Inter', 'Lato', sans-serif;
--font-mono: 'IBM Plex Mono', monospace;
--page-width: 1200px;
--screen-width-mobile: 800px;
}
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;
/* 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);
line-height: 1.8rem;
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.2rem;
line-height: 4.3rem;
}
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-title);
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: 'Space Mono', monospace;
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 {
font-size: 1.1rem;
line-height: 1.7rem;
}
}
}
</style>