Popover

Floating content panel anchored to a trigger element. Supports controlled open state and a close button.

Example

Props

Popover.Root

PropTypeDefaultDescription
openbooleanfalseControls visibility (bindable)
childrenSnippetTrigger and content

Popover.Trigger

PropTypeDefaultDescription
classstringAdditional CSS classes
childrenSnippetTrigger element

Popover.Content

PropTypeDefaultDescription
side'top' | 'right' | 'bottom' | 'left''bottom'Preferred side of the trigger
sideOffsetnumber4Distance from trigger in px
classstringAdditional CSS classes
childrenSnippetPopover body

Popover.Close

PropTypeDefaultDescription
classstringAdditional CSS classes
childrenSnippetClose button content

Usage

<script>
  import { Popover, Button } from '@chrissnell/chonky-ui';

  let open = $state(false);
</script>

<Popover.Root bind:open>
  <Popover.Trigger>
    <Button>Toggle</Button>
  </Popover.Trigger>
  <Popover.Content side="bottom">
    <p>Popover content here.</p>
    <Popover.Close>
      <Button size="sm">Close</Button>
    </Popover.Close>
  </Popover.Content>
</Popover.Root>