src/components/list/ListStats.astro
---
interface Props {
items: Array<{ value: string; label: string; desc?: string }>;
}
const { items = [
{ value: "3.8×", label: "Gemiddeld ROAS", desc: "Over alle actieve campagnes" },
{ value: "80+", label: "Klanten", desc: "Actief of eerder geholpen" },
{ value: "€12M+", label: "Omzet gegenereerd", desc: "Gecombineerde klantomzet" },
{ value: "98%", label: "Klanttevredenheid", desc: "Gebaseerd op enquêtes" },
] } = Astro.props;
---
<ul class="lst-stat">
{items.map(item => (
<li class="lst-stat__item">
<span class="lst-stat__value">{item.value}</span>
<strong class="lst-stat__label">{item.label}</strong>
{item.desc && <span class="lst-stat__desc">{item.desc}</span>}
</li>
))}
</ul>
<style>
:root {
--color-accent: #6366f1;
--color-primary: #0a0a0a;
}
.lst-stat {
list-style: none;
margin: 0;
padding: 0;
display: grid;
grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
gap: 1px;
background: #efefef;
border: 1px solid #efefef;
border-radius: 0.75rem;
overflow: hidden;
}
.lst-stat__item {
display: flex;
flex-direction: column;
gap: 0.2rem;
padding: 1.5rem 1.25rem;
background: #fff;
}
.lst-stat__value {
font-size: clamp(1.75rem, 4vw, 2.5rem);
font-weight: 900;
color: var(--color-accent);
line-height: 1;
letter-spacing: -0.04em;
}
.lst-stat__label {
font-size: 0.875rem;
font-weight: 700;
color: var(--color-primary);
}
.lst-stat__desc {
font-size: 0.775rem;
color: #999;
}
</style>
Props
| Prop | Type | Default | Beschrijving |
|---|---|---|---|
items | { value: string; label: string; desc?: string }[] | — | Statistieken |
* = verplicht