2025-01-21 17:39:17 +02:00
|
|
|
<script lang="ts">
|
2025-01-31 18:38:44 +02:00
|
|
|
import type { EnhancedImage, Tag } from '$lib/types';
|
|
|
|
import { site, baseURL } from '$lib/config';
|
|
|
|
|
|
|
|
import SquareArrowOutUpRight from 'lucide-svelte/icons/square-arrow-out-up-right';
|
|
|
|
|
|
|
|
import { Button } from '$lib/components/ui/button/index.js';
|
|
|
|
import Image from '$lib/components/Image.svelte';
|
|
|
|
import projects from '$lib/data/projects';
|
2025-01-21 17:39:17 +02:00
|
|
|
</script>
|
|
|
|
|
2025-01-31 18:38:44 +02:00
|
|
|
{#snippet projectCard(
|
|
|
|
name: string,
|
|
|
|
description: string,
|
|
|
|
image: EnhancedImage,
|
|
|
|
tags: Tag[],
|
|
|
|
link: string
|
|
|
|
)}
|
|
|
|
<div class="mb-16 w-80 space-y-3 md:w-64">
|
2025-01-31 19:51:25 +02:00
|
|
|
<Image {image} {tags} class="aspect-[4/5] object-cover" />
|
2025-01-31 18:38:44 +02:00
|
|
|
<div class="grid grid-cols-[1fr_auto] items-center text-sm">
|
|
|
|
<div class="mt-1 pr-4">
|
2025-01-31 19:52:08 +02:00
|
|
|
<h3 class="text-lg leading-none font-medium">{name}</h3>
|
|
|
|
<p class="text-muted-foreground mt-1.5 text-sm leading-5">{description}</p>
|
2025-01-31 18:38:44 +02:00
|
|
|
</div>
|
|
|
|
<Button target="_blank" href={link} variant="secondary" size="icon">
|
|
|
|
<SquareArrowOutUpRight />
|
|
|
|
</Button>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
{/snippet}
|
|
|
|
|
2025-01-22 13:43:44 +02:00
|
|
|
<svelte:head>
|
2025-01-22 18:08:27 +02:00
|
|
|
<title>{site.name}</title>
|
|
|
|
<meta property="og:title" content={site.name} />
|
2025-01-22 13:43:44 +02:00
|
|
|
|
2025-01-22 18:08:27 +02:00
|
|
|
<meta name="description" content={site.description} />
|
|
|
|
<meta property="og:description" content={site.description} />
|
2025-01-22 13:43:44 +02:00
|
|
|
|
2025-01-22 18:08:27 +02:00
|
|
|
<meta property="og:image" content={baseURL + site.image} />
|
2025-01-22 13:43:44 +02:00
|
|
|
</svelte:head>
|
|
|
|
|
2025-01-31 19:52:08 +02:00
|
|
|
<header class="font-title mb-12 flex flex-col items-center text-center">
|
2025-01-22 17:05:21 +02:00
|
|
|
<h1 class="mb-1 scroll-m-20 text-5xl font-extrabold tracking-tight lg:text-6xl">
|
2025-01-31 16:44:38 +02:00
|
|
|
Hei! Mina olen Mihkel
|
2025-01-21 17:39:17 +02:00
|
|
|
</h1>
|
2025-01-31 19:52:08 +02:00
|
|
|
<p class="text-muted-foreground font-sans text-base">
|
2025-01-31 18:38:44 +02:00
|
|
|
Peale selle toreda saidi on mul veel palju hobisid
|
2025-01-31 16:44:38 +02:00
|
|
|
</p>
|
2025-01-21 17:39:17 +02:00
|
|
|
</header>
|
2025-01-31 18:38:44 +02:00
|
|
|
|
|
|
|
<main class="flex w-full flex-wrap justify-center gap-x-8">
|
|
|
|
{#each projects as { name, description, image, tags, link }}
|
|
|
|
{@render projectCard(name, description, image, tags, link)}
|
2025-01-21 17:39:17 +02:00
|
|
|
{/each}
|
|
|
|
</main>
|