Clases CSS globales

DayFlow ofrece un conjunto de clases CSS con el prefijo df- que te permiten personalizar el aspecto de los componentes del calendario. Están pensadas para dar estilo cómodamente sin tener que modificar la biblioteca.

Elegir la entrada CSS adecuada

Elige la hoja de estilos según si tu aplicación ya usa Tailwind CSS:

EntradaIncluyeCuándo usarla
styles.cssBundle completo, con el preflight de TailwindNo usas Tailwind
styles.components.cssSolo estilos de componente, sin reset de CSSYa usas Tailwind
@import '@dayflow/core/dist/styles.components.css';
@import 'tailwindcss';

Para sobrescribir el tema, es preferible usar las variables --df-color-* o las clases semánticas estables df-* que se documentan más abajo.

Índice


Comunes

Clases CSS comunes, usadas en todas las vistas del calendario.

Nombre de claseDescripción
df-calendar-containerContenedor raíz exterior de la barra lateral y el calendario; admite --df-calendar-height.
df-calendarContenedor principal del calendario (incluye la cabecera y el contenido de la vista)
df-headerSección de cabecera del calendario (incluye el título, el botón de hoy y el selector de vista)
df-header-leftZona izquierda de la cabecera (título y botones de navegación)
df-header-midZona central de la cabecera (título del rango de fechas actual)
df-header-rightZona derecha de la cabecera (selector de vista y búsqueda)
df-navigationContenedor de los controles de navegación
df-view-header-containerContenedor compartido de la cabecera secundaria de la vista
df-view-header-titleClase de texto compartida para el título de las cabeceras de vista
df-view-header-subtitleClase de texto compartida para el subtítulo de las cabeceras de vista
df-eventClase base de todos los eventos
df-event-titleTexto del título del evento
df-event-timeTexto de la hora del evento
df-event-color-barBarra de color a la izquierda de los eventos (vistas de día y semana)
df-month-event-color-barIndicador de color de los eventos normales (vista de mes)
df-all-day-rowContenedor de la fila de eventos de día completo
df-all-day-labelTexto de la etiqueta de día completo
df-all-day-contentÁrea de contenido de los eventos de día completo
df-all-day-cellCelda individual de un evento de día completo
df-date-numberNúmero del día
df-current-time-lineContenedor del indicador de la hora actual
df-current-time-labelTexto de la etiqueta de la hora actual
df-current-time-barLínea horizontal de la hora actual
df-calendar-checkboxEstilo de casilla compartido por las listas de calendarios y controles relacionados
df-portalClase raíz de ámbito para las superposiciones flotantes renderizadas con portales
df-range-pickerClase raíz de ámbito para el popup y el envoltorio del selector de rango

Clases utilitarias semánticas

DayFlow expone ahora un conjunto estable de clases semánticas df-* para estados internos como botones seleccionados, fechas resaltadas, acciones destructivas y anillos de foco. Se definen en la CSS base compartida y puedes apuntar a ellas desde tu propia hoja de estilos sin riesgo.

Usa estas clases cuando quieras que tu contenido propio, la interfaz de un plugin o la salida de un content slot encajen con los tokens de tema de DayFlow:

Nombre de clasePara qué sirve
df-fill-primaryFondo relleno con el color primario y texto de primer plano acorde
df-fill-secondaryFondo relleno con el color secundario y texto de primer plano acorde
df-fill-destructiveFondo relleno con el color destructivo y texto de primer plano acorde
df-tint-primaryTinte primario al 10 % con texto primario
df-tint-primary-mdTinte primario al 20 % con texto primario
df-tint-primary-lgTinte primario al 30 % con texto primario
df-hover-primaryEstado hover con tinte primario
df-hover-primary-mdEstado hover con tinte primario más intenso
df-hover-primary-solidEstado hover sólido para botones rellenos con el color primario
df-hover-baseFondo hover por defecto, con el token de hover de DayFlow
df-hover-mutedFondo hover apagado
df-hover-destructiveEstado hover destructivo
df-text-primaryColor de texto primario
df-text-mutedColor de texto apagado
df-text-primary-fgColor de texto sobre fondos rellenos con el color primario
df-text-secondary-fgColor de texto sobre fondos rellenos con el color secundario
df-text-destructiveColor de texto destructivo
df-text-destructive-fgColor de texto sobre fondos rellenos con el color destructivo
df-bg-baseFondo de superficie base
df-bg-cardFondo de superficie de tarjeta
df-bg-sidebarFondo apagado, al estilo de la barra lateral
df-bg-secondaryFondo apagado secundario
df-bg-tertiaryFondo terciario o superficie de separación
df-border-baseBorde base
df-border-lightBorde más claro o suave
df-border-strongBorde marcado, con el token primario
df-border-primaryColor de borde primario
df-border-primary-softColor de borde primario más suave
df-ring-primaryColor del anillo primario de foco y selección
df-ring-primary-solidColor sólido del anillo primario
df-shadow-smSombra de elevación pequeña
df-shadow-mdSombra de elevación media
df-shadow-primaryToken de color de la sombra primaria
df-focus-ringCombinación de border-color y ring-color primarios en :focus
df-focus-ring-onlyring-color primario en :focus, sin cambiar el color del borde
df-focus-border-primarySolo el border-color primario en :focus

