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

# <velin-drawer>

Source: `components/velin-drawer.js`

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

```html
<velin-drawer title="Filters"></velin-drawer>
```

_Example from design-intelligence knowledge SoT (`core/meta/knowledge/components.json`)._

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

- **Roles:** `dialog`
- **Keyboard:** Escape, Tab trap
- **Notes:** Reactive title attribute + slot=title.

## Attributes
| Attribute | Notes |
| --- | --- |
| `open` | Observed — triggers `attributeChangedCallback` when changed |
| `title` | Observed — triggers `attributeChangedCallback` when changed |
## Events
- `velin-close` (bubbles)
## CSS parts
- `body`
- `close`
- `drawer`
- `header`
- `overlay`
- `title`
## Slots
- `(default)`
- `title`
## Public API
| Kind | Name |
| --- | --- |
| Method | `close()` |
| Method | `open()` |
## Related resources
- Generated API docs (canonical): [`velin-drawer.md`](./velin-drawer.md)
- Generated index: [README.md](./README.md)
- CLI API: `npx velinstyle wc api velin-drawer`
- Human docs EN (tutorial): `docs/components/drawer.html`
- Human docs DE (tutorial, lang-map): `docs/components/schublade.html`
- Atelier showcase (DIRECT CE match, `45-reviews`): `atelier/library/showcases/45-reviews/index.html`
- Atelier library (showcases — **not** a 1:1 Component map): `atelier/library/index.html`
