Saltar al contenido
EspañolEnglish
Todos los componentes (204)

Cronograma

Fechas y hora · Timeline · .amset-timeline

Qué es y cuándo usarlo

El plan de trabajo en barras: qué va del día tal al día cual y cuánto lleva hecho. Un Gantt de andar por casa, sin dependencias entre tareas. Como en el resto de gráficos de la biblioteca, el dibujo es el adorno y la tabla es el dato: debajo va una tabla de verdad con fechas, duración y avance, oculta a la vista salvo que se pida.

Cuándo usarlo

  • El plan de un lanzamiento, una colección, una obra: pocas tareas con fecha de inicio (from) y de fin (to).
  • progress (de 0 a 100) pinta la parte hecha dentro de la barra; tone en una tarea la colorea con el vocabulario común (accent, info, success, warning, error o neutral), y tone en el cronograma pinta todas las que no traen el suyo. detail sale en la tabla.
  • range para que dos cronogramas compartan escala, y tableVisible cuando la tabla también tiene que verse. withToday={false} quita la línea de hoy.

Cuándo no

  • Eventos de un día en el mes: MonthAgenda.
  • Un proceso por fases que avanza en orden: Steps.
  • Comparar cantidades: BarChart.

Teclado: no es interactivo y no tiene paradas de Tab. Las barras no se pulsan: son parte de una imagen.

Accesibilidad: el dibujo es una imagen con el resumen escrito en su nombre («Plan de la colección de otoño. 5 tareas, del 1 de septiembre al 15 de octubre. La más larga, Fundición, 16 días.»). La tabla está siempre en el DOM con su caption, aunque no se vea. Los meses y la línea de hoy son adorno. Las barras se miden en días de calendario contados en UTC, para que el cambio de hora no meta un día de 23 horas y descuadre el ancho.

Tamaños: barras de 20, 24 o 32 px de alto, con la columna de nombres de 7, 9 u 11 rem y su letra.

Fechas en la barra: el tramo como lo escribe el idioma («10–25 sept», «21 sept – 5 oct», «15 oct» si es de un día). Si no cabe acaba en «…», y en una barra de menos de 3 rem no se pinta; entero está en el title de la barra y en la tabla.

Movimiento: las barras entran creciendo desde su inicio, lo hecho crece detrás y la línea de hoy aparece cuando ya han llegado. Si cambian las fechas, las barras se desplazan a su sitio. Con movimiento reducido, nada de eso.

Aspecto fino: --amset-timeline-name es el ancho de la columna de nombres: la cabecera de meses, las barras y la línea de hoy se colocan a partir de él. Además -height (las barras), -slot (entre filas), -font (los nombres), -description (meses, fechas y tabla), -radius, -track (el fondo de cada fila), -bar y -bar-ink (el relleno y el color de sus fechas), -progress (lo hecho, encima de la barra), -today y -today-width.

Contexto: va dentro de LocaleProvider (o de AmsetProvider), que decide cómo se escriben los meses y las fechas.

Cómo se ve

Plan del proyecto
TareaEmpiezaAcabaDíasHecho
Diseno1 oct10 oct10—
Desarrollo8 oct28 oct21—
Pruebas24 oct4 nov12—

<Timeline
  label="Plan del proyecto"
  tasks={[
    { key: 'dis', title: 'Diseno', from: '2026-10-01', to: '2026-10-10' },
    { key: 'dev', title: 'Desarrollo', from: '2026-10-08', to: '2026-10-28' },
  ]}
/>

Props

Se importa con import { Timeline } from '@amset/ui'. Las obligatorias van marcadas.

PropTipoPara qué sirve
labelobligatoriastringDe que es el plan. Obligatoria: nombra el dibujo entero.
tasksobligatoriareadonly TimelineTask[]—
classNamestringSe une a las clases de la biblioteca, no las sustituye.
emptystring—
rangeDateRangeRango a mano, para que dos cronogramas compartan escala.
size"sm" | "md" | "lg"Barras de 20, 24 o 32 px, con su columna de nombres y su letra.
tableVisiblebooleanEnseña tambien la tabla. Para el lector de pantalla esta siempre.
todayDate—
tone"neutral" | "accent" | "secondary" | "tertiary" | "info" | "success" | "warning" | "error"El color de las barras que no traen `tone` propio. `accent` por defecto.
withTodaybooleanMarca el dia de hoy con una linea.

Acepta además los atributos del elemento que pinta: className, style, data-*, aria-* y sus eventos.

Mandos

Estas variables CSS son la forma de adaptarlo. Se declaran sobre el selector del componente, no en :root: la hoja las redeclara en la propia regla y una declaración en el mismo elemento gana siempre.

VariablePor defecto
--amset-timeline-name9rem
--amset-timeline-height1.5rem
--amset-timeline-slotvar(--amset-space-2)
--amset-timeline-fontvar(--amset-text-sm)
--amset-timeline-descriptionvar(--amset-text-xs)
--amset-timeline-radiusvar(--amset-radius-sm)
--amset-timeline-trackvar(--amset-surface-2)
--amset-timeline-barvar(--amset-accent)
--amset-timeline-bar-inkvar(--amset-accent-ink)
--amset-timeline-progresscolor-mix(in oklab, var(--amset-highlight) 30%, transparent)
--amset-timeline-todayvar(--amset-error)
--amset-timeline-today-width2px

Cómo se cambia

.amset-timeline {
  --amset-timeline-name: ...;
  --amset-timeline-height: ...;
}

En el banco de pruebas

Cada estado y cada variante, para tocarlos de uno en uno, en su ficha de ui.amset.tech: