Variables CSS

El paquete styled utiliza propiedades personalizadas de CSS (variables) para todos los valores visuales. Sobrescríbelas en .rdrp-root o en cualquier elemento padre para personalizar la apariencia sin tocar el código del componente.

Cómo Sobrescribir

Todas las variables están bajo el ámbito de .rdrp-root. Sobrescríbelas en tu propio CSS:

/* Tu tema personalizado */
.rdrp-root {
--rdrp-color-primary: #8b5cf6;
--rdrp-color-primary-hover: #7c3aed;
--rdrp-border-radius-lg: 12px;
}

O limita las sobrescrituras a una instancia específica usando una clase contenedora:

.my-purple-picker .rdrp-root {
--rdrp-color-primary: #8b5cf6;
--rdrp-color-primary-hover: #7c3aed;
--rdrp-color-primary-light: #ede9fe;
--rdrp-color-primary-lighter: #f5f3ff;
}
<div className="my-purple-picker">
<DatePicker value={value} onChange={setValue} />
</div>

Referencia de Variables

Colores

VariablePredeterminado (Claro)Descripción
--rdrp-color-primary#3b82f6Color de acción principal (día seleccionado, botón de confirmar)
--rdrp-color-primary-hover#2563ebEstado hover primario
--rdrp-color-primary-light#dbeafeFondo de rango, acento primario claro
--rdrp-color-primary-lighter#eff6ffFondo de preajuste activo
--rdrp-color-primary-disabled#93c5fdBotón de confirmar deshabilitado
--rdrp-color-bg#ffffffColor de fondo
--rdrp-color-bg-hover#f3f4f6Fondo hover para días, botones
--rdrp-color-bg-subtle#f9fafbFondo sutil
--rdrp-color-text#374151Color de texto predeterminado
--rdrp-color-text-strong#111827Texto fuerte (títulos, hora activa)
--rdrp-color-text-muted#6b7280Texto atenuado (botones de navegación, etiquetas)
--rdrp-color-text-placeholder#6b7280Texto de marcador de posición
--rdrp-color-text-disabled#d1d5dbTexto de día deshabilitado
--rdrp-color-text-outside#9ca3afDías de fuera del mes
--rdrp-color-text-inverse#ffffffTexto sobre fondos primarios
--rdrp-color-text-danger#ef4444Texto de botón de limpiar/peligro
--rdrp-color-text-today#2563ebColor del indicador de hoy
--rdrp-color-border#d1d5dbBorde predeterminado
--rdrp-color-border-light#e5e7ebBorde claro (popup, selectores)
--rdrp-color-border-subtle#f3f4f6Borde sutil (pie de página, preajustes)
--rdrp-color-border-hover#93c5fdEstado hover del borde
--rdrp-color-highlight-dot#f59e0bColor del punto de resaltado
--rdrp-highlight-dot-size4pxDiámetro del punto de resaltado
--rdrp-color-range-bg#dbeafeFondo de día dentro de rango
--rdrp-color-hover-range-bg#eff6ffFondo de previsualización de rango hover
--rdrp-color-hover-target-bg#bfdbfeFondo de punto final hover
--rdrp-color-time-highlightrgba(59, 130, 246, 0.08)Barra de resaltado del panel de tiempo

Tipografía

VariablePredeterminadoDescripción
--rdrp-font-familySystem font stackFamilia de fuentes
--rdrp-font-size-xs11pxExtra pequeña (encabezado de día de la semana en tamaño pequeño)
--rdrp-font-size-sm12pxPequeña (encabezados de día de la semana, etiquetas)
--rdrp-font-size-base13pxBase (celdas de día, botones)
--rdrp-font-size-md14pxMediana (activador, elementos de tiempo)
--rdrp-font-size-lg15pxGrande (título del encabezado)
--rdrp-font-weight-normal400Peso normal
--rdrp-font-weight-medium500Peso medio
--rdrp-font-weight-semibold600Peso semigrueso
--rdrp-font-weight-bold700Peso negrita (indicador de hoy)

Espaciado

VariablePredeterminadoDescripción
--rdrp-spacing-xs2pxEspaciado extra pequeño
--rdrp-spacing-sm4pxEspaciado pequeño
--rdrp-spacing-md8pxEspaciado mediano
--rdrp-spacing-lg12pxEspaciado grande
--rdrp-spacing-xl16pxEspaciado extra grande
--rdrp-spacing-2xl24pxEspaciado 2x extra grande

Bordes

VariablePredeterminadoDescripción
--rdrp-border-radius-sm4pxRadio pequeño
--rdrp-border-radius-md6pxRadio mediano (botones, selectores)
--rdrp-border-radius-lg8pxRadio grande (días, activador)
--rdrp-border-radius-xl12pxRadio extra grande (popup)
--rdrp-border-radius-full9999pxRadio completo (punto de resaltado)
--rdrp-border-width1pxAncho del borde

Sombras

VariablePredeterminadoDescripción
--rdrp-shadow-popup0 10px 25px rgba(0,0,0,0.1)Sombra del popup
--rdrp-shadow-inline0 4px 12px rgba(0,0,0,0.06)Sombra del modo en línea
--rdrp-shadow-sm0 2px 6px rgba(0,0,0,0.04)Sombra pequeña

