fixed font link for subpages; reduced width of devlog posts; reduced height of banner; removed old banner

This commit is contained in:
2025-12-30 19:03:57 +00:00
parent 3e90dbdc80
commit b8ed25ae65
10 changed files with 220 additions and 119 deletions

View File

@@ -81,7 +81,7 @@
.subcontainer { .subcontainer {
max-width: 1600px; max-width: 1600px;
height: 600px; height: 500px;
display: flex; display: flex;
flex-direction: row; flex-direction: row;
margin-left: auto; margin-left: auto;

View File

@@ -1,81 +0,0 @@
<script lang="ts">
import SeparatorLine from "./separator-line.svelte";
let {
title,
subtitle = "",
banner = "",
bannerAlt = "",
}: {
title: string;
subtitle?: string;
banner?: string;
bannerAlt?: string;
} = $props();
</script>
<div class="container notched">
<img src="{banner}" alt="{bannerAlt}">
<h1 class="title">{title}</h1>
</div>
{#if subtitle}
<h1 class="subtitle">» {subtitle}</h1>
{/if}
<SeparatorLine />
<style>
.container {
position: relative;
}
.container img {
position: absolute;
left: 0;
top: 0;
object-fit: cover;
}
.container, .container img {
height: 500px;
width: 100%;
}
.title {
font-family: var(--font-title);
font-size: 2.4rem;
line-height: 2.7rem;
position: absolute;
width: 100%;
box-sizing: border-box;
height: fit-content;
padding: 12px 24px;
left: 0;
right: 0;
bottom: 0px;
font-weight: 900;
background-image: linear-gradient(to right, #1b1b1bFF, #1b1b1bBF);
}
.subtitle {
padding-left: 24px;
font-size: 2.2rem;
line-height: 2.5rem;
}
@media screen and (max-width: 800px) {
.container, .container img {
height: 300px;
}
.title {
font-size: 1.6rem;
line-height: 1.8rem;
}
.subtitle {
font-size: 1.2rem;
line-height: 1.4rem;
}
}
</style>

162
src/lib/banner2.svelte Normal file
View File

@@ -0,0 +1,162 @@
<script lang="ts">
import SeparatorLine from "./separator-line.svelte";
let {
title,
date = "",
subtitle = "",
banner = "",
bannerAlt = "",
pixelated,
}: {
title: string;
date?: string;
subtitle?: string;
banner?: string;
bannerAlt?: string;
pixelated?: boolean;
} = $props();
</script>
<div class="container">
<div class="subcontainer">
<div class="img-container">
{#if banner}
{#if pixelated}
<img class="banner pixelated-img" src="{banner}" alt="{bannerAlt}">
{:else}
<img class="banner" src="{banner}" alt="{bannerAlt}">
{/if}
{/if}
<div class="text-container">
{@render titles({title, subtitle, date})}
</div>
</div>
</div>
<!-- {#if banner}
<div class="subcontainer">
<div class="img-container">
{#if pixelated}
<img class="pixelated-img" src="{banner}" alt="{bannerAlt}">
{:else}
<img src="{banner}" alt="{bannerAlt}">
{/if}
</div>
<div class="text-container">
{@render titles({title, subtitle, date})}
</div>
</div>
{:else}
<div class="subcontainer">
<div class="text-container">
{@render titles({title, subtitle, date})}
</div>
</div>
{/if} -->
</div>
{#snippet titles({title, subtitle, date}: {title: string, subtitle: string, date: string})}
<h1 class="title">{title}</h1>
{#if subtitle}
<p class="subtitle">[ {subtitle} ]</p>
{/if}
{#if date}
<p class="date">» {date}</p>
{/if}
{/snippet}
<SeparatorLine />
<style>
.container {
width: 100%;
background-color: var(--color-background-highlight);
}
.subcontainer {
max-width: var(--page-width);
/* min-height: 250px;
max-height: 600px; */
display: flex;
flex-direction: row;
margin-left: auto;
margin-right: auto;
}
.banner {
/* position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0; */
max-height: 260px;
}
.img-container {
flex-grow: 1;
width: 50%;
position: relative;
}
.text-container {
margin-left: var(--margin-content-side);
margin-right: var(--margin-content-side);
/* position: absolute;
bottom: 0; */
}
.container img {
height: 100%;
width: 100%;
object-fit: cover;
}
.title {
width: 100%;
box-sizing: border-box;
height: fit-content;
left: 0;
right: 0;
bottom: 0px;
/* font-style: italic; */
}
.date {
font-family: var(--font-title);
font-weight: 800;
font-size: 1.3rem;
margin-top: 0;
color: var(--color-highlight);
}
.subtitle {
font-style: italic;
font-family: var(--font-mono);
font-weight: 800;
font-size: 1.3rem;
margin-top: 0;
}
@media screen and (max-width: 800px) {
.subcontainer {
height: fit-content;
flex-direction: column;
}
.text-container {
width: initial;
}
.img-container {
width: 100%;
}
.img-container img {
height: 200px;
}
.subtitle {
font-size: 1.0rem;
line-height: 1.1rem;
}
}
</style>

View File

@@ -1,16 +1,37 @@
<div class="main-content"> <script lang="ts">
<slot /> let {
</div> useContentWidth,
}: {
useContentWidth?: boolean;
} = $props();
</script>
{#if useContentWidth}
<div class="main-content content-width">
<slot />
</div>
{:else}
<div class="main-content page-width">
<slot />
</div>
{/if}
<style> <style>
.main-content { .main-content {
width: 100%; width: 100%;
max-width: var(--page-width);
box-sizing: border-box; box-sizing: border-box;
margin: 0 auto; margin: 0 auto;
padding: 0 24px; padding: 0 24px;
} }
.content-width {
max-width: var(--content-width);
}
.page-width {
max-width: var(--page-width);
}
@media screen and (max-width: 800px) { @media screen and (max-width: 800px) {
.main-content { .main-content {
padding: 0 8px; padding: 0 8px;

View File

@@ -2,7 +2,7 @@
let { let {
noMargin, noMargin,
}: { }: {
noMargin: boolean; noMargin?: boolean;
} = $props(); } = $props();
</script> </script>

View File

@@ -19,27 +19,27 @@
/* Roboto Flex */ /* Roboto Flex */
@font-face { @font-face {
font-family: "Roboto Flex"; font-family: "Roboto Flex";
src: url("fonts/roboto-flex/flex.ttf"); src: url("/fonts/roboto-flex/flex.ttf");
} }
/* Space Mono */ /* Space Mono */
@font-face { @font-face {
font-family: "Space Mono"; font-family: "Space Mono";
src: url("fonts/space-mono/regular.ttf"); src: url("/fonts/space-mono/regular.ttf");
} }
@font-face { @font-face {
font-family: "Space Mono"; font-family: "Space Mono";
src: url("fonts/space-mono/italic.ttf"); src: url("/fonts/space-mono/italic.ttf");
font-style: italic; font-style: italic;
} }
@font-face { @font-face {
font-family: "Space Mono"; font-family: "Space Mono";
src: url("fonts/space-mono/bold.ttf"); src: url("/fonts/space-mono/bold.ttf");
font-weight: bold; font-weight: bold;
} }
@font-face { @font-face {
font-family: "Space Mono"; font-family: "Space Mono";
src: url("fonts/space-mono/bolditalic.ttf"); src: url("/fonts/space-mono/bolditalic.ttf");
font-style: italic; font-style: italic;
font-weight: bold; font-weight: bold;
} }
@@ -47,7 +47,7 @@
/* IBM Plex Mono */ /* IBM Plex Mono */
@font-face { @font-face {
font-family: "IBM Plex Mono"; font-family: "IBM Plex Mono";
src: url("fonts/ibm-plex-mono/medium.ttf"); src: url("/fonts/ibm-plex-mono/medium.ttf");
font-weight: 500; font-weight: 500;
} }
@@ -76,8 +76,10 @@
--font-mono: 'IBM Plex Mono', monospace; --font-mono: 'IBM Plex Mono', monospace;
--page-width: 1200px; --page-width: 1200px;
--content-width: 900px;
--screen-width-mobile: 800px; --screen-width-mobile: 800px;
--margin-content-side: 24px;
} }
html { html {
@@ -117,7 +119,8 @@
p, span, li, pre, a { p, span, li, pre, a {
color: var(--color-text); color: var(--color-text);
line-height: 1.8rem; font-size: 1.1rem;
line-height: 1.6rem;
font-weight: 400; font-weight: 400;
} }
ul { ul {
@@ -179,7 +182,7 @@
h1, h2, h3, h4, h5, h6 { h1, h2, h3, h4, h5, h6 {
font-weight: 870; font-weight: 870;
font-family: var(--font-title); font-family: var(--font-sans-serif);
color: var(--color-highlight); color: var(--color-highlight);
margin-top: 12px; margin-top: 12px;
margin-bottom: 8px; margin-bottom: 8px;
@@ -346,10 +349,8 @@
line-height: 1.4rem; line-height: 1.4rem;
} }
p, span, li, pre, a { /* p, span, li, pre, a {
font-size: 1.1rem; } */
line-height: 1.7rem;
}
} }
} }
</style> </style>

View File

@@ -39,7 +39,7 @@
<svelte:head> <svelte:head>
<title>denizk0461's website</title> <title>denizk0461's website</title>
<meta name="description" content="German developer posting about gamedev, programming, electronics projects, and sometimes music too."> <meta name="description" content="I'm a developer posting about my gamedev, programming, electronics, and sometimes music projects!">
</svelte:head> </svelte:head>
<Content> <Content>

View File

@@ -1,5 +1,5 @@
<script lang="ts"> <script lang="ts">
import BannerTitleAlt from "$lib/banner-title-alt.svelte"; import Banner2 from "$lib/banner2.svelte";
import Content from "$lib/content.svelte"; import Content from "$lib/content.svelte";
import LinkList, { type LinkEntry } from "$lib/link-list.svelte"; import LinkList, { type LinkEntry } from "$lib/link-list.svelte";
@@ -15,12 +15,10 @@
<title>Feeds | denizk0461</title> <title>Feeds | denizk0461</title>
</svelte:head> </svelte:head>
<BannerTitleAlt <Banner2
title="Feeds" title="Feeds"
banner="/feeds/banner.webp"
bannerAlt="Music files in a Windows 10 Explorer window"
subtitle="XML feeds" subtitle="XML feeds"
pixelated banner="banner.webp"
/> />
<Content> <Content>

View File

@@ -1,5 +1,5 @@
<script lang="ts"> <script lang="ts">
import BannerTitle from "$lib/banner-title.svelte"; import BannerTitleAlt from "$lib/banner-title-alt.svelte";
import Content from "$lib/content.svelte"; import Content from "$lib/content.svelte";
import TableOfContents from "$lib/table-of-contents.svelte"; import TableOfContents from "$lib/table-of-contents.svelte";
</script> </script>
@@ -8,12 +8,12 @@
<title>Daisy FM Synth | denizk0461</title> <title>Daisy FM Synth | denizk0461</title>
</svelte:head> </svelte:head>
<Content> <BannerTitleAlt
<BannerTitle title="Daisy FM Synth"
title="Daisy FM Synth" banner="/projects/daisyfm/banner.webp"
banner="/projects/daisyfm/banner.webp" bannerAlt="Close-up of Daisy, focussed on the effect knobs"/>
bannerAlt="Close-up of Daisy, focussed on the effect knobs"/>
<Content>
<img src="/projects/daisyfm/fullview.webp" alt="Top view of the Daisy FM synth"> <img src="/projects/daisyfm/fullview.webp" alt="Top view of the Daisy FM synth">
<p>A friend showed me the <a href="https://electro-smith.com/products/daisy-seed">Daisy Seed</a>, an Arduino-compatible microcontroller made for developing audio equipment. With a little bit of motivation and absolutely no experience in either programming synthesisers or electronics in general, I quickly got my hands on one and started to toy around.</p> <p>A friend showed me the <a href="https://electro-smith.com/products/daisy-seed">Daisy Seed</a>, an Arduino-compatible microcontroller made for developing audio equipment. With a little bit of motivation and absolutely no experience in either programming synthesisers or electronics in general, I quickly got my hands on one and started to toy around.</p>

View File

@@ -1,6 +1,6 @@
<script> <script>
import BannerTitleAlt from "$lib/banner-title-alt.svelte"; import BannerTitleAlt from "$lib/banner-title-alt.svelte";
import ContentSidebar from "$lib/content-sidebar.svelte"; import Content from "$lib/content.svelte";
import TableOfContents from "$lib/table-of-contents.svelte"; import TableOfContents from "$lib/table-of-contents.svelte";
export let data; export let data;
@@ -19,12 +19,12 @@
bannerAlt="{data.bannerAlt}" bannerAlt="{data.bannerAlt}"
/> />
<ContentSidebar> <Content useContentWidth>
<TableOfContents slot="side-left" /> <TableOfContents disableStickyScrolling />
<div slot="main"> <!-- <div slot="main"> -->
<svelte:component this={data.content} /> <svelte:component this={data.content} />
</div> <!-- </div> -->
</ContentSidebar> </Content>