Tipografia

O pacote styled utiliza uma pilha de fontes do sistema por padrão:

--rdrp-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;

Isso renderiza com a fonte nativa do sistema operacional em cada plataforma (San Francisco no macOS, Segoe UI no Windows, Roboto no Android). Fontes do sistema oferecem bom suporte a múltiplos idiomas, já que o sistema operacional lida automaticamente com fallbacks para CJK, árabe e outros scripts.

Para substituir, defina --rdrp-font-family em qualquer elemento ancestral — o estilo será aplicado em cascata ao seletor.

Estilo Inline com Variável CSS

Substitua a fonte através do atributo style em um elemento invólucro (wrapper):

import { useState } from "react";
import { DatePicker } from "react-date-range-picker-styled";
import "react-date-range-picker-styled/rdrp-styles.css";
function CSSCustomFont() {
const [value, setValue] = useState<Date | null>(null);
return (
<div
style={{
["--rdrp-font-family" as string]: '"Georgia", "Times New Roman", serif',
}}
>
<DatePicker value={value} onChange={setValue} />
</div>
);
}

Família de Fontes

Alterne entre famílias de fontes definindo --rdrp-font-family em um invólucro:

import { useState } from "react";
import { DatePicker } from "react-date-range-picker-styled";
import "react-date-range-picker-styled/rdrp-styles.css";
const fonts = {
System: {},
Serif: { "--rdrp-font-family": '"Georgia", "Times New Roman", serif' },
Mono: { "--rdrp-font-family": '"Menlo", "Courier New", monospace' },
};
type FontName = keyof typeof fonts;
function CompoundCustomFont() {
const [value, setValue] = useState<Date | null>(null);
const [font, setFont] = useState<FontName>("System");
return (
<div>
<div style={{ display: "flex", gap: 6, marginBottom: 12 }}>
{(Object.keys(fonts) as FontName[]).map((name) => (
<button
key={name}
onClick={() => setFont(name)}
style={{
padding: "6px 14px",
border: `1px solid ${font === name ? "#3b82f6" : "#d1d5db"}`,
borderRadius: 6,
background: font === name ? "#eff6ff" : "#fff",
cursor: "pointer",
fontSize: 13,
}}
>
{name}
</button>
))}
</div>
<div style={fonts[font] as React.CSSProperties}>
<DatePicker value={value} onChange={setValue} inline />
</div>
</div>
);
}
March 2026
Su
Mo
Tu
We
Th
Fr
Sa

Usando Fontes da Web (Noto Sans)

Para uma renderização consistente entre plataformas ou em projetos de i18n, carregue uma fonte da web como a Noto Sans e substitua a variável:

import { DatePicker } from "react-date-range-picker-styled";
import "react-date-range-picker-styled/rdrp-styles.css";
// 1. Carregue a Noto Sans no seu HTML ou CSS:
// <link href="https://fonts.googleapis.com/css2?family=Noto+Sans:wght@400;500;600;700&display=swap" rel="stylesheet">
// 2. Substitua a variável da fonte:
<div style={{ "--rdrp-font-family": '"Noto Sans", sans-serif' } as React.CSSProperties}>
<DatePicker value={value} onChange={setValue} inline />
</div>;
import { useState, useEffect } from "react";
import { DatePicker } from "react-date-range-picker-styled";
import "react-date-range-picker-styled/rdrp-styles.css";
function CompoundNotoSans() {
const [value, setValue] = useState<Date | null>(null);
useEffect(() => {
// Load Noto Sans from Google Fonts (for demo purposes only)
if (!document.getElementById("noto-sans-font")) {
const link = document.createElement("link");
link.id = "noto-sans-font";
link.rel = "stylesheet";
link.href =
"https://fonts.googleapis.com/css2?family=Noto+Sans:wght@400;500;600;700&display=swap";
document.head.appendChild(link);
}
}, []);
return (
<div style={{ "--rdrp-font-family": '"Noto Sans", sans-serif' } as React.CSSProperties}>
<DatePicker value={value} onChange={setValue} inline />
</div>
);
}
March 2026
Su
Mo
Tu
We
Th
Fr
Sa

Galeria de Fontes da Web

Compare diferentes fontes da web para ver como a tipografia altera drasticamente a aparência do seletor. Todas as fontes abaixo suportam renderização em múltiplos idiomas (latim, CJK, coreano).

⚠️ Apenas para demonstração

As fontes abaixo são carregadas da CDN do Google Fonts para fins de demonstração. Esta biblioteca não inclui nenhuma fonte da web — você precisa carregá-las em seu próprio projeto.

