CSS Değişkenleri

Styled paketi, tüm görsel değerler için CSS özel özelliklerini (değişkenleri) kullanır. Görünümü bileşen koduna dokunmadan özelleştirmek için bunları .rdrp-root veya herhangi bir üst öğe üzerinde geçersiz kılın.

Nasıl Geçersiz Kılınır

Tüm değişkenler .rdrp-root altında kapsanmıştır. Bunları kendi CSS’inizde geçersiz kılın:

/* Özel temanız */
.rdrp-root {
--rdrp-color-primary: #8b5cf6;
--rdrp-color-primary-hover: #7c3aed;
--rdrp-border-radius-lg: 12px;
}

Veya bir sarmalayıcı sınıfı kullanarak geçersiz kılmaları belirli bir örnekle sınırlayın:

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

Değişken Referansı

Renkler

DeğişkenVarsayılan (Açık)Açıklama
--rdrp-color-primary#3b82f6Ana eylem rengi (seçili gün, onay düğmesi)
--rdrp-color-primary-hover#2563ebAna üzerine gelme durumu
--rdrp-color-primary-light#dbeafeAralık arka planı, açık ana vurgu
--rdrp-color-primary-lighter#eff6ffAktif ön ayar arka planı
--rdrp-color-primary-disabled#93c5fdDevre dışı bırakılmış onay düğmesi
--rdrp-color-bg#ffffffArka plan rengi
--rdrp-color-bg-hover#f3f4f6Günler, düğmeler için üzerine gelme arka planı
--rdrp-color-bg-subtle#f9fafbİnce arka plan
--rdrp-color-text#374151Varsayılan metin rengi
--rdrp-color-text-strong#111827Güçlü metin (başlıklar, aktif zaman)
--rdrp-color-text-muted#6b7280Sessiz metin (gezinme düğmeleri, etiketler)
--rdrp-color-text-placeholder#6b7280Yer tutucu metni
--rdrp-color-text-disabled#d1d5dbDevre dışı bırakılmış gün metni
--rdrp-color-text-outside#9ca3afAy dışındaki günler
--rdrp-color-text-inverse#ffffffAna arka planlar üzerindeki metin
--rdrp-color-text-danger#ef4444Temizle/tehlike düğmesi metni
--rdrp-color-text-today#2563ebBugün göstergesi rengi
--rdrp-color-border#d1d5dbVarsayılan kenarlık
--rdrp-color-border-light#e5e7ebAçık kenarlık (açılır pencere, seçimler)
--rdrp-color-border-subtle#f3f4f6İnce kenarlık (altbilgi, ön ayarlar)
--rdrp-color-border-hover#93c5fdKenarlık üzerine gelme durumu
--rdrp-color-highlight-dot#f59e0bVurgu noktası rengi
--rdrp-highlight-dot-size4pxVurgu noktası çapı
--rdrp-color-range-bg#dbeafeAralık içi gün arka planı
--rdrp-color-hover-range-bg#eff6ffÜzerine gelindiğinde aralık önizleme arka planı
--rdrp-color-hover-target-bg#bfdbfeÜzerine gelindiğinde bitiş noktası arka planı
--rdrp-color-time-highlightrgba(59, 130, 246, 0.08)Zaman paneli vurgu çubuğu

Tipografi

DeğişkenVarsayılanAçıklama
--rdrp-font-familySistem yazı tipi yığınıYazı tipi ailesi
--rdrp-font-size-xs11pxEkstra küçük (küçük boyutta hafta içi başlığı)
--rdrp-font-size-sm12pxKüçük (hafta içi başlıkları, etiketler)
--rdrp-font-size-base13pxTemel (gün hücreleri, düğmeler)
--rdrp-font-size-md14pxOrta (tetikleyici, zaman öğeleri)
--rdrp-font-size-lg15pxBüyük (başlık)
--rdrp-font-weight-normal400Normal kalınlık
--rdrp-font-weight-medium500Orta kalınlık
--rdrp-font-weight-semibold600Yarı kalın kalınlık
--rdrp-font-weight-bold700Kalın (bugün göstergesi)

Boşluklandırma

DeğişkenVarsayılanAçıklama
--rdrp-spacing-xs2pxEkstra küçük boşluk
--rdrp-spacing-sm4pxKüçük boşluk
--rdrp-spacing-md8pxOrta boşluk
--rdrp-spacing-lg12pxBüyük boşluk
--rdrp-spacing-xl16pxEkstra büyük boşluk
--rdrp-spacing-2xl24px2x ekstra büyük boşluk

