<!-- Auto-generated by `velinstyle docs generate`. Do not edit. Source: components/velin-scrollspy.js -->

# <velin-scrollspy>

Source: `components/velin-scrollspy.js`

## Minimal working example
Copy-paste starter (load CSS + `velinstyle-components` / `bootFromDOM` as needed):

```html
<velin-scrollspy>
  <nav slot="nav">
    <a href="#section-1">Section 1</a>
    <a href="#section-2">Section 2</a>
    <a href="#section-3">Section 3</a>
  </nav>
  <div slot="content">
    <section id="section-1">
      <h2>Section 1</h2>
      <p>Content for section one.</p>
    </section>
    <section id="section-2">
      <h2>Section 2</h2>
      <p>Content for section two.</p>
    </section>
    <section id="section-3">
      <h2>Section 3</h2>
      <p>Content for section three.</p>
    </section>
  </div>
</velin-scrollspy>
```

_Example from curated docgen starter map._

## Accessibility
WCAG contract status: **pass** (framework target: AAA).

- **Keyboard:** Native nav links
- **Notes:** Sets aria-current on active link.

## Attributes
_No `observedAttributes` declared._ Author-facing configuration may still use slots, properties, or child markup — see **Slots** / **Public API** below.

## Events
- `velin-spy-change` (bubbles)
## CSS parts
_None._
## Slots
_None._
## Public API
_No public methods detected._
## Related resources
- Generated API docs (canonical): [`velin-scrollspy.md`](./velin-scrollspy.md)
- Generated index: [README.md](./README.md)
- CLI API: `npx velinstyle wc api velin-scrollspy`
- Human docs EN (tutorial): `docs/components/scrollspy.html`
- Human docs DE (tutorial, lang-map): `docs/components/scrollspy-de.html`
- Atelier library (showcases — **not** a 1:1 Component map): `atelier/library/index.html`
