Floating

A Floating UI wrapper component for positions elements like tooltips, popovers, or dropdowns dynamically, ensuring they stay visible and aligned relative to a reference element.

View source
<script lang="ts">
    import { Floating, Button } from 'svxui';

    let isOpen = $state(false)
</script>

<Floating bind:isOpen closeOnClickOutside>
    {#snippet trigger()}
        <Button onclick={() => (isOpen = true)}>
            Open
        </Button>
    {/snippet}
    {#snippet content()}
        <div>Floating content</div>
    {/snippet}
</Floating>

API Reference

Floating

PropertyTypeDefaultDescription
arrow
boolean
falseShow arrow
autoUpdate
boolean
falseUpdateposition on scroll
backdrop
boolean
falseShow backdrop
closeOnClickBackdrop
boolean
falseClose floating on backdrop click. Only if backdrop is true
closeOnClickOutside
boolean
falseClose floating on outside click
closeOnEscape
boolean
falseClose floating on escape key
closeOnResize
boolean
falseClose floating on resize
closeOnScroll
boolean
falseClose floating on scroll
color
string | number | symbol
"neutral"Floating color
content Snippet
Snippet<[void]>
Floating content to render
elementRef $bindable
HTMLDivElement
Rendered DOM element
flip
boolean
falseUse flip floating middleware
hide
boolean
falseUse hide floating middleware
isOpen $bindable
boolean
falseManage/listen open state
offset
number
0Floating offset from target
onClose
() => void
Callback when floating is closed
placement
union
"top"Prefered placement
portal
boolean
falseEnable portal rendering
portalTarget
string
".svxui[data-theme-root]"Portal target identifier. Only if portal is true
radius
union
Floating radius
shift
boolean
falseUse shift floating middleware
size
union
"3"Floating size
transitionDelay
number
0Transition delay of open/close animation
transitionDuration
number
150Transition duration of open/close animation
trigger Snippet
Snippet<[void]>
Floating trigger content to render
variant
union
"solid"Floating variant

FloatingArrow

PropertyTypeDefaultDescription
color
string | number | symbol
"neutral"FloatingArrow color
elementRef $bindable
HTMLElement | SVGElement
Rendered DOM element
floatingState
FloatingState
Floating positioning state
height
number
FloatingArrow height
tipRadius
number
FloatingArrow tip radius
variant
union
"soft"FloatingArrow variant
width
number
FloatingArrow width

Examples

Arrow

Variants

Floating ui middlewares

Open on hover

Close from inside

v0.0.13