Kenarlıklar

DeğişkenVarsayılanAçıklama
--rdrp-border-radius-sm4pxKüçük yarıçap
--rdrp-border-radius-md6pxOrta yarıçap (düğmeler, seçimler)
--rdrp-border-radius-lg8pxBüyük yarıçap (günler, tetikleyici)
--rdrp-border-radius-xl12pxEkstra büyük yarıçap (açılır pencere)
--rdrp-border-radius-full9999pxTam yarıçap (vurgu noktası)
--rdrp-border-width1pxKenarlık genişliği

Gölgeler

DeğişkenVarsayılanAçıklama
--rdrp-shadow-popup0 10px 25px rgba(0,0,0,0.1)Açılır pencere gölgesi
--rdrp-shadow-inline0 4px 12px rgba(0,0,0,0.06)Satır içi mod gölgesi
--rdrp-shadow-sm0 2px 6px rgba(0,0,0,0.04)Küçük gölge

Boyutlandırma

DeğişkenVarsayılanAçıklama
--rdrp-cell-size36pxGün hücresi genişliği/yüksekliği
--rdrp-nav-btn-size28pxGezinme düğmesi boyutu
--rdrp-weekday-height28pxHafta içi başlık satırı yüksekliği
--rdrp-grid-min-height216pxTakvim ızgarası minimum yüksekliği
--rdrp-panel-min-width252pxTek takvim paneli genişliği
--rdrp-dual-gap24pxİkili takvimler arasındaki boşluk
--rdrp-trigger-min-width200pxTetikleyici düğme minimum genişliği
--rdrp-trigger-padding-x14pxTetikleyici yatay dolgu
--rdrp-trigger-padding-y8pxTetikleyici dikey dolgu
--rdrp-popup-padding16pxAçılır pencere iç dolgusu
--rdrp-popup-gap6pxAçılır pencere içerik boşluğu
--rdrp-btn-padding-x14pxAltbilgi düğmesi yatay dolgu
--rdrp-btn-padding-y6pxAltbilgi düğmesi dikey dolgu
--rdrp-preset-min-width140pxÖn ayar kenar çubuğu minimum genişliği

Zaman Seçici

DeğişkenVarsayılanAçıklama
--rdrp-time-item-height32pxZaman kaydırma öğesi yüksekliği
--rdrp-time-panel-height176pxZaman paneli toplam yüksekliği
--rdrp-time-column-height160pxKaydırılabilir sütun yüksekliği
--rdrp-time-panel-min-width120pxZaman paneli minimum genişliği
--rdrp-time-colon-width12pxİki nokta üst üste ayırıcı genişliği

Z-endeksi

DeğişkenVarsayılanAçıklama
--rdrp-z-popup50Açılır pencere z-endeksi
--rdrp-z-day-button20Odaklanmış gün z-endeksi

Geçişler

DeğişkenVarsayılanAçıklama
--rdrp-transition-fast0.1sHızlı geçişler (gün üzerine gelme)
--rdrp-transition-normal0.15sNormal geçişler (tetikleyici, düğmeler)

Canlı Örnekler

Özel Renkler (Mor Tema)

Tamamen farklı bir renk şeması oluşturmak için ana renk değişkenlerini geçersiz kılın. Bu örnek, menekşe/mor tonlarında bir DatePicker kullanır.

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

Özel Yazı Tipi (Serif)

Yazı tipleri CSS üzerinden basamaklanır, bu nedenle seçiciyi özel bir font-family içeren bir div içine sarmak tüm metne uygulanır. Bu örnek, Georgia serif içeren bir DateRangePicker kullanır.

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

Keskin Köşeler (Kenarlık Yarıçapı Yok)

Tamamen kare bir görünüm için tüm kenarlık yarıçapı değişkenlerini 0px olarak ayarlayın.

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

CSS Değişkenleri ile Özel Boyut

Yerleşik size prop’unu kullanmak yerine, hassas kontrol için bireysel boyutlandırma değişkenlerini geçersiz kılın. Bu örnek, özel hücre boyutu ve yazı tipi boyutlarına sahip bir DateRangePicker kullanır.

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