Modals
Modals#
You can create modals using the <modal> component.
<modal
v-if="isOpen"
name="my-modal"
width="300px" height="300px"
@closed="isOpen = false"
>
<div slot-scope="{ close }">
Your modal's content.
<button @click="close">x</button>
</div>
</modal>
When a modal is rendered in the DOM, it will be automatically opened. So, to control whether or not it’s open, you should add a v-if to it.
When closed, the modal will emit a closed event. You should use this event to change the ‘open’ condition back to false.
You should also add a button somewhere inside your modal to be able to close it. To close it, emit a closed event.
Confirmation Modals#
There is a prebuilt modal component available to you if you don’t need something completely custom.
Similar to the regular modal, you should use a v-if to make it appear.
<confirmation-modal
v-if="confirming"
title="Do the thing"
@confirm="doTheThing"
@cancel="confirming = false"
/>
Props#
| Prop | Description |
|---|---|
title |
Header text |
bodyText |
Provide a simple string as a content of the modal. Defaults to Are you sure?. |
buttonText |
Text for the confirmation button label. Defaults to Confirm. |
danger |
Boolean for making the modal red. Useful for when you’re doing something scary like deletions. |
Events#
| Event | Description |
|---|---|
confirm |
When the user clicks the confirm button. |
cancel |
When the user clicks the cancel button. |
Slots#
The default slot replaces the bodyText prop. Useful when you need something more complicated than a single paragraph.
``` html
<confirmation-modal ...>
<p>More complicated</p>
<p>stuff here.</p>
</confirmation-modal>
```
Docs Feedback
Submit improvements, related content, or suggestions through Github.
Betterify this page