# IconButton

Render a compact icon-only action. Perfect for when you want a button, but you're too lazy to write words.

## Notes

- Always pass ariaLabel for accessible naming. A button with no text is completely invisible to screen readers without an ariaLabel.
- Reserve icon-only controls for compact secondary actions.
- Use selected for toggle-style icon controls so the pressed state is announced.

## Properties

| Name | Type | Default | Description |
| ---- | ---- | ------- | ----------- |
| ariaLabel (required) | `string` | - | Accessible label for the button. |
| variant | `'primary' | 'secondary' | 'danger'` | 'primary' | The visual style of the button. |
| size | `'sm' | 'md' | 'lg'` | 'md' | The size of the button. |
| disabled | `boolean` | false | Whether the button is disabled. |
| selected | `boolean` | false | Whether the button is in a selected/pressed state. |
| class | `string` | - | Additional CSS classes. |

## Example

```astro
<IconButton ariaLabel="Open menu" selected><span aria-hidden="true">☰</span></IconButton>
```
