Skip to content

Commit d9db3aa

Browse files
Talks Tutorials grid and Sessions at the same time (#1692)
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
1 parent 1553fb5 commit d9db3aa

19 files changed

Lines changed: 1220 additions & 725 deletions

File tree

Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
---
2+
interface Props {
3+
items: {
4+
title: string;
5+
description?: string;
6+
href?: string;
7+
highlight?: boolean;
8+
}[];
9+
columns?: number;
10+
}
11+
12+
const { items, columns = 4 } = Astro.props;
13+
---
14+
15+
<div
16+
class="feature-card-grid"
17+
style={`--grid-columns: ${columns}`}
18+
>
19+
{items.map((item) =>
20+
item.href ? (
21+
<a
22+
href={item.href}
23+
class:list={["feature-card", item.highlight && "feature-card--highlight"]}
24+
>
25+
<strong class="feature-card-title">{item.title}</strong>
26+
{item.description && <span class="feature-card-desc">{item.description}</span>}
27+
</a>
28+
) : (
29+
<div class="feature-card">
30+
<strong class="feature-card-title">{item.title}</strong>
31+
{item.description && <span class="feature-card-desc">{item.description}</span>}
32+
</div>
33+
)
34+
)}
35+
</div>
36+
37+
<style is:global>
38+
.feature-card-grid {
39+
display: grid;
40+
grid-template-columns: repeat(var(--grid-columns, 4), 1fr);
41+
gap: 6px;
42+
list-style: none;
43+
padding: 0;
44+
margin: 0 0 2.5rem;
45+
}
46+
47+
.feature-card {
48+
display: flex;
49+
flex-direction: column;
50+
padding: 1.6rem;
51+
font-size: 1.2rem;
52+
color: var(--color-text-secondary);
53+
line-height: 1.6;
54+
border: 1px solid var(--color-border);
55+
border-radius: 4px;
56+
text-decoration: none;
57+
transition: border-color 0.2s;
58+
}
59+
60+
.feature-card:hover {
61+
border-color: var(--color-accent-themed);
62+
text-decoration: none;
63+
}
64+
65+
.feature-card-title {
66+
display: block;
67+
font-size: 1.3rem;
68+
font-weight: 800;
69+
color: var(--color-text);
70+
margin-bottom: 0.4rem;
71+
}
72+
73+
.feature-card-desc {
74+
font-size: 1.2rem;
75+
color: var(--color-text-secondary);
76+
}
77+
78+
.feature-card--highlight {
79+
outline: 2px solid var(--color-accent-themed);
80+
outline-offset: -1px;
81+
background: var(--color-surface-medium);
82+
}
83+
84+
@media (max-width: 900px) {
85+
.feature-card-grid {
86+
grid-template-columns: repeat(2, 1fr);
87+
}
88+
}
89+
90+
@media (max-width: 500px) {
91+
.feature-card-grid {
92+
grid-template-columns: 1fr;
93+
}
94+
}
95+
</style>

0 commit comments

Comments
 (0)