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

# <velin-file-dropzone>

Source: `components/velin-file-dropzone.js`

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

```html
<velin-file-dropzone label="Drop files here" multiple accept="image/*,.pdf"></velin-file-dropzone>
```

_Example derived from human component docs (`exampleSource: human-doc`; fail-closed extract — not a second SoT)._

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

- **Roles:** `group`
- **Keyboard:** Browse button + native file input
- **Live region:** `polite`
- **Reduced motion:** honored
- **Notes:** Client-side dropzone. Events velin-files / velin-error. Does not upload to a server.

## Attributes
| Attribute | Notes |
| --- | --- |
| `accept` | Observed — triggers `attributeChangedCallback` when changed |
| `multiple` | Observed — triggers `attributeChangedCallback` when changed |
| `label` | Observed — triggers `attributeChangedCallback` when changed |
| `progress` | Observed — triggers `attributeChangedCallback` when changed |
## Events
- `velin-error` (bubbles)
- `velin-files` (bubbles)
## CSS parts
_None._
## Slots
_None._
## Public API
| Kind | Name |
| --- | --- |
| Property | `files` |
## Related resources
- Generated API docs (canonical): [`velin-file-dropzone.md`](./velin-file-dropzone.md)
- Generated index: [README.md](./README.md)
- CLI API: `npx velinstyle wc api velin-file-dropzone`
- Human docs EN (tutorial): `docs/components/file-dropzone.html`
- Human docs DE (tutorial, lang-map): `docs/components/datei-dropzone.html`
- Atelier library (showcases — **not** a 1:1 Component map): `atelier/library/index.html`