import { useState, useEffect } from "react";
import { DatePicker } from "react-date-range-picker-styled";
import "react-date-range-picker-styled/rdrp-styles.css";
const WEB_FONTS = [
{ name: "Noto Sans", family: '"Noto Sans", sans-serif' },
{ name: "Noto Serif", family: '"Noto Serif", serif' },
{ name: "IBM Plex Sans", family: '"IBM Plex Sans", sans-serif' },
{ name: "Roboto Slab", family: '"Roboto Slab", serif' },
];
const FONT_URL =
"https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600;700&family=Noto+Sans:wght@400;500;600;700&family=Noto+Serif:wght@400;500;600;700&family=Roboto+Slab:wght@400;500;600;700&display=swap";
function CompoundWebFonts() {
const [value, setValue] = useState<Date | null>(null);
const [active, setActive] = useState(0);
useEffect(() => {
if (!document.getElementById("web-fonts-link")) {
const link = document.createElement("link");
link.id = "web-fonts-link";
link.rel = "stylesheet";
link.href = FONT_URL;
document.head.appendChild(link);
}
}, []);
return (
<div>
<div style={{ display: "flex", gap: 6, marginBottom: 12, flexWrap: "wrap" }}>
{WEB_FONTS.map((f, i) => (
<button
key={f.name}
onClick={() => setActive(i)}
style={{
padding: "6px 14px",
border: `1px solid ${active === i ? "#3b82f6" : "#d1d5db"}`,
borderRadius: 6,
background: active === i ? "#eff6ff" : "#fff",
color: active === i ? "#3b82f6" : "#374151",
cursor: "pointer",
fontSize: 13,
fontFamily: f.family,
}}
>
{f.name}
</button>
))}
</div>
<div style={{ "--rdrp-font-family": WEB_FONTS[active].family } as React.CSSProperties}>
<DatePicker value={value} onChange={setValue} inline />
</div>
</div>
);
}
March 2026
Su
Mo
Tu
We
Th
Fr
Sa

Tamanho e Peso da Fonte

Ajuste a densidade da tipografia substituindo as variáveis de tamanho e peso:

VariávelPadrãoDescrição
--rdrp-font-size-xs11pxTexto menor
--rdrp-font-size-sm12pxRótulos dos dias da semana
--rdrp-font-size-base13pxCélulas de dia, botões
--rdrp-font-size-md14pxGatilho, itens de tempo
--rdrp-font-size-lg15pxTítulo do mês
--rdrp-font-weight-normal400Peso base
--rdrp-font-weight-medium500Ênfase média
--rdrp-font-weight-semibold600Dias selecionados, títulos
--rdrp-font-weight-bold700Indicador de hoje
import { useState } from "react";
import { DatePicker } from "react-date-range-picker-styled";
import "react-date-range-picker-styled/rdrp-styles.css";
const presets = {
Compact: {
"--rdrp-font-size-xs": "9px",
"--rdrp-font-size-sm": "10px",
"--rdrp-font-size-base": "11px",
"--rdrp-font-size-md": "12px",
"--rdrp-font-size-lg": "13px",
"--rdrp-font-weight-semibold": "500",
"--rdrp-font-weight-bold": "600",
},
Default: {},
Large: {
"--rdrp-font-size-xs": "13px",
"--rdrp-font-size-sm": "14px",
"--rdrp-font-size-base": "15px",
"--rdrp-font-size-md": "16px",
"--rdrp-font-size-lg": "18px",
"--rdrp-font-weight-semibold": "700",
"--rdrp-font-weight-bold": "800",
},
};
type PresetName = keyof typeof presets;
function CompoundCustomFontPopup() {
const [value, setValue] = useState<Date | null>(null);
const [preset, setPreset] = useState<PresetName>("Default");
return (
<div>
<div style={{ display: "flex", gap: 6, marginBottom: 12 }}>
{(Object.keys(presets) as PresetName[]).map((name) => (
<button
key={name}
onClick={() => setPreset(name)}
style={{
padding: "6px 14px",
border: `1px solid ${preset === name ? "#3b82f6" : "#d1d5db"}`,
borderRadius: 6,
background: preset === name ? "#eff6ff" : "#fff",
cursor: "pointer",
fontSize: 13,
}}
>
{name}
</button>
))}
</div>
<div style={presets[preset] as React.CSSProperties}>
<DatePicker value={value} onChange={setValue} inline />
</div>
</div>
);
}
March 2026
Su
Mo
Tu
We
Th
Fr
Sa