GitHub

/ time-field

TimeField

@kumiki/atelier/time-field

Layer 5 preview — styled TimeField (any granularity, 12h / 24h cycle).

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
Locale-aware time input
<script lang="ts">
  import { Tailwind as TimeField } from '@kumiki/atelier/time-field';
  import { Time } from '@internationalized/date';

  let value = $state(new Time(9, 30));
</script>

<TimeField.Root bind:value granularity="minute">
  <TimeField.Label>Open at</TimeField.Label>
  <TimeField.Input>
    <TimeField.Segment kind="hour" />
    <TimeField.Segment kind="minute" />
    <TimeField.Segment kind="dayPeriod" />
  </TimeField.Input>
</TimeField.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.