Zoeken...  ⌘K GitHub

ListProcess list

Proceslijst met genummerde stappen verbonden door een lijn.

/list-process
src/components/list/ListProcess.astro
---
interface Props {
  steps: Array<{ step: string; title: string; desc: string }>;
}
const { steps = [
  { step: "01", title: "Kennismaking", desc: "Gratis gesprek om jouw doelen te begrijpen." },
  { step: "02", title: "Strategie", desc: "Maatwerk plan op basis van jouw markt." },
  { step: "03", title: "Executie", desc: "Wij gaan live met campagnes en content." },
  { step: "04", title: "Groeien", desc: "Optimaliseren tot de resultaten spreken." },
] } = Astro.props;
---

<div class="lst-proc">
  {steps.map((s, i) => (
    <div class="lst-proc__step">
      <div class="lst-proc__left">
        <div class="lst-proc__circle">{s.step}</div>
        {i < steps.length - 1 && <div class="lst-proc__line"></div>}
      </div>
      <div class="lst-proc__content">
        <strong class="lst-proc__title">{s.title}</strong>
        <p class="lst-proc__desc">{s.desc}</p>
      </div>
    </div>
  ))}
</div>

<style>
  :root {
    --color-accent: #6366f1;
    --color-primary: #0a0a0a;
  }
  .lst-proc { display: flex; flex-direction: column; }
  .lst-proc__step { display: flex; gap: 1.25rem; }
  .lst-proc__left {
    display: flex;
    flex-direction: column;
    align-items: center;
    flex-shrink: 0;
  }
  .lst-proc__circle {
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 50%;
    background: var(--color-accent);
    color: #fff;
    font-size: 0.72rem;
    font-weight: 800;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    letter-spacing: 0.04em;
  }
  .lst-proc__line {
    width: 2px;
    flex: 1;
    background: #e5e5e5;
    min-height: 1.5rem;
    margin: 0.2rem 0;
  }
  .lst-proc__content {
    padding-bottom: 1.75rem;
    padding-top: 0.25rem;
  }
  .lst-proc__title {
    display: block;
    font-size: 0.975rem;
    font-weight: 700;
    color: var(--color-primary);
    margin-bottom: 0.2rem;
  }
  .lst-proc__desc {
    margin: 0;
    font-size: 0.875rem;
    color: #666;
    line-height: 1.55;
  }
</style>

Props

Prop Type Default Beschrijving
steps * { step: string; title: string; desc: string }[] Processtappen

* = verplicht