- /trackers index, Trackers section on the homepage and in the header nav; /projects lists only projects (tracker URLs unchanged) - header is its own z-50 layer and <main> is isolated, so maps, charts and sticky tables no longer paint over the nav dropdowns
30 lines
1.0 KiB
Svelte
30 lines
1.0 KiB
Svelte
<script lang="ts">
|
|
import { resolve } from '$app/paths';
|
|
import { Badge } from '#lib/components/ui/badge/index.js';
|
|
import CatalogGrid from '#lib/components/CatalogGrid.svelte';
|
|
import { projects } from '#lib/projects.js';
|
|
|
|
const earlier = [
|
|
'distributor',
|
|
'realtime editing',
|
|
'eIDAS auth module for WooCommerce + Magento 2'
|
|
];
|
|
</script>
|
|
|
|
<div class="mx-auto max-w-6xl px-4 py-12 sm:px-6 sm:py-16">
|
|
<h1 class="mb-3 text-4xl font-semibold tracking-tight sm:text-5xl">projects</h1>
|
|
<p class="mb-10 text-[var(--site-muted)]">
|
|
Things I built. Looking for the money, house, game or price trackers? They live under
|
|
<a class="underline" href={resolve('trackers')}>trackers</a>.
|
|
</p>
|
|
<CatalogGrid items={projects} />
|
|
<h2 class="mt-14 mb-3 text-2xl font-semibold">other</h2>
|
|
<ul>
|
|
{#each earlier as name (name)}
|
|
<li class="border-t border-[var(--site-border)] py-5 text-lg text-[var(--site-muted)]">
|
|
<Badge variant="outline">earlier</Badge> <span class="ml-2">{name}</span>
|
|
</li>
|
|
{/each}
|
|
</ul>
|
|
</div>
|