Para dar tema, usa preferentemente estas clases o las variables --df-color-*. Evita apuntar a combinaciones internas antiguas como bg-primary, text-primary o hover:bg-primary/90 sobre los elementos internos de DayFlow: esos nombres semánticos de Tailwind ya no forman parte del contrato público de estilos.


Utilidades de diseño y animación

Estas clases resultan útiles cuando quieres que el contenido propio de un slot o la interfaz de un plugin hereden el comportamiento de diseño y animación de DayFlow.

Nombre de clasePara qué sirve
df-content-slot-stackedHace que un content slot ocupe la altura disponible y apile su contenido en vertical
df-scrollbar-hideOculta las barras de desplazamiento sin perder el comportamiento de scroll
df-animate-inAyuda base de temporización para las animaciones de entrada
df-fade-inAyuda para la animación de aparición gradual
df-zoom-in-95Ayuda para una animación de zoom de entrada ligera
df-animate-slide-upAnimación de entrada deslizando hacia arriba
df-animate-slide-downAnimación de salida deslizando hacia abajo

Vista de día

Clases CSS propias de la vista de día.

Nombre de claseDescripción
df-day-viewContenedor de la vista de día
df-day-eventEvento individual en la vista de día
df-day-time-gridContenedor de la rejilla horaria
df-time-columnColumna de horas (barra lateral izquierda)
df-time-slotContenedor de una franja horaria (columna izquierda)
df-time-labelTexto de la etiqueta de hora (por ejemplo, «13:00»)
df-time-grid-rowFila horizontal de la rejilla horaria
df-time-grid-cellCelda individual de la rejilla horaria
df-right-panelPanel derecho de la vista de día (minicalendario y lista de eventos)

Vista de semana

Clases CSS propias de la vista de semana.

Nombre de claseDescripción
df-week-viewContenedor de la vista de semana
df-week-eventEvento individual en la vista de semana
df-week-headerContenedor de la cabecera semanal con los nombres de los días
df-week-header-rowFila de cabecera fija con los nombres de los días
df-week-day-cellCelda individual de día en la cabecera
df-time-columnColumna de horas (barra lateral izquierda)
df-time-slotContenedor de una franja horaria (columna izquierda)
df-time-labelTexto de la etiqueta de hora
df-time-grid-rowFila horizontal de la rejilla horaria
df-time-grid-cellCelda individual de la rejilla horaria

Vista de mes

Clases CSS propias de la vista de mes.

Nombre de claseDescripción
df-month-viewContenedor de la vista de mes
df-month-gridContenedor principal de la rejilla mensual
df-month-day-cellCelda de día individual en la vista de mes
df-month-date-number-containerContenedor del área del número de día
df-month-date-numberNúmero de día en la vista de mes
df-month-more-eventsIndicador «+ x más» para los eventos ocultos
df-month-titleTítulo de mes flotante durante el desplazamiento

Vista de año

Clases CSS propias de la vista de año. Resultan especialmente útiles para personalizar el aspecto de los eventos en el resumen anual.

Nombre de claseDescripción
df-year-eventContenedor exterior del evento: envuelve todo el elemento
df-event-year-contentContenedor del contenido del evento: icono, título y demás
df-event-year-titleTexto del título del evento: úsalo para ajustar alineación, fuente, etc.
df-event-icon-svgSVG del icono del evento, usado en todos los renderizadores, incluida la vista de año
df-event-year-indicatorIndicador de color de los eventos con horario: el punto o barra de color
df-year-grid-monthContenedor de la tarjeta de mes en la vista de año en modo rejilla
df-year-fixed-day-cellCelda de día en la vista de año con semanas fijas

