main page mostly finished
This commit is contained in:
@@ -1 +1,66 @@
|
||||
<ul></ul>
|
||||
<script lang="ts">
|
||||
export interface LinkEntry {
|
||||
icon?: string;
|
||||
text: string;
|
||||
link: string;
|
||||
}
|
||||
|
||||
let {
|
||||
entries,
|
||||
} : {
|
||||
entries: LinkEntry[];
|
||||
} = $props();
|
||||
</script>
|
||||
|
||||
<ul>
|
||||
{#each entries as entry}
|
||||
<li>
|
||||
<a href={entry.link}>
|
||||
{#if entry.icon}
|
||||
<img height="24px" src={entry.icon}>
|
||||
{/if}
|
||||
{entry.text}
|
||||
</a>
|
||||
</li>
|
||||
{/each}
|
||||
</ul>
|
||||
|
||||
<style>
|
||||
ul {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
li::before {
|
||||
content: "–";
|
||||
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:hover {
|
||||
background-color: var(--color-background-highlight-hover);
|
||||
}
|
||||
a {
|
||||
width: 100%;
|
||||
transition: color 0.2s ease-in-out;
|
||||
}
|
||||
a:link, a:visited {
|
||||
color: var(--color-text);
|
||||
text-decoration: none;
|
||||
}
|
||||
a:hover {
|
||||
color: var(--color-highlight);
|
||||
}
|
||||
|
||||
img {
|
||||
filter: var(--color-text-img);
|
||||
margin-top: 4px;
|
||||
margin-bottom: -4px;
|
||||
}
|
||||
</style>
|
||||
87
src/lib/lists/gallery-entry.svelte
Normal file
87
src/lib/lists/gallery-entry.svelte
Normal file
@@ -0,0 +1,87 @@
|
||||
<script lang="ts">
|
||||
export interface GalleryEntry {
|
||||
title: string;
|
||||
subtitle: string;
|
||||
fullWidth: boolean;
|
||||
img: string;
|
||||
link: string;
|
||||
}
|
||||
|
||||
let {
|
||||
entries,
|
||||
}: {
|
||||
entries: GalleryEntry[];
|
||||
} = $props();
|
||||
</script>
|
||||
|
||||
<div class="container">
|
||||
{#each entries as entry}
|
||||
{#if entry.fullWidth}
|
||||
<div class="entry-parent full-width">
|
||||
{@render galleryEntry({entry})}
|
||||
</div>
|
||||
{:else}
|
||||
<div class="entry-parent half-width">
|
||||
{@render galleryEntry({entry})}
|
||||
</div>
|
||||
{/if}
|
||||
{/each}
|
||||
</div>
|
||||
|
||||
{#snippet galleryEntry({entry}: {entry: GalleryEntry})}
|
||||
<a class="entry" href="{entry.link}">
|
||||
<img src="{entry.img}">
|
||||
<p>{entry.title}</p>
|
||||
<p>{entry.subtitle}</p>
|
||||
</a>
|
||||
{/snippet}
|
||||
|
||||
<style>
|
||||
.container {
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
/* flex-flow: row wrap; */
|
||||
justify-content: left;
|
||||
margin: 4px;
|
||||
}
|
||||
|
||||
.entry-parent {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.entry {
|
||||
margin: 4px;
|
||||
padding-bottom: 12px;
|
||||
background-color: var(--color-background-highlight);
|
||||
text-decoration: none; /* removes link underline */
|
||||
transition: background-color 0.16s ease-in-out;
|
||||
}
|
||||
.entry:hover {
|
||||
background-color: var(--color-background-highlight-hover);
|
||||
}
|
||||
|
||||
.entry img {
|
||||
width: 100%;
|
||||
object-fit: cover;
|
||||
max-height: 300px;
|
||||
}
|
||||
.entry p {
|
||||
margin: 0 32px;
|
||||
}
|
||||
/* gallery entry header */
|
||||
.entry p:nth-child(2) {
|
||||
font-size: 20px;
|
||||
margin-top: 12px;
|
||||
font-weight: 800;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.half-width {
|
||||
width: 50%;
|
||||
}
|
||||
.full-width {
|
||||
width: 100%;
|
||||
}
|
||||
</style>
|
||||
@@ -11,11 +11,13 @@
|
||||
|
||||
:root {
|
||||
--color-text: #e0e0e0;
|
||||
--color-text-img: invert(98%) sepia(1%) saturate(4643%) hue-rotate(297deg) brightness(115%) contrast(76%);
|
||||
--color-text-dark: #1e1e1e;
|
||||
--color-highlight: #72b175;
|
||||
|
||||
--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;
|
||||
}
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
<script lang="ts">
|
||||
import Header from "$lib/header.svelte";
|
||||
import Footer from "$lib/footer.svelte";
|
||||
import GamedevWebring from "$lib/webrings/gamedev.svelte";
|
||||
import Gallery from "$lib/lists/gallery-entry.svelte";
|
||||
import LinkList from "$lib/link-list.svelte";
|
||||
|
||||
var lastIndex = -1;
|
||||
let meImg: string = "common/me/a.webp";
|
||||
@@ -24,11 +27,32 @@
|
||||
<Header />
|
||||
|
||||
<h1><i>Moin!</i> ~ welcome to my website :)</h1>
|
||||
<p><a href="/projects/projectn5/devlog">projects</a></p>
|
||||
|
||||
<div class="container">
|
||||
<div class="subcontainer">
|
||||
|
||||
<Gallery entries={[
|
||||
{
|
||||
title: "Project N5 – devlog",
|
||||
subtitle: "my active game project about a girl finding herself in an unfamiliar future",
|
||||
fullWidth: true,
|
||||
img: "projects/projectn5/devlog/20250316/fishmonger.webp",
|
||||
link: "projects/projectn5/devlog",
|
||||
},
|
||||
{
|
||||
title: "Projects",
|
||||
subtitle: "an overview of what i do and have done",
|
||||
fullWidth: false,
|
||||
img: "projects/project-mix.webp",
|
||||
link: "projects",
|
||||
},
|
||||
{
|
||||
title: "idk",
|
||||
subtitle: "idk",
|
||||
fullWidth: false,
|
||||
img: "projects/project-mix.webp",
|
||||
link: "",
|
||||
},
|
||||
]}/>
|
||||
</div>
|
||||
<div class="subcontainer">
|
||||
<h3>about ↬<img id="me-img" class="me-img" title="hi there" src={meImg} onclick={setPicture}>↫ me </h3>
|
||||
@@ -37,14 +61,37 @@
|
||||
|
||||
<p>Here you can find information on things I like sharing. check out my projects, especially the devlog of the game I'm working on!</p>
|
||||
|
||||
<h3>contact me: how to</h3>
|
||||
<h3>where to find me</h3>
|
||||
|
||||
<p>Feel free to contact me via these means:</p>
|
||||
<LinkList entries={[
|
||||
{
|
||||
icon: "icons/bluesky.svg",
|
||||
text: "Bluesky",
|
||||
link: "https://bsky.app/profile/denizk0461.bsky.social",
|
||||
},
|
||||
{
|
||||
icon: "icons/codeberg.svg",
|
||||
text: "Codeberg",
|
||||
link: "https://codeberg.org/denizk0461",
|
||||
},
|
||||
{
|
||||
icon: "icons/github.svg",
|
||||
text: "GitHub",
|
||||
link: "https://github.com/denizk0461",
|
||||
},
|
||||
{
|
||||
icon: "icons/mailboxdotorg.svg",
|
||||
text: "E-Mail: denizk0461@mailbox.org",
|
||||
link: "",
|
||||
},
|
||||
]}/>
|
||||
|
||||
<GamedevWebring />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<Footer />
|
||||
|
||||
<style>
|
||||
.container {
|
||||
display: flex;
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
<script lang="ts">
|
||||
import Header from "$lib/header.svelte";
|
||||
</script>
|
||||
|
||||
<Header />
|
||||
Reference in New Issue
Block a user