GitHub

/ icon-button

IconButton

@kumiki/headless/icon-button

Planned Svelte 5 attachment for IconButton — thin wrapper that delegates to the Button controller, narrowing the required accessible name surface.

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
Square icon-only Button
<script lang="ts">
  import { Tailwind as IconButton } from '@kumiki/atelier/icon-button';
  import XIcon from '$lib/icons/x.svelte';
</script>

<IconButton.Root variant="ghost" size="md" aria-label="Close">
  {#snippet icon()}<XIcon />{/snippet}
</IconButton.Root>

/ accessibility

Accessibility

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

Keyboard

No component-specific keymap. Inherits standard browser focus / activation behaviour.

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 ↗