87 lines
1.9 KiB
Svelte
87 lines
1.9 KiB
Svelte
<script lang="ts">
|
|
export interface ChangelogEntry {
|
|
date: string;
|
|
time: string;
|
|
|
|
content: string;
|
|
link?: string;
|
|
}
|
|
|
|
let {
|
|
entry,
|
|
}: {
|
|
entry: ChangelogEntry;
|
|
} = $props();
|
|
</script>
|
|
|
|
<div class="changelog-entry">
|
|
<div class="changelog-entry-timestamp-container">
|
|
<span>{entry.date}</span>
|
|
<span class="changelog-entry-timestamp-comma">, </span>
|
|
<span>{entry.time}</span>
|
|
</div>
|
|
<span class="changelog-entry-timestamp-divider">::</span>
|
|
<p>
|
|
{entry.content}
|
|
{#if entry.link}
|
|
<a class="changelog-entry-link" href="{entry.link}">»</a>
|
|
{/if}
|
|
</p>
|
|
</div>
|
|
|
|
<style>
|
|
.changelog-entry * {
|
|
margin: 0;
|
|
}
|
|
|
|
.changelog-entry {
|
|
display: flex;
|
|
flex-direction: row;
|
|
gap: 8px;
|
|
margin: 4px 0;
|
|
}
|
|
|
|
.changelog-entry p {
|
|
font-size: 1.0rem;
|
|
line-height: 1.3rem;
|
|
}
|
|
|
|
.changelog-entry-timestamp-container {
|
|
display: flex;
|
|
flex-direction: row;
|
|
}
|
|
|
|
.changelog-entry-timestamp-container *, .changelog-entry-timestamp-divider {
|
|
font-family: var(--font-mono);
|
|
font-size: 0.8rem;
|
|
line-height: 1.3rem;
|
|
font-weight: 500;
|
|
color: var(--color-highlight);
|
|
min-width: fit-content;
|
|
}
|
|
|
|
.changelog-entry-link {
|
|
font-family: var(--font-mono);
|
|
font-size: 1.2rem;
|
|
color: var(--color-highlight);
|
|
text-decoration: none;
|
|
line-height: 1.3rem;
|
|
}
|
|
|
|
.changelog-entry-link:hover {
|
|
font-weight: 700;
|
|
}
|
|
|
|
@media screen and (max-width: 550px) {
|
|
/* Align timestamp texts vertically */
|
|
.changelog-entry-timestamp-container {
|
|
flex-direction: column;
|
|
align-items: end;
|
|
}
|
|
|
|
/* Hide separating comma */
|
|
.changelog-entry-timestamp-comma {
|
|
display: none;
|
|
}
|
|
}
|
|
</style> |