Saltar al contenido
Alea0.1
Pro
  1. Alea
  2. Componentes
  3. Formularios
  4. Fechas y horas

Formularios

Fechas y horas

Escribe una fecha o elígela en un calendario, rangos, horas, todo en el idioma y el calendario de la persona.

import { DatePicker, DateRangePicker, DateField, TimeField, Calendar, parseDate, TimePicker } from '@alea/ui';

Ejemplos

DatePicker

Escríbela o elígela.

Launch date
When the plugin goes live

Rango y límites

Fines de semana no disponibles, nada en el pasado.

Workshop days

DateField y TimeField

Segmentos donde se escribe.

Birthday
ddmmaaaa
Reminder
––––
24 hours
––––

Calendar

Un calendario solo.

Pick a day, octubre de 2026

28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1

Fecha y hora

granularity="minute" agrega la hora al mismo campo; hourCycle define 12 o 24 horas.

Publish at

Listas de mes y año, dos meses

pickers agrega selects de mes y año para saltar lejos; visibleMonths muestra varios meses lado a lado (se acomodan en pantallas angostas).

Birthday, octubre de 2026

28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1

Trip, octubre a noviembre de 2026

28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6

TimePicker

Un campo de hora con un reloj en un popover: elige la hora, luego los minutos, luego AM o PM. Cada número es un botón, así funciona con teclado y lectores de pantalla. input="wheel" muestra ruedas en su lugar.

Estados

Cada estado de interacción, forzado para compararlos, en ambos temas.

Oscuro

Habilitado
Hover
Foco
Presionado
Disabled
Invalid
Read Only
Required

Claro

Habilitado
Hover
Foco
Presionado
Disabled
Invalid
Read Only
Required

Anatomía

Las partes del componente y la clase que da estilo a cada una.

Tokens

Los tokens de diseño que usa este componente, con su valor en el tema actual. Cambia cualquiera para darle otro estilo.

Space

  • --alea-space-2…
  • --alea-space-4…

Props

DatePicker props

Escribe una fecha o elígela de un calendario.

PropTipoPor defectoDescripción
descriptionReactNode-Texto de ayuda bajo el campo.
errorMessageReactNode | ((v: ValidationResult) => ReactNode)-Texto de error, mostrado cuando es inválido.
labelReactNode-La etiqueta visible.
motionMotionProp-Cómo entra y sale el popup: un preset (fade, scale, pop, slide-down, blur...), false para ninguno, u opciones.

DateRangePicker props

Escribe o elige una fecha de inicio y de fin.

PropTipoPor defectoDescripción
descriptionReactNode-Texto de ayuda bajo el campo.
errorMessageReactNode | ((v: ValidationResult) => ReactNode)-Texto de error, mostrado cuando es inválido.
labelReactNode-La etiqueta visible.
motionMotionProp-Cómo entra y sale el popup: un preset (fade, scale, pop, slide-down, blur...), false para ninguno, u opciones.

DateField props

Escribe una fecha segmento por segmento, en el formato del idioma y región de la persona.

PropTipoPor defectoDescripción
descriptionReactNode-Texto de ayuda bajo el campo.
errorMessageReactNode | ((v: ValidationResult) => ReactNode)-Texto de error, mostrado cuando es inválido.
labelReactNode-La etiqueta visible.

TimeField props

Escribe una hora; 12 o 24 horas según el idioma y región (hourCycle para forzar uno).

PropTipoPor defectoDescripción
descriptionReactNode-Texto de ayuda bajo el campo.
errorMessageReactNode | ((v: ValidationResult) => ReactNode)-Texto de error, mostrado cuando es inválido.
labelReactNode-La etiqueta visible.

Calendar props

Un mes para elegir una fecha: listas de mes y año, varios meses lado a lado. Las flechas se mueven por día, Re Pág/Av Pág por mes.

PropTipoPor defectoDescripción
pickersboolean-Listas de mes y año en el encabezado, para saltar lejos (cumpleaños, contratos).
visibleMonthsnumber1Cuántos meses se muestran lado a lado. Por defecto 1; 2 es común para rangos. Se apilan en pantallas angostas.

RangeCalendar props

Meses para elegir una fecha de inicio y de fin.

PropTipoPor defectoDescripción
pickersboolean-Listas de mes y año en el encabezado, para saltar lejos (cumpleaños, contratos).
visibleMonthsnumber1Cuántos meses se muestran lado a lado. Por defecto 1; 2 es común para rangos. Se apilan en pantallas angostas.

TimePicker props

