Keyboard
No component-specific keymap. Inherits standard browser focus / activation behaviour.
Svelte 5 {@attach} factories. Glue ARIA / keyboard / focus onto any DOM node you choose. **Best when you want full control over markup and styling.**
<script lang="ts">
import { createDefinitionList } from '@kumiki/headless/definition-list';
const ctl = createDefinitionList({});
</script>
<div {@attach ctl.root}>
<!-- your markup -->
</div>Compound components (<Root> / <Trigger> / …). Markup is fixed; styling is not. Same trade-off as a typical headless UI library.
pnpm add @kumiki/components<DefinitionList.Root>
<DefinitionList.Term>Status</DefinitionList.Term>
<DefinitionList.Description>Active</DefinitionList.Description>
<DefinitionList.Term>Owner</DefinitionList.Term>
<DefinitionList.Description>baseballyama</DefinitionList.Description>
</DefinitionList.Root>Styled, copy-paste presets (preview). Run pnpm kumiki add to drop the source into your project, then edit freely.
Live preview…
pnpm add @kumiki/atelier<script lang="ts">
import { Tailwind as DL } from '@kumiki/atelier/definition-list';
</script>
<DL.Root layout="inline">
<DL.Term>Plan</DL.Term>
<DL.Description>Pro</DL.Description>
<DL.Term>Renews</DL.Term>
<DL.Description>2026-12-01</DL.Description>
</DL.Root>/ accessibility
axe-core — run on every PR (LTR + RTL × every documented state).
No component-specific keymap. Inherits standard browser focus / activation behaviour.