Minicalendario

Clases CSS del componente de minicalendario (habitualmente en la barra lateral o en la vista de día).

Nombre de claseDescripción
df-mini-calendarContenedor del minicalendario
df-mini-calendar-bodyEnvoltorio del cuerpo del minicalendario
df-mini-calendar-header-navFila de navegación entre meses
df-mini-calendar-nav-btnBotón de mes anterior o siguiente
df-mini-calendar-month-labelEtiqueta del mes actual
df-mini-calendar-gridContenedor de la rejilla de días
df-mini-calendar-headerCelda de cabecera de día de la semana (por ejemplo, «Lu», «Ma»)
df-mini-calendar-dayClase base del botón de fecha del minicalendario
df-mini-calendar-day-cellSuperficie con estilo de la celda de fecha
df-mini-calendar-day-numberEtiqueta numérica del día
df-mini-calendar-dotsContenedor de los puntos de evento dentro de una celda
df-mini-calendar-dotPunto de evento individual

Barra lateral

Clases CSS del componente de barra lateral.

Nombre de claseDescripción
df-sidebarContenedor de la barra lateral
df-sidebar-headerContenedor de la cabecera de la barra lateral
df-sidebar-toggleBotón para plegar y desplegar la barra lateral
df-sidebar-header-titleTítulo de la cabecera de la barra lateral («Calendarios»)
df-sidebar-list-shellEnvoltorio con scroll alrededor de las listas
df-sidebar-listContenedor de la lista de calendarios
df-sidebar-list-itemElemento individual de calendario en la lista
df-sidebar-rowFila interactiva dentro de cada elemento de la lista
df-sidebar-chipEtiqueta o chip pequeño de la barra lateral
df-sidebar-dialogContenedor del modal o diálogo de la barra lateral
df-sidebar-buttonClase de botón compartida de la barra lateral

Clases CSS de los botones de navegación.

Nombre de claseDescripción
df-nav-buttonClase base del botón de flecha de navegación (anterior/siguiente)
df-calendar-nav-buttonBotón de flecha de navegación del calendario, con estilo
df-today-buttonClase base del botón «Hoy»
df-calendar-today-buttonBotón «Hoy» del calendario, con estilo

Detalle del evento

Clases CSS de los paneles y diálogos de detalle del evento.

Nombre de claseDescripción
df-event-detail-panelPanel flotante de detalle del evento
df-event-dialog-overlayRaíz de la superposición del diálogo de detalle
df-event-dialog-backdropFondo del diálogo de detalle del evento
df-dialog-containerContenedor del contenido del diálogo
df-event-dialog-closeBotón de cierre del diálogo de detalle
df-portalClase raíz de portal compartida

Content Slots

Clases CSS del sistema de renderizado de content slots.

Nombre de claseDescripción
df-content-slotContenedor de un content slot
df-slot-[id]Clase dinámica asignada a una instancia concreta de slot, donde [id] es un identificador único

Atributos de estado de los eventos

DayFlow expone bastante más que las banderas de estado de los eventos. En eventos, rejillas, superposiciones, paneles y utilidades internas de diseño, el proyecto usa actualmente los atributos data-* siguientes. A muchos puedes apuntar directamente desde CSS, mientras que unos pocos son sobre todo puntos de anclaje estructurales para la lógica de superposición y la detección de clics fuera.

Elementos de evento

AtributoValoresDescripción
data-view"day" "week" "month" "year" "agenda"Qué vista está renderizando el evento o fragmento de evento
data-all-day"true" "false"Si el evento es de día completo
data-selected"true" "false"Si el evento está seleccionado
data-dragging"true" "false"Si el evento se está arrastrando
data-resizing"true" "false"Si el evento se está redimensionando
data-popping"true" "false"Si el evento aparece resaltado o elevado durante la interacción
data-editable"true" "false"Si el evento se puede editar desde la interfaz integrada
data-viewable"true" "false"Si se puede abrir la interfaz de detalle del evento
data-draggable"true" "false"Si el arrastre está habilitado para ese evento
data-multi-day"true" "false"Si el evento abarca varios días
data-month-stack"true" "false"Si el evento se renderiza en el diseño apilado de la vista de mes
data-touch-handles"true" "false"Si deben mostrarse o reservarse los tiradores táctiles de redimensionado
data-axisPalabras clave según la vistaPista de orientación para los renderizadores de eventos compactos o con horario
data-densityPalabras clave según la vistaPista de densidad para el contenido de eventos compactos
data-positionPalabras clave según la vistaPista de posición para renderizadores segmentados o compactos
data-segment-shape"full" "start" "middle" "end"Forma de las esquinas redondeadas en eventos de varios segmentos
data-segment-daysCadena numéricaNúmero de días que representa un segmento de evento en la vista de mes
data-event-idCadena con el id del eventoIdentificador del evento adjunto a los nodos interactivos y anclajes de panel
data-continued-left"true" "false"El distintivo de día completo de la agenda continúa desde un día anterior
data-continued-right"true" "false"El distintivo de día completo de la agenda continúa en un día posterior

