-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathRelatedPosts.astro
More file actions
74 lines (62 loc) · 1.4 KB
/
RelatedPosts.astro
File metadata and controls
74 lines (62 loc) · 1.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
---
import type { CollectionEntry } from 'astro:content';
import BlogPostCard from './BlogPostCard.astro';
type Props = {
relatedPosts: CollectionEntry<'blog'>[];
};
const { relatedPosts } = Astro.props;
---
{
relatedPosts.length > 0 && (
<section class="related-posts">
<h2 class="related-posts-heading">You might also like</h2>
<div class="related-posts-grid">
{relatedPosts.map(post => (
<div class="grid-item" data-post-id={post.slug}>
<BlogPostCard post={post} />
</div>
))}
</div>
</section>
)
}
<style>
.related-posts {
margin-top: 4rem;
padding-top: 3rem;
border-top: 1px solid var(--card-border-color);
}
.related-posts-heading {
font-family: var(--font-serif);
font-size: clamp(1.3rem, 4vw, 1.6rem);
text-align: center;
margin-bottom: 2rem;
color: var(--font-color);
}
.related-posts-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 1.5rem;
}
.grid-item {
height: 100%;
}
@media (max-width: 1024px) {
.related-posts-grid {
grid-template-columns: repeat(2, 1fr);
}
}
@media (max-width: 768px) {
.related-posts {
margin-top: 3rem;
padding-top: 2rem;
}
.related-posts-grid {
grid-template-columns: 1fr;
gap: 1.25rem;
}
.related-posts-heading {
margin-bottom: 1.5rem;
}
}
</style>