Zoeken...  ⌘K GitHub

ListLinks list

Navigatielijst van gelabelde linkrijen met beschrijving en pijl-indicator.

/list-links
src/components/list/ListLinks.astro
---
/**
 * ListLinks
 * Navigatielijst van gelabelde linkrijen met beschrijving en pijl-indicator.
 *
 * Props:
 * - links?: Array<{ label: string; desc?: string; href: string }>
 */
interface Props {
  links?: { label: string; desc?: string; href: string }[];
}

const {
  links = [
    { label: 'Onze werkwijze', desc: 'Hoe wij van strategie naar resultaat gaan', href: '#' },
    { label: 'Cases', desc: 'Bewijs dat onze aanpak werkt', href: '#' },
    { label: 'Tarieven', desc: 'Transparant en eerlijk geprijsd', href: '#' },
    { label: 'Contact', desc: 'Plan een gratis kennismaking', href: '#' },
  ],
} = Astro.props;
---

<section class="bl-section lst-lnk-section">
  <div class="bl-inner bl-inner--narrow">
    <ul class="lst-lnk">
      {links.map(link => (
        <li class="lst-lnk__item">
          <a href={link.href} class="lst-lnk__link">
            <div>
              <span class="lst-lnk__label">{link.label}</span>
              {link.desc && <span class="lst-lnk__desc">{link.desc}</span>}
            </div>
            <span class="lst-lnk__arrow" aria-hidden="true">→</span>
          </a>
        </li>
      ))}
    </ul>
  </div>
</section>

<style>
.lst-lnk{list-style:none;margin:0;padding:0}
.lst-lnk__item{border-bottom:1px solid #efefef}
.lst-lnk__item:last-child{border-bottom:none}
.lst-lnk__link{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 0;text-decoration:none;color:inherit;transition:color .2s}
.lst-lnk__link:hover{color:var(--color-accent, #6366f1)}
.lst-lnk__label{display:block;font-size:1rem;font-weight:600;color:var(--color-primary, #0a0a0a);transition:color .2s}
.lst-lnk__link:hover .lst-lnk__label{color:var(--color-accent, #6366f1)}
.lst-lnk__desc{display:block;font-size:.875rem;color:var(--color-muted, #666);margin-top:.1rem}
.lst-lnk__arrow{color:var(--color-accent, #6366f1);font-size:1rem;flex-shrink:0;transition:transform .2s}
.lst-lnk__link:hover .lst-lnk__arrow{transform:translate(3px)}
</style>

Props

Prop Type Default Beschrijving
links { label: string; desc?: string; href: string }[] - Linkrijen met label, optionele beschrijving en URL

* = verplicht