Estado de fechas, rejilla y diseño

AtributoValoresDescripción
data-today"true" "false"Marca una fecha, sección o celda de cabecera que representa hoy
data-other-month"true" "false"Marca las fechas que pertenecen al mes anterior o siguiente
data-current-month"true" "false"Marca las fechas renderizadas dentro del mes actual
data-dateCadena de fechaFecha concreta adjunta a las celdas de rejilla o de la vista de año
data-first-day"true" "false"Marca el primer día visible en una estructura agrupada de año o mes
data-weekend"true" "false"Marca las celdas y etiquetas de fin de semana
data-has-events"true" "false"Marca las celdas de rejilla que contienen al menos un evento
data-heat-levelCadena numéricaNivel de intensidad del mapa de calor en la vista de año en modo rejilla
data-visible"true" "false"Bandera genérica de visibilidad para diseños virtuales o condicionales
data-layoutPalabra clave de diseñoMarcador interno del modo de diseño en el renderizado mensual o con scroll virtual
data-layout-ready"true" "false"Si un diseño virtualizado ha completado su primera pasada de medición
data-trailing-border"true" "false"Si una celda de mes debe dibujar el borde final
data-scrollbar-space"true" "false"Si una vista reserva espacio para la barra de desplazamiento
data-secondary-tz"true" "false"Si hay un eje de zona horaria secundaria activo
data-show-all-day"true" "false"Si la fila de día completo está habilitada
data-sliding-view"true" "false"Si una vista está en estado de deslizamiento o transición
data-mobile"true" "false"Pista de renderizado en modo móvil usada por algunos fragmentos de vista compactos
data-switcher-mode"buttons" "select"Qué modo del selector de vista integrado está activo
data-inside-pill"true" "false"Si el contenido compacto de la cabecera se renderiza dentro de la píldora de hoy
data-sidebar-collapsed"true" "false"Si la barra lateral está plegada
data-sidebar-enabled"true" "false"Si el armazón del calendario está montado con el plugin de barra lateral
data-df-themePalabra clave de temaMarcador de tema que emiten los envoltorios de diseño con tema

Controles, campos y búsqueda

AtributoValoresDescripción
data-active"true" "false"Marcador genérico de estado activo para conmutadores, pestañas y controles de selección
data-open"true" "false"Si un desplegable, panel o superficie de búsqueda está abierto
data-bordered"true" "false"Si la cabecera debe dibujar su borde inferior
data-loading"true" "false"Estado de carga de botones y acciones asíncronas
data-ready"true" "false"Si una superposición de creación rápida ha terminado de posicionarse
data-placementPalabra clave de posiciónPista de posición para alinear popups y la creación rápida
data-checked"true" "false"Estado marcado de los conmutadores propios
data-disabled"true" "false"Estado desactivado de conmutadores y campos propios
data-kindPalabra clave según el componenteMarcador de tipo de sección o campo usado por el panel de eventos en móvil
data-expanded"true" "false"Estado desplegado o plegado de las secciones del panel
data-closing"true" "false"Marca el panel móvil durante su transición de cierre
data-tone"default" "today" "upcoming"Tono semántico de las cabeceras de fecha en los resultados de búsqueda agrupados
data-mini-calendar-dotAtributo presenteMarcador de los puntos de evento del minicalendario

Estado del plugin de barra lateral

