fixed font link for subpages; reduced width of devlog posts; reduced height of banner; removed old banner
This commit is contained in:
@@ -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;
|
||||||
|
|||||||
@@ -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
162
src/lib/banner2.svelte
Normal 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>
|
||||||
@@ -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;
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
let {
|
let {
|
||||||
noMargin,
|
noMargin,
|
||||||
}: {
|
}: {
|
||||||
noMargin: boolean;
|
noMargin?: boolean;
|
||||||
} = $props();
|
} = $props();
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
@@ -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>
|
||||||
@@ -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>
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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>
|
||||||
Reference in New Issue
Block a user