GitHub

/ popover

Popover

@kumiki/headless/popover

Svelte 5 attachments for Popover — trigger / content / close / title / description with dismissable + focus-on-open wiring.

This component, layer by layer

Styled, copy-paste presets (preview). Run pnpm kumiki add to drop the source into your project, then edit freely.

Live preview

Live preview…

Install
pnpm add @kumiki/atelier
Floating panel
<script lang="ts">
  import { Tailwind as Popover } from '@kumiki/atelier/popover';
</script>

<Popover.Root>
  <Popover.Trigger>Notifications</Popover.Trigger>
  <Popover.Content>
    <Popover.Title>Inbox</Popover.Title>
    <Popover.Description>You have 3 unread items.</Popover.Description>
    <Popover.Close>Dismiss</Popover.Close>
  </Popover.Content>
</Popover.Root>

/ accessibility

Accessibility

axe-core — run on every PR (LTR + RTL × every documented state).

Keyboard

KeyEffect
Click triggerToggle.
EscapeDismiss (policy-aware).
TabFocus moves into content.

Test discipline

  • axe-core — run on every PR (LTR + RTL × every documented state).
  • APG keyboard tests — Playwright, hand-written per pattern.
  • VoiceOver / NVDA — Guidepup nightly schedule.
  • Type-level required names — title / aria-label / aria-labelledby.
Read the W3C ARIA APG pattern ↗