Popups
Create floating popups, menus, and tooltips using the power of Floating UI.
import { popup } from '@skeletonlabs/skeleton';
import type { PopupSettings } from '@skeletonlabs/skeleton';
Demo
Installation
RequiredTo begin, install Floating UI from NPM. This is required for popups to function.
npm install @floating-ui/dom
Import Floating UI into your application's root layout /src/routes/+layout.svelte
.
import { computePosition, autoUpdate, flip, shift, offset, arrow } from '@floating-ui/dom';
Then import storePopup
in your root layout as well.
import { storePopup } from '@skeletonlabs/skeleton';
Finally, pass an object containing each of the Floating UI modules to the store.
storePopup.set({ computePosition, autoUpdate, flip, shift, offset, arrow });
Events
The open and close state of the popup can be controlled by the event
setting.
Click
Lorem ipsum dolor sit amet, consectetur adipisicing elit.
Hover
Lorem ipsum dolor sit amet, consectetur adipisicing elit.
Focus-Blur
Lorem ipsum dolor sit amet, consectetur adipisicing elit.
Focus-Click
Lorem ipsum dolor sit amet, consectetur adipisicing elit.
Settings
Each popup requires their own unique popupSettings
, which allow you to configure the following.
Placement
(TODO)
Close Query
(TODO)
State Callback
(TODO)
Middlware
(TODO)
Z-Index Stacking
Please note Floating-UI does not define a default z-index. You can, however, specify this for your data-popup
element.
Accessibility
Use click
or focus
events when targeting mobile. Touch screens provide suboptimal support for hover
.