Modals
High priority dialogs and modals using a dynamic queue system.
import { Modal, modalStore } from '@skeletonlabs/skeleton';
import type { ModalSettings, ModalComponent } from '@skeletonlabs/skeleton';
Demo
Modal Store
When you wish to trigger a modal, import the modalStore
, which acts as the modal queue.
import { modalStore } from '@skeletonlabs/skeleton';
Trigger
The title
, body
, and image
are available to all modals.
Close
Trigger the close()
method to remove the first modal in the modal queue.
modalStore.close();
Clear
Trigger the clear()
method to completely empty the modal queue.
modalStore.clear();
Modal Settings
These additional settings are available to all modals.
const d: ModalSettings = {
// Provide arbitrary classes to the backdrop and modal elements:
backdropClasses: '!bg-green-500',
modalClasses: '!bg-red-500',
// Provide arbitrary metadata to your modal instance:
meta: { foo: 'bar', fizz: 'buzz', fn: myCustomFunction }
};
Component Modals
AdvancedTo create custom modals, generate a new component, then pass this to the Modal system.
See the additional information below to learn how to use custom component modals.
Import and use the modalStore
. All provide data is available within your component via
$modalStore[0]
.
Accessibility
Skeleton does not provide a means to disable the backdrop's click to close feature, as this would be harmful to accessibility. View the ARIA APG guidelines to learn more about modal accessibility.
SvelteKit SSR Warning
There are known security risks when using Svelte writable stores within SvelteKit load functions.
Details →