Dimensionamiento

VariablePredeterminadoDescripción
--rdrp-cell-size36pxAncho/alto de la celda del día
--rdrp-nav-btn-size28pxTamaño del botón de navegación
--rdrp-weekday-height28pxAltura de la fila del encabezado de los días de la semana
--rdrp-grid-min-height216pxAltura mínima de la cuadrícula del calendario
--rdrp-panel-min-width252pxAncho del panel de calendario único
--rdrp-dual-gap24pxEspacio entre calendarios duales
--rdrp-trigger-min-width200pxAncho mínimo del botón activador
--rdrp-trigger-padding-x14pxRelleno horizontal del activador
--rdrp-trigger-padding-y8pxRelleno vertical del activador
--rdrp-popup-padding16pxRelleno interno del popup
--rdrp-popup-gap6pxEspacio del contenido del popup
--rdrp-btn-padding-x14pxRelleno horizontal del botón del pie de página
--rdrp-btn-padding-y6pxRelleno vertical del botón del pie de página
--rdrp-preset-min-width140pxAncho mínimo de la barra lateral de preajustes

Selector de Hora

VariablePredeterminadoDescripción
--rdrp-time-item-height32pxAltura del elemento de desplazamiento de tiempo
--rdrp-time-panel-height176pxAltura total del panel de tiempo
--rdrp-time-column-height160pxAltura de la columna desplazable
--rdrp-time-panel-min-width120pxAncho mínimo del panel de tiempo
--rdrp-time-colon-width12pxAncho del separador de dos puntos

Z-index

VariablePredeterminadoDescripción
--rdrp-z-popup50Z-index del popup
--rdrp-z-day-button20Z-index del día enfocado

Transiciones

VariablePredeterminadoDescripción
--rdrp-transition-fast0.1sTransiciones rápidas (hover del día)
--rdrp-transition-normal0.15sTransiciones normales (activador, botones)

Ejemplos en Vivo

Colores Personalizados (Tema Morado)

Sobrescribe las variables de color primario para crear un esquema de color completamente diferente. Este ejemplo usa un DatePicker con tonos violetas/morados.

import { useState } from "react";
import { DatePicker } from "react-date-range-picker-styled";
import "react-date-range-picker-styled/rdrp-styles.css";
function CustomColors() {
const [value, setValue] = useState<Date | null>(null);
return (
<div
style={
{
"--rdrp-color-primary": "#7c3aed",
"--rdrp-color-primary-hover": "#6d28d9",
"--rdrp-color-primary-light": "#ede9fe",
"--rdrp-color-primary-lighter": "#f5f3ff",
"--rdrp-color-primary-disabled": "#c4b5fd",
"--rdrp-color-text-today": "#7c3aed",
"--rdrp-color-border-hover": "#c4b5fd",
} as React.CSSProperties
}
>
<DatePicker value={value} onChange={setValue} />
</div>
);
}

Fuente Personalizada (Serif)

Las fuentes se aplican en cascada a través de CSS, por lo que envolver el selector en un div con una font-family personalizada se aplica a todo el texto. Este ejemplo usa un DateRangePicker con la fuente serif Georgia.

import { useState } from "react";
import { DateRangePicker } from "react-date-range-picker-styled";
import "react-date-range-picker-styled/rdrp-styles.css";
function CustomFont() {
const [value, setValue] = useState<{ start: Date | null; end: Date | null }>({
start: null,
end: null,
});
return (
<div style={{ fontFamily: "'Georgia', serif" }}>
<DateRangePicker value={value} onChange={setValue} />
</div>
);
}

Esquinas Afiladas (Sin Radio de Borde)

Establece todas las variables de radio de borde a 0px para una apariencia completamente cuadrada.

import { useState } from "react";
import { DatePicker } from "react-date-range-picker-styled";
import "react-date-range-picker-styled/rdrp-styles.css";
function CustomBorderRadius() {
const [value, setValue] = useState<Date | null>(null);
return (
<div
style={
{
"--rdrp-border-radius-sm": "0px",
"--rdrp-border-radius-md": "0px",
"--rdrp-border-radius-lg": "0px",
"--rdrp-border-radius-xl": "0px",
} as React.CSSProperties
}
>
<DatePicker value={value} onChange={setValue} />
</div>
);
}

Tamaño Personalizado vía Variables CSS

En lugar de usar la prop integrada size, sobrescribe las variables de dimensionamiento individuales para un control preciso. Este ejemplo usa un DateRangePicker con tamaño de celda y tamaños de fuente personalizados.

import { useState } from "react";
import { DateRangePicker } from "react-date-range-picker-styled";
import "react-date-range-picker-styled/rdrp-styles.css";
function CustomSize() {
const [value, setValue] = useState<{ start: Date | null; end: Date | null }>({
start: null,
end: null,
});
return (
<div
style={
{
"--rdrp-cell-size": "44px",
"--rdrp-font-size-base": "15px",
"--rdrp-font-size-md": "16px",
"--rdrp-font-size-lg": "18px",
"--rdrp-spacing-sm": "6px",
"--rdrp-spacing-md": "10px",
"--rdrp-spacing-lg": "14px",
} as React.CSSProperties
}
>
<DateRangePicker value={value} onChange={setValue} />
</div>
);
}