svelte-modal
is a simple modal dialog based on aircss and svelte.
In an existing svelte project, simply run the following command:
npm add @aircss/svelte-modal
The following example is a page with a basic "two-buttons" confirmation dialog and a clickable button to show it:
<script lang="ts">
import '@aircss/air';
import Modal from '@aircss/svelte-modal';
let modal;
</script>
<Modal bind:this={modal} class="w6 ba bg--white" on:success={console.log} on:cancel={console.warn}>
<h2 class="ma0 pa4 bb b--noir-20">Confirm</h2>
<div class="ph4">
<p class="lh-body tj i">Do you confirm the pending operation ?</p>
</div>
<div class="flex pa4 bt b--noir-20 evenly-filled">
<button class="w4 pa3 ba bg--red white pointer tc" on:click={modal.close}> No </button>
<button
class="w4 pa3 ba bg--emeraude white pointer tc"
data-success="true"
on:click={modal.close}
>
Yes
</button>
</div>
</Modal>
<button on:click={modal.show}>Show</button>
id
: set a id attribute to the model element (optional)class
: set custom classes for the modal element (optional)params
: bi-directional binding to share anything between caller and callee (optional)show(payload: unknown)
: make the modal visible and set its params
prop with the passed argument.
If the method is called by an HTML event (like a click on a button element), show()
will use the
data attributes of the event target if there is any.
close(payload: unknown)
: make the modal disappear. The custom event triggered by closing the
modal will use the payload as its detail
. If the method is called by an HTML event (like a click
on a button element), close()
will use the data attributes of the event target if there is any.
show
: this event is fired anytime the modal is made visible. event.detail
holds the
params
argument of the ad-hoc method if set.
close
: this event is fired anytime the modal disappears. event.detail
holds the
payload
of the ad-hoc method if set (through method args or data attributes of the event target).
success
: this event is fired when the modal disappears and if the close()
method has
a payload (through method args or data attributes of the event target).
cancel
: this event is fired when the modal disappears and if the close()
method has
no payload (through method args or data attributes of the event target).