Composite inputs · stable · MIT

Date Picker

A formatted trigger composing Gummy Popover and Calendar.

Install editable source

Add Date Picker

Base UI / canonicalnpx shadcn@latest add https://gummyui.dev/r/gummy-date-picker.json

Canonical dependency: gummy-calendar, gummy-popover. Registry dependencies are resolved automatically.

Behavior contract

Semantics before surface

Semantics

A labelled trigger opens a focus-managed calendar surface.

Keyboard

Popover and Calendar keyboard contracts compose.

System support

Light and dark themes, logical RTL layout, reduced motion, responsive content, and forwarded public refs.

Source-derived reference

Anatomy and public API

Exported anatomy

These public React parts are read directly from the canonical source during the documentation build.

  • GummyDatePicker

Prop contracts

GummyDatePickerProps

Composes { label: string; value?: Date; defaultValue?: Date; onValueChange?: (date: Date) => void; min?: Date; max?: Date; locale?: string; disabled?: boolean; } & Omit<React.HTMLAttributes<HTMLDivElement>, "defaultValue" | "onChange">

Troubleshooting

Check behavior before surface.

Implementation decisions

When to use Date Picker

Use a date picker to support, rather than prevent, direct and correctly formatted date entry. State the expected date meaning, locale, time-zone boundary, allowed range, and unavailable dates in nearby guidance. Preserve keyboard movement and a route back to the invoking field. Test month and year boundaries, leap days, minimum and maximum values, typed errors, RTL layout, high zoom, and server-side validation.

Live product source

Inspect the canonical states

The Component Lab exercises real source across default, focus, disabled, responsive, dark, reduced-motion, and RTL contexts.

Open the live Component Lab

Interactive inspection

Try Date Picker in context

Load the real component preview when you are ready to interact with its responsive, theme, and direction controls.

Editable source

Read before you install

Canonical Base UI or native source

The registry payload stays off the initial page request.