Un campo de hora con un reloj (o ruedas) en un popover: elige la hora, luego los minutos, luego AM o PM. Cada número del reloj es un botón, así funciona con teclado y lectores de pantalla.

PropTipoPor defectoDescripción
classNamestring-Clases extra.
defaultValueTimeValue24 | nullnullLa hora al inicio.
descriptionReactNode-Texto de ayuda bajo el campo.
hourCycle12 | 24-12 h con AM y PM (por defecto según la convención del idioma y región si se omite) o 24 h.
input"dial" | "wheel"'dial'Cómo elegir: un reloj (por defecto) o ruedas.
isDisabledboolean-Lo deshabilita.
labelReactNode-La etiqueta visible.
minuteStepnumber5Paso de minutos en el reloj. Por defecto 5.
onChange((value: TimeValue24) => void)-Se llama con la nueva hora.
valueTimeValue24 | null-La hora (controlado), en 24 h.

Especificaciones

Generado desde el código: las variantes de los tipos, los estados y tokens del CSS, y los patrones de motion que aplican. Las grillas muestran el componente real en ambos temas; los números se miden en la página.

DatePicker

Motion
nudgeAcepta una prop motion para su entrada y salida.
Oscuro y claro
Cada color viene de tokens del tema, así que sigue a data-theme (y a presets como Graphite) en la página o en cualquier contenedor. El contraste se revisa en ambos temas.
Clases para estilos
.alea-input-wrap.alea-date-wrap.alea-cal-popover.alea-cal-dialog

DateRangePicker

Estados
PlaceholderFocus
Motion
nudgeAcepta una prop motion para su entrada y salida.
Oscuro y claro
Cada color viene de tokens del tema, así que sigue a data-theme (y a presets como Graphite) en la página o en cualquier contenedor. El contraste se revisa en ambos temas.
Clases para estilos
.alea-input-wrap.alea-date-wrap.alea-date-input.alea-date-segment.alea-date-dash.alea-cal-popover.alea-cal-dialog
Atributos data
data-type=dayPerioddata-type=yeardata-type=literal

DateField

Motion
nudge
Oscuro y claro
Cada color viene de tokens del tema, así que sigue a data-theme (y a presets como Graphite) en la página o en cualquier contenedor. El contraste se revisa en ambos temas.
Clases para estilos
.alea-input-wrap.alea-date-wrap

TimeField

Motion
nudge
Oscuro y claro
Cada color viene de tokens del tema, así que sigue a data-theme (y a presets como Graphite) en la página o en cualquier contenedor. El contraste se revisa en ambos temas.
Clases para estilos
.alea-input-wrap.alea-date-wrap

Calendar

Oscuro y claro
Cada color viene de tokens del tema, así que sigue a data-theme (y a presets como Graphite) en la página o en cualquier contenedor. El contraste se revisa en ambos temas.
Clases para estilos
.alea-calendar
Atributos data
data-months

RangeCalendar

Estados
SelectedPlaceholderFocus
Oscuro y claro
Cada color viene de tokens del tema, así que sigue a data-theme (y a presets como Graphite) en la página o en cualquier contenedor. El contraste se revisa en ambos temas.
Clases para estilos
.alea-calendar.alea-range-calendar.alea-label-required.alea-date-input.alea-date-segment
Atributos data
data-selection-startdata-selection-enddata-type=dayPerioddata-type=yeardata-type=literaldata-months

TimePicker

Variantes
inputdialwheel
Estados
PlaceholderPressed (CSS)Hover (CSS)Selected
Motion
nudge
Oscuro y claro
Cada color viene de tokens del tema, así que sigue a data-theme (y a presets como Graphite) en la página o en cualquier contenedor. El contraste se revisa en ambos temas.
Clases para estilos
.alea-time-picker.alea-input-wrap.alea-time-trigger.alea-input.alea-time-value.alea-input-affix.alea-time-popover.alea-time-dialog.alea-time-head.alea-time-part.alea-clock.alea-clock-center
Atributos data
data-inner

Accesibilidad

  • Cada parte de una fecha es su propio spinbutton, así que las fechas se escriben, no se adivinan.
  • El calendario es una grilla con los nombres de los días; los días no disponibles se anuncian.

Teclado

TeclaAcción
Flecha arriba / AbajoCambian la parte con foco
EscribirLlena la parte
Flechas (calendario)Se mueven por día o semana
Re Pág / AbajoSe mueve por mes

Qué hacer y qué evitar

Hacer

  • Usa minValue, maxValue e isDateUnavailable para límites reales.

Evitar

  • No uses un selector de fecha para cumpleaños muy atrás: DateField es más rápido.
Probado con axe, teclado y roles de lector de pantalla