Zoeken...  ⌘K GitHub

ListFeatures list

ListFeatures component.

/list-features
src/components/list/ListFeatures.astro
---
/**
 * ListFeatures
 * Feature-lijst met icon-tegel per item. Elk item: icoon, titel en beschrijving.
 *
 * Props:
 * - items?: Array<{ icon?: string; title: string; desc: string }>
 */
interface Props {
  items?: { icon?: string; title: string; desc: string }[];
}

const {
  items = [
    { icon: '→', title: 'Data-analyse', desc: 'Diepgaande inzichten uit jouw cijfers.' },
    { icon: '→', title: 'Campagne-lancering', desc: 'Snel live met bewezen formats.' },
    { icon: '→', title: 'Doelgroep-targeting', desc: 'De juiste boodschap op het juiste moment.' },
  ],
} = Astro.props;
---

<section class="bl-section lst-feat-section">
  <div class="bl-inner bl-inner--narrow">
    <ul class="lst-feat">
      {items.map(item => (
        <li class="lst-feat__item">
          {item.icon && <span class="lst-feat__icon" aria-hidden="true">{item.icon}</span>}
          <div>
            <strong class="lst-feat__title">{item.title}</strong>
            <p class="lst-feat__desc">{item.desc}</p>
          </div>
        </li>
      ))}
    </ul>
  </div>
</section>

<style>
.lst-feat{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1.25rem}
.lst-feat__item{display:flex;gap:1rem;align-items:flex-start}
.lst-feat__icon{width:2.5rem;height:2.5rem;background:#6366f11a;border-radius:.5rem;display:flex;align-items:center;justify-content:center;font-size:1.15rem;flex-shrink:0;color:var(--color-accent, #6366f1)}
.lst-feat__title{display:block;font-size:1rem;font-weight:700;color:var(--color-primary);margin-bottom:.15rem}
.lst-feat__desc{margin:0;font-size:.9375rem;color:var(--color-muted, #555);line-height:1.5}
</style>