nicco.io/src/lib/components/PostPreview.svelte

56 lines
1.1 KiB
Svelte

<script lang="ts">
import type { GQLBasePostFragment } from '$lib/gql/gen'
import ImageFrame from '../components/ImageFrame.svelte'
import PostAttributes from '../components/PostAttributes.svelte'
export let post: GQLBasePostFragment
</script>
<a href={`blog/${post.slug}`} class:without={!post.post.featured}>
{#if post.post.featured}
<ImageFrame src={post.post.featured.sourceUrl} alt={post.post.featured.altText} />
{/if}
<PostAttributes {post} />
<h2>
{@html post.title}
</h2>
</a>
<style>
a {
display: block;
margin-bottom: 5em;
}
a > :global(img) {
height: 12em;
}
h2 {
margin-top: 0.25em;
position: relative;
top: 0;
transition: var(--animation);
background-color: var(--clr-light);
}
a:hover h2 {
top: -1em;
transform: scale(0.95);
}
a > :global(div) {
opacity: 1;
transition: var(--animation);
}
a:hover > :global(div) {
opacity: 0;
}
a.without {
border: 2px solid var(--clr-primary);
padding: 5%;
width: calc(100% + 10%);
transform: translateX(-5%);
}
</style>