thomaswilson-sveltekit/src/routes/home/HomepageHeader.svelte

126 lines
2.7 KiB
Svelte
Raw Normal View History

2024-03-17 09:33:22 +00:00
<script lang="ts">
import { format as formatDate } from "date-fns";
// TODO: move somewhere common
interface BlogPost {
title: string;
slug: string;
date: string;
}
2025-01-04 15:35:07 +00:00
interface Props {
latestBlogPosts?: BlogPost[];
}
let { latestBlogPosts = [] }: Props = $props();
2024-03-17 09:33:22 +00:00
</script>
<section class="homepage-header">
<h1 class="title">Thomas Wilson-Cook</h1>
<p class="body strapline">
I craft well-meaning things, like software, clothes, photographs, and words.
</p>
<p class="body strapline">
2025-01-09 14:08:29 +00:00
I want to help build things that don&apos;t rely on exploitation, excessive
waste, or dishonesty; and to try and build a kinder, fairer world even when
it's hard.
</p>
<hr />
2024-03-17 09:33:22 +00:00
<p class="body">
2024-06-18 06:23:06 +00:00
I try to think and be curious, which is why I keep a <a href="/blog"
>weblog</a
>
and, equally worth mentioning, what got me through a
2024-03-17 09:33:22 +00:00
<a
class="thesis"
target="_blank"
rel="noopener noreferrer"
href="https://eprints.soton.ac.uk/418168/"
>Ph.D. in Education Technology</a
>.
</p>
<p class="body">Here are some things I've written recently:</p>
<ol class="latest-blog-posts">
2024-03-17 09:33:22 +00:00
{#each latestBlogPosts as post}
<li>
<a href="/blog/{post.slug}">{post.title}</a> ({formatDate(
new Date(post.date),
"yyyy-MM-dd"
)})
</li>
{/each}
</ol>
<p class="body">
Right now I am a Senior Software engineer at <a
href="https://www.laka.co.uk"
target="_blank"
rel="noopener noreferrer">Laka</a
2024-06-18 06:23:06 +00:00
>, making insurance genuinely fairer. Before that, I was Head of Software
Engineering at
2024-03-17 09:33:22 +00:00
<a href="https://www.oxwash.com" target="_blank" rel="noopener noreferrer"
>Oxwash</a
2024-04-20 21:09:58 +00:00
>, building tools for actually sustainable laundry and wet cleaning.
2024-03-17 09:33:22 +00:00
</p>
</section>
<style>
.homepage-header {
display: grid;
padding: 0 12px;
gap: 8px;
font-size: var(--font-size-md);
font-family: var(--font-family-serif);
max-width: 60ch;
2024-03-17 09:33:22 +00:00
}
a,
ol,
li,
p {
2024-03-17 09:33:22 +00:00
color: var(--text-color);
font-family: inherit;
font-size: inherit;
2024-03-17 09:33:22 +00:00
width: 100%;
max-width: 60ch;
padding-bottom: 8px;
}
.mission-statement {
display: flex;
padding: 12px 34px;
font-family: inherit;
font-size: var(--font-size-lg);
max-width: 100%;
margin-bottom: 24px;
}
hr {
border: 0;
border-top: 1px solid white;
margin: 24px 0;
2024-03-17 09:33:22 +00:00
}
.title {
font-weight: 400;
font-family: inherit;
2024-03-17 22:01:32 +00:00
padding-bottom: 1.85rem;
text-align: center;
2024-03-17 09:33:22 +00:00
}
.body {
text-align: left;
2024-06-18 06:23:06 +00:00
line-height: 160%;
2024-03-17 09:33:22 +00:00
}
.body.strapline {
font-size: var(--font-size-lg);
line-height: 140%;
}
.latest-blog-posts {
list-style-position: inside;
}
2024-03-17 09:33:22 +00:00
</style>