Zoeken...  ⌘K GitHub

ListPros list

Voordelen en nadelen in twee kolommen.

/list-pros
src/components/list/ListPros.astro
---
interface Props {
  pros: string[];
  cons: string[];
  prosLabel?: string;
  consLabel?: string;
}
const { pros = ["Directe zichtbaarheid", "Meetbaar resultaat", "Flexibel budget", "Snelle start"], cons = ["Kost geld per klik", "Stopt bij budget stop", "Leercurve vereist"], prosLabel = "Voordelen", consLabel = "Nadelen" } = Astro.props;
---

<div class="lst-pros">
  <div class="lst-pros__col lst-pros__col--pro">
    <p class="lst-pros__label">{prosLabel}</p>
    <ul class="lst-pros__list">
      {pros.map(p => (
        <li class="lst-pros__item lst-pros__item--pro">
          <span aria-hidden="true">✓</span>
          <span>{p}</span>
        </li>
      ))}
    </ul>
  </div>
  <div class="lst-pros__col lst-pros__col--con">
    <p class="lst-pros__label">{consLabel}</p>
    <ul class="lst-pros__list">
      {cons.map(c => (
        <li class="lst-pros__item lst-pros__item--con">
          <span aria-hidden="true">✗</span>
          <span>{c}</span>
        </li>
      ))}
    </ul>
  </div>
</div>

<style>
  :root {
    --color-accent: #6366f1;
    --color-primary: #0a0a0a;
  }
  .lst-pros {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
  }
  @media (max-width: 480px) { .lst-pros { grid-template-columns: 1fr; } }
  .lst-pros__col {
    border-radius: 0.75rem;
    padding: 1.25rem;
  }
  .lst-pros__col--pro { background: #f0fdf4; border: 1px solid #bbf7d0; }
  .lst-pros__col--con { background: #fef2f2; border: 1px solid #fecaca; }
  .lst-pros__label {
    margin: 0 0 0.75rem;
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
  }
  .lst-pros__col--pro .lst-pros__label { color: #16a34a; }
  .lst-pros__col--con .lst-pros__label { color: #dc2626; }
  .lst-pros__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
  }
  .lst-pros__item {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    font-size: 0.9rem;
  }
  .lst-pros__item--pro { color: #166534; }
  .lst-pros__item--con { color: #991b1b; }
  .lst-pros__item span:first-child { font-weight: 700; flex-shrink: 0; }
</style>

Props

Prop Type Default Beschrijving
pros * string[] Voordelen
cons * string[] Nadelen
prosLabel string Label voor de voordelen-kolom
consLabel string Label voor de nadelen-kolom

* = verplicht