Typografia

Pakiet styled domyślnie używa systemowego stosu czcionek:

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

Renderuje się to za pomocą natywnej czcionki systemu operacyjnego na każdej platformie (San Francisco na macOS, Segoe UI na Windows, Roboto na Android). Czcionki systemowe zapewniają dobre wsparcie dla wielu języków, ponieważ system operacyjny automatycznie obsługuje zastępstwa dla CJK, arabskiego i innych skryptów.

Aby nadpisać, ustaw --rdrp-font-family na dowolnym elemencie nadrzędnym — kaskadowo przeniesie się to do pickera.

Zmienna CSS w Stylu Inline

Nadpisz czcionkę za pomocą atrybutu style na elemencie otaczającym:

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

Rodzina Czcionek

Przełączaj się między rodzinami czcionek, ustawiając --rdrp-font-family na elemencie otaczającym:

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

Używanie Czcionek Internetowych (Noto Sans)

Dla spójnego renderowania na różnych platformach lub w projektach i18n, załaduj czcionkę internetową, taką jak Noto Sans, i nadpisz zmienną:

import { DatePicker } from "react-date-range-picker-styled";
import "react-date-range-picker-styled/rdrp-styles.css";
// 1. Załaduj Noto Sans w swoim HTML lub CSS:
// <link href="https://fonts.googleapis.com/css2?family=Noto+Sans:wght@400;500;600;700&display=swap" rel="stylesheet">
// 2. Nadpisz zmienną czcionki:
<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 Czcionek Internetowych

Porównaj różne czcionki internetowe, aby zobaczyć, jak radykalnie typografia zmienia wygląd pickera. Wszystkie poniższe czcionki obsługują renderowanie wielojęzyczne (łacińskie, CJK, koreańskie).

⚠️ Tylko demo

Poniższe czcionki są ładowane z Google Fonts CDN w celach demonstracyjnych. Ta biblioteka nie zawiera żadnych czcionek internetowych — musisz je załadować we własnym projekcie.

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

Rozmiar i Waga Czcionki

Dostosuj gęstość typografii, nadpisując zmienne rozmiaru i wagi:

ZmiennaDomyślnaOpis
--rdrp-font-size-xs11pxNajmniejszy tekst
--rdrp-font-size-sm12pxEtykiety dni tygodnia
--rdrp-font-size-base13pxKomórki dni, przyciski
--rdrp-font-size-md14pxWyzwalacz, elementy czasu
--rdrp-font-size-lg15pxTytuł miesiąca
--rdrp-font-weight-normal400Podstawowa waga
--rdrp-font-weight-medium500Średnie wyróżnienie
--rdrp-font-weight-semibold600Wybrane dni, tytuły
--rdrp-font-weight-bold700Wskaźnik dzisiejszego dnia
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