Variáveis CSS

O pacote styled usa propriedades personalizadas CSS (variáveis) para todos os valores visuais. Sobrescreva-as no .rdrp-root ou em qualquer elemento pai para personalizar a aparência sem tocar no código do componente.

Como Sobrescrever

Todas as variáveis estão no escopo do .rdrp-root. Sobrescreva-as no seu próprio CSS:

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

Ou escopo as sobrescritas para uma instância específica usando uma classe wrapper:

.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>

Referência de Variáveis

Cores

VariávelPadrão (Claro)Descrição
--rdrp-color-primary#3b82f6Cor de ação primária (dia selecionado, botão de confirmação)
--rdrp-color-primary-hover#2563ebEstado hover primário
--rdrp-color-primary-light#dbeafeFundo do intervalo, destaque primário claro
--rdrp-color-primary-lighter#eff6ffFundo de predefinição ativa
--rdrp-color-primary-disabled#93c5fdBotão de confirmação desabilitado
--rdrp-color-bg#ffffffCor de fundo
--rdrp-color-bg-hover#f3f4f6Fundo hover para dias, botões
--rdrp-color-bg-subtle#f9fafbFundo sutil
--rdrp-color-text#374151Cor de texto padrão
--rdrp-color-text-strong#111827Texto forte (títulos, hora ativa)
--rdrp-color-text-muted#6b7280Texto suave (botões de navegação, etiquetas)
--rdrp-color-text-placeholder#6b7280Texto de placeholder
--rdrp-color-text-disabled#d1d5dbTexto de dia desabilitado
--rdrp-color-text-outside#9ca3afDias fora do mês
--rdrp-color-text-inverse#ffffffTexto em fundos primários
--rdrp-color-text-danger#ef4444Texto do botão de limpar/perigo
--rdrp-color-text-today#2563ebCor do indicador de hoje
--rdrp-color-border#d1d5dbBorda padrão
--rdrp-color-border-light#e5e7ebBorda clara (popup, seletores)
--rdrp-color-border-subtle#f3f4f6Borda sutil (rodapé, predefinições)
--rdrp-color-border-hover#93c5fdEstado hover da borda
--rdrp-color-highlight-dot#f59e0bCor do ponto de destaque
--rdrp-highlight-dot-size4pxDiâmetro do ponto de destaque
--rdrp-color-range-bg#dbeafeFundo do dia no intervalo
--rdrp-color-hover-range-bg#eff6ffFundo da pré-visualização do intervalo em hover
--rdrp-color-hover-target-bg#bfdbfeFundo do ponto final em hover
--rdrp-color-time-highlightrgba(59, 130, 246, 0.08)Barra de destaque do painel de tempo

Tipografia

VariávelPadrãoDescrição
--rdrp-font-familySystem font stackFamília da fonte
--rdrp-font-size-xs11pxExtra pequeno (cabeçalho do dia da semana em tamanho pequeno)
--rdrp-font-size-sm12pxPequeno (cabeçalhos do dia da semana, etiquetas)
--rdrp-font-size-base13pxBase (células de dia, botões)
--rdrp-font-size-md14pxMédio (gatilho, itens de tempo)
--rdrp-font-size-lg15pxGrande (título do cabeçalho)
--rdrp-font-weight-normal400Peso normal
--rdrp-font-weight-medium500Peso médio
--rdrp-font-weight-semibold600Peso semibold
--rdrp-font-weight-bold700Peso negrito (indicador de hoje)

Espaçamento

VariávelPadrãoDescrição
--rdrp-spacing-xs2pxEspaçamento extra pequeno
--rdrp-spacing-sm4pxEspaçamento pequeno
--rdrp-spacing-md8pxEspaçamento médio
--rdrp-spacing-lg12pxEspaçamento grande
--rdrp-spacing-xl16pxEspaçamento extra grande
--rdrp-spacing-2xl24pxEspaçamento 2x extra grande

Bordas

VariávelPadrãoDescrição
--rdrp-border-radius-sm4pxRaio pequeno
--rdrp-border-radius-md6pxRaio médio (botões, seletores)
--rdrp-border-radius-lg8pxRaio grande (dias, gatilho)
--rdrp-border-radius-xl12pxRaio extra grande (popup)
--rdrp-border-radius-full9999pxRaio completo (ponto de destaque)
--rdrp-border-width1pxLargura da borda

Sombras

VariávelPadrãoDescrição
--rdrp-shadow-popup0 10px 25px rgba(0,0,0,0.1)Sombra do popup
--rdrp-shadow-inline0 4px 12px rgba(0,0,0,0.06)Sombra do modo em linha
--rdrp-shadow-sm0 2px 6px rgba(0,0,0,0.04)Sombra pequena

Dimensionamento

VariávelPadrãoDescrição
--rdrp-cell-size36pxLargura/altura da célula do dia
--rdrp-nav-btn-size28pxTamanho do botão de navegação
--rdrp-weekday-height28pxAltura da linha do cabeçalho do dia da semana
--rdrp-grid-min-height216pxAltura mínima da grade do calendário
--rdrp-panel-min-width252pxLargura do painel de calendário único
--rdrp-dual-gap24pxEspaçamento entre calendários duplos
--rdrp-trigger-min-width200pxLargura mínima do botão de gatilho
--rdrp-trigger-padding-x14pxPreenchimento horizontal do gatilho
--rdrp-trigger-padding-y8pxPreenchimento vertical do gatilho
--rdrp-popup-padding16pxPreenchimento interno do popup
--rdrp-popup-gap6pxEspaçamento do conteúdo do popup
--rdrp-btn-padding-x14pxPreenchimento horizontal do botão do rodapé
--rdrp-btn-padding-y6pxPreenchimento vertical do botão do rodapé
--rdrp-preset-min-width140pxLargura mínima da barra lateral de predefinições

Seletor de Tempo

VariávelPadrãoDescrição
--rdrp-time-item-height32pxAltura do item de rolagem de tempo
--rdrp-time-panel-height176pxAltura total do painel de tempo
--rdrp-time-column-height160pxAltura da coluna rolável
--rdrp-time-panel-min-width120pxLargura mínima do painel de tempo
--rdrp-time-colon-width12pxLargura do separador de dois pontos

Z-index

VariávelPadrãoDescrição
--rdrp-z-popup50Z-index do popup
--rdrp-z-day-button20Z-index do dia focado

Transições

VariávelPadrãoDescrição
--rdrp-transition-fast0.1sTransições rápidas (hover do dia)
--rdrp-transition-normal0.15sTransições normais (gatilho, botões)

Exemplos ao Vivo

Cores Personalizadas (Tema Roxo)

Sobrescreva as variáveis de cor primária para criar um esquema de cores completamente diferente. Este exemplo usa um DatePicker com tons de violeta/roxo.

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>
);
}

Fonte Personalizada (Serif)

As fontes funcionam em cascata através do CSS, então envolver o seletor em uma div com uma font-family personalizada se aplica a todo o texto. Este exemplo usa um DateRangePicker com a fonte serifada 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>
);
}

Cantos Retos (Sem Border Radius)

Defina todas as variáveis de raio de borda para 0px para uma aparência completamente quadrada.

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>
);
}

Tamanho Personalizado via Variáveis CSS

Em vez de usar a propriedade size embutida, sobrescreva as variáveis de dimensionamento individuais para um controle preciso. Este exemplo usa um DateRangePicker com tamanho de célula e tamanhos de fonte 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>
);
}