AtributoValoresDescripción
data-active"true" "false"Resalta la fila del calendario activo en la lista lateral
data-collapsed"true" "false"Si un grupo de origen o un panel con chevron está plegado
data-draggable"true" "false"Si un calendario de la barra lateral se puede arrastrar
data-dragging"true" "false"Si un calendario de la barra lateral se está arrastrando
data-position"top" "bottom"Posición del indicador de destino al arrastrar calendarios en la barra lateral
data-selected"true" "false"Estado de opción seleccionada en los desplegables y diálogos de importación
data-submenu-contentAtributo presenteMarca el contenido de los submenús por portal (menús de fusión y superposiciones relacionadas)

Superposiciones y puntos de interacción

AtributoValoresDescripción
data-event-detail-panelAtributo presenteMarca la raíz del panel flotante de detalle del evento
data-event-detail-dialogAtributo presenteMarca la raíz del diálogo modal de detalle del evento
data-range-picker-popupAtributo presenteMarca la raíz del popup del selector de rango
data-calendar-picker-dropdownAtributo presenteMarca la raíz del desplegable de selección de calendario
data-grid-day-cellAtributo presenteMarca las celdas de día pulsables en la vista de año en modo rejilla
data-grid-day-popupAtributo presenteMarca la raíz del popup de día de la vista de año

Ejemplo

/* Selected events */
.df-event[data-selected='true'] {
  outline: 2px solid var(--df-color-primary);
}

/* Events while being dragged */
.df-event[data-dragging='true'] {
  opacity: 0.6;
}

/* Only target month-view events */
.df-event[data-view='month'] {
  font-size: 11px;
}

/* All-day events only */
.df-event[data-all-day='true'] {
  font-weight: 600;
}

/* Highlight today's agenda section or compact grid cell */
[data-today='true'] {
  background-color: color-mix(in srgb, var(--df-color-primary) 8%, transparent);
}

Personalización

Para personalizar el aspecto, apunta a estas clases o sobrescribe las variables --df-color-* en tu CSS global. La mayoría de los cambios de tema no deberían necesitar !important; úsalo solo cuando quieras ganar deliberadamente a una regla local muy específica.

Ejemplo

/* Change the background of all events */
.df-event {
  border-radius: 8px !important;
}

/* Customize the current time indicator */
.df-current-time-line {
  z-index: 100;
}
.df-current-time-bar {
  height: 3px !important;
  background-color: #ef4444 !important;
}

/* Customize specific view */
.df-day-view .df-event {
  border-left: 4px solid #3b82f6;
}

/* Style the sidebar */
.df-sidebar {
  background-color: #f8fafc !important;
}

/* Style mini calendar */
.df-mini-calendar-day:hover {
  background-color: #e2e8f0;
}

/* Reuse DayFlow semantic helpers in your own slot or plugin markup */
.my-custom-primary-chip {
  background-color: var(--df-color-primary);
  color: var(--df-color-primary-foreground);
}

/* Dark mode overrides */
.dark .df-calendar {
  background-color: #111827;
}

/* Style event detail panel */
.df-event-detail-panel {
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15) !important;
}

Consejos de uso

  1. Especificidad: si tus estilos no se aplican, aumenta la especificidad envolviendo el calendario en una clase propia:

    .my-custom-calendar .df-event { ... }
  2. Diseño adaptable: usa media queries para ajustar los estilos en móvil:

    @media (max-width: 768px) {
      .df-event-title {
        font-size: 10px;
      }
      .df-time-label {
        font-size: 10px;
      }
    }
  3. Modo oscuro: usa el selector .dark para los estilos específicos del modo oscuro:

    .dark .df-month-day-cell {
      border-color: #374151;
    }
  4. Variables CSS: DayFlow usa propiedades personalizadas --df-color-* para los colores. Sobrescríbelas en .df-calendar-container (y en .df-portal para las superposiciones flotantes) si quieres cambios de color acotados:

    .df-calendar-container,
    .df-portal {
      --df-color-primary: #3b82f6;
      --df-color-primary-foreground: #ffffff;
    }

Actualizar desde versiones anteriores

Cambio incompatible: se elimina la clase calendar-event

La clase calendar-event se ha eliminado de los elementos de evento. Si tu hoja de estilos apunta a .calendar-event { ... }, cámbialo por .df-event { ... }.

Las clases utilitarias internas de Tailwind (flex, rounded-md, shadow-sm, etc.) que antes aparecían en los elementos del DOM de DayFlow también se han eliminado. Nunca formaron parte de la API pública. Para toda personalización de CSS, usa las clases df-* y los atributos data-* documentados.

Documentación relacionada

En esta página