Packages
noora
0.86.0
0.86.0
0.85.0
0.84.1
0.84.0
0.83.2
0.83.1
0.83.0
0.82.7
0.82.6
0.82.5
0.82.4
0.82.3
0.82.2
0.82.1
0.82.0
0.81.4
0.81.3
0.81.2
0.81.1
0.81.0
0.80.1
0.80.0
0.79.1
0.79.0
0.78.1
0.78.0
0.77.4
0.77.3
0.77.2
0.77.1
0.77.0
0.76.0
0.75.0
0.74.0
0.73.0
0.72.0
0.71.0
0.70.0
0.69.1
0.69.0
0.68.0
0.67.0
0.66.0
0.65.0
0.64.2
0.64.1
0.64.0
0.63.2
0.63.1
0.63.0
0.62.0
0.61.0
0.60.0
0.59.0
0.58.0
0.57.0
0.56.1
0.56.0
0.55.0
0.54.0
0.53.1
0.53.0
0.52.1
0.52.0
0.51.0
0.50.1
0.50.0
0.49.0
0.48.0
0.47.0
0.46.0
0.45.0
0.44.3
0.44.2
0.44.1
0.44.0
0.43.0
0.42.0
0.41.0
0.40.6
0.40.5
0.40.4
0.40.3
0.40.2
0.40.1
0.40.0
0.39.1
0.39.0
0.38.0
0.37.0
0.36.0
0.35.0
0.34.0
0.33.0
0.32.1
0.32.0
0.31.0
0.30.0
0.29.2
0.29.1
0.29.0
0.28.5
0.28.4
0.28.3
0.28.2
0.28.1
0.28.0
0.27.0
0.26.1
0.26.0
0.25.0
0.24.0
0.23.1
0.23.0
0.22.1
0.22.0
0.21.0
0.20.0
0.19.0
0.18.0
0.17.0
0.16.0
0.15.0
0.14.0
0.13.0
0.12.1
0.12.0
0.11.2
0.11.1
0.11.0
0.10.0
0.9.0
0.8.0
0.7.0
0.6.1
0.6.0
0.5.1
0.5.0
0.4.0
0.3.2
0.3.1
0.3.0
0.2.2
0.2.0
0.1.0
0.1.0-rc.2
0.1.0-rc.1
0.1.0-alpha.6
0.1.0-alpha.5
0.1.0-alpha.4
0.1.0-alpha.3
0.1.0-alpha.2
0.1.0-alpha.1
A component library for Phoenix LiveView applications
Current section
Files
Jump to
Current section
Files
docs/components/modal.md
<!-- Generated by scripts/generate-web-components.js. Do not edit directly. -->
# Modal
Presents focused content above the current page.
```html
<noora-modal title="Edit profile"><button slot="trigger">Open</button><p>Profile form</p></noora-modal>
```
## Attributes
| Attribute | Type or allowed values | Default | Description |
| --- | --- | --- | --- |
| `title` | `string` | None | Sets the modal title. |
| `description` | `string` | None | Sets the large-header description. |
| `header-type` | `default`, `icon`, `success`, `info`, `warning`, `error` | `"default"` | Controls the header icon and semantics. |
| `header-size` | `small`, `large` | `"large"` | Controls header dimensions. |
| `open` | `boolean` | `false` | Controls whether the modal is open. |
| `close-on-escape` | `boolean` | `true` | Closes the modal when Escape is pressed. |
| `close-on-interact-outside` | `boolean` | `true` | Closes the modal when its backdrop is activated. |
## Events
| Event | Type | Description |
| --- | --- | --- |
| `noora-open-change` | `CustomEvent<{ open: boolean }>` | Emitted when the modal opens or closes. |
| `noora-dismiss` | `CustomEvent<{ reason: "close-button" \| "escape" \| "outside" \| "action" }>` | Emitted when the modal is dismissed without a direct open-property assignment. |
## Slots
| Slot | Description |
| --- | --- |
| `trigger` | The control that opens the modal. |
| `header-icon` | A custom icon for icon headers. |
| `header-button` | A custom header action. |
| `default` | The modal body. |
| `footer` | The modal footer. |
## Styling parts
| Part | Description |
| --- | --- |
| `backdrop` | The page backdrop. |
| `content` | The modal surface. |
| `header` | The modal header. |
| `body` | The modal body. |
| `footer` | The modal footer. |
Opening and closing emits a `noora-open-change` event.
Slotted footer buttons can use `data-action="close"` to close the modal.
## Header types
Use default, custom-icon, success, information, warning, or error headers.
```html
<noora-modal title="Default Modal" description="A standard modal with default header styling" header-type="default" header-size="large"><noora-button slot="trigger">Default Modal</noora-button><p>This is a basic modal with default header styling.</p><noora-button slot="footer" variant="secondary" data-action="close">Cancel</noora-button><noora-button slot="footer">Confirm</noora-button></noora-modal>
<noora-modal title="Custom Icon Modal" description="Modal with custom icon in header" header-type="icon" header-size="large"><noora-button slot="trigger">Icon Modal</noora-button><noora-icon slot="header-icon" name="mail"></noora-icon><noora-text-input label="Email" name="email" value="" type="email" required placeholder="hello@tuist.dev"></noora-text-input><noora-button slot="footer" variant="secondary" data-action="close">Cancel</noora-button><noora-button slot="footer">Send</noora-button></noora-modal>
<noora-modal title="Success" description="Operation completed successfully" header-type="success" header-size="large"><noora-button slot="trigger">Success Modal</noora-button><p>Your operation has been completed successfully!</p><noora-button slot="footer" data-action="close">Close</noora-button></noora-modal>
<noora-modal title="Information" description="Important information about this action" header-type="info" header-size="large"><noora-button slot="trigger">Info Modal</noora-button><p>Here's some important information you should know before proceeding.</p><noora-button slot="footer" data-action="close">Got it</noora-button></noora-modal>
<noora-modal title="Warning" description="This action requires your attention" header-type="warning" header-size="large"><noora-button slot="trigger">Warning Modal</noora-button><p>This action may have consequences. Please review before continuing.</p><noora-button slot="footer" variant="secondary" data-action="close">Cancel</noora-button><noora-button slot="footer" variant="destructive">Continue</noora-button></noora-modal>
<noora-modal title="Error" description="Something went wrong" header-type="error" header-size="large"><noora-button slot="trigger">Error Modal</noora-button><p>An error occurred while processing your request. Please try again.</p><noora-button slot="footer">Retry</noora-button></noora-modal>
```
## Header sizes
Small headers omit the description while large headers show it.
```html
<noora-modal title="Small Header" description="This description won't be shown because header size is small" header-type="default" header-size="small"><noora-button slot="trigger">Small Header</noora-button><p>Modal with small header - description is not displayed.</p><noora-button slot="footer" data-action="close">Close</noora-button></noora-modal>
<noora-modal title="Large Header" description="This description is visible because header size is large" header-type="default" header-size="large"><noora-button slot="trigger">Large Header</noora-button><p>Modal with large header - description is displayed below the title.</p><noora-button slot="footer" data-action="close">Close</noora-button></noora-modal>
```
## Footer variations
Use no footer, one action, or multiple actions.
```html
<noora-modal title="Modal Without Footer" description="This modal has no footer section" header-type="default" header-size="large"><noora-button slot="trigger">No Footer</noora-button><p>This modal doesn't have a footer. Users can close it using the X button in the header.</p></noora-modal>
<noora-modal title="Single Action" description="Modal with only one action button" header-type="success" header-size="large"><noora-button slot="trigger">Single Action</noora-button><p>This modal has only one action in the footer.</p><noora-button slot="footer" data-action="close">Got it</noora-button></noora-modal>
<noora-modal title="Multiple Actions" description="Modal with several action buttons" header-type="warning" header-size="large"><noora-button slot="trigger">Multiple Actions</noora-button><p>This modal demonstrates multiple action buttons in the footer.</p><noora-button slot="footer" variant="secondary">Save Draft</noora-button><noora-button slot="footer" variant="secondary" data-action="close">Cancel</noora-button><noora-button slot="footer">Publish</noora-button></noora-modal>
```