Calendar
Gün ya da aralık seçmek için bir ay grid'i. Ay, gün ve hafta günü adları verdiğin locale için Intl'den gelir; hafta da o locale'in ilk gününden başlar. tr-TR için hafta pazartesi başlar.
Pzt Sal Çar Per Cum Cmt Paz 28 29 30 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 1 2 3 4 5 6 7 8
Tarih seçilmedi const [ date , setDate ] = useState < Date | null >( null );
< Calendar
locale = "tr-TR"
previousMonthLabel = "Önceki ay"
nextMonthLabel = "Sonraki ay"
value ={ date }
onValueChange ={ setDate }
/>
İpucu
locale varsayılan olarak "en-US"dir; ay ve gün adları, günlerin ekran okuyucu etiketleri ve haftanın ilk günü ondan gelir. Türkçe arayüzde locale="tr-TR" ver. Ay değiştirme butonlarının adları varsayılan olarak İngilizcedir (“Previous month”, “Next month”); previousMonthLabel ve nextMonthLabel ile Türkçe ver.
Kopyala
import { Calendar, type DateRange } from "@meridui/react" ;
mode="range": ilk seçim start'ı, ikinci seçim end'i belirler (ikinci gün daha erkense yer değiştirirler). Hover aralığı önizler.
Pzt Sal Çar Per Cum Cmt Paz 28 29 30 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 1 2 3 4 5 6 7 8
… – … const [ range , setRange ] = useState < DateRange >({ start: null , end: null });
< Calendar locale = "tr-TR" mode = "range" value ={ range } onValueChange ={ setRange } />
min/max dışındaki ya da isDateDisabled'ın eşleştirdiği günler aria-disabled alır ve seçilemez; ama grid doğal okunsun diye klavyeyle erişilebilir kalır.
Pzt Sal Çar Per Cum Cmt Paz 28 29 30 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 1 2 3 4 5 6 7 8
const isWeekend = ( d : Date ) => d. getDay () === 0 || d. getDay () === 6 ;
< Calendar locale = "tr-TR" min ={ today } max ={ inTwoMonths } isDateDisabled ={ isWeekend } />
locale grid'in gösterdiği ya da okuttuğu her adı yerelleştirir. weekStartsOn ilk kolonu ezer (0 = pazar). dir="rtl" altında grid ve ok tuşları okuma yönünü izler.
Sun Mon Tue Wed Thu Fri Sat 27 28 29 30 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 1 2 3 4 5 6 7
السبت الأحد الاثنين الثلاثاء الأربعاء الخميس الجمعة ٢٦ ٢٧ ٢٨ ٢٩ ٣٠ ١ ٢ ٣ ٤ ٥ ٦ ٧ ٨ ٩ ١٠ ١١ ١٢ ١٣ ١٤ ١٥ ١٦ ١٧ ١٨ ١٩ ٢٠ ٢١ ٢٢ ٢٣ ٢٤ ٢٥ ٢٦ ٢٧ ٢٨ ٢٩ ٣٠ ٣١ ١ ٢ ٣ ٤ ٥ ٦
< Calendar locale = "en-US" />
< Calendar locale = "ar-EG" dir = "rtl" />
Bir div render'lar; diğer div attribute'ları ve ref ona gider. Tarihler yerel saatte takvim gününe göre karşılaştırılır.
Prop Tip Varsayılan Açıklama mode"single" | "range""single"Tek gün ya da başlangıç ve bitiş günü seçtirir. valueDate | null | DateRange– Controlled seçim: Date (tekli) ya da { start, end } (aralık). defaultValueDate | null | DateRange– Uncontrolled kullanımda başlangıç seçimi. onValueChange(value) => void– Her seçimden sonra çağrılır. Aralıkta önce { start, end: null }, sonra iki gün. month / defaultMonth / onMonthChangeDate / Date / (month: Date) => void– Gösterilen ay, controlled ya da başlangıç. Varsayılanı seçili gün ya da bugün. minDate– Seçilebilen en erken gün. maxDate– Seçilebilen en geç gün. isDateDisabled(date: Date) => boolean– Tek tek günleri kullanılamaz işaretler. localestring"en-US"Adlar ve haftanın ilk günü için BCP 47 locale'i. Türkçe arayüzde "tr-TR". weekStartsOn0 – 6– İlk kolon (0 = pazar). Varsayılanı locale'in hafta başı: tr-TR → pazartesi, en-US → pazar. previousMonthLabelstring"Previous month"Önceki ay butonunun erişilebilir adı. Türkçe arayüzde "Önceki ay". nextMonthLabelstring"Next month"Sonraki ay butonunun erişilebilir adı. Türkçe arayüzde "Sonraki ay". autoFocusbooleanfalseMount'ta seçili güne (ya da bugüne) focus verir.
Sınıf Eleman .mrd-calendarKök (data-mode) .mrd-calendar__header, .mrd-calendar__caption, .mrd-calendar__navAy başlığı satırı ve butonları .mrd-calendar__grid, .mrd-calendar__weekdayrole="grid" tablo ve kolon başlıkları.mrd-calendar__cellGrid hücresi (aria-selected, data-in-range, data-range-start, data-range-end) .mrd-calendar__dayGün butonu (data-selected, data-today, data-outside, data-disabled)
Hücre boyutu --mrd-calendar-cell (36px; dokunmatik ekranlarda 44px).
WAI-ARIA Date Picker Dialog örneğindeki tarih grid'ine uyar. Grid ay başlığıyla etiketlenir; başlık polite bir live region'dır, yani ay değişimi okunur. Her gün butonunun adı locale'deki tam tarihtir (“30 Eylül 2026 Çarşamba”); bugün aria-current="date" taşır. Grid tek bir tab durağıdır.
Tuş Ne yapar ArrowLeft ArrowRight Önceki / sonraki gün (RTL'de ters). Ay sınırını geçer. ArrowUp ArrowDown Önceki / sonraki haftanın aynı günü. Home End Haftanın ilk / son günü. PageUp PageDown Önceki / sonraki ayın aynı günü. Shift PageUp Önceki yılın aynı günü (PageDown: sonraki yıl). Enter Focus'taki günü seçer (Space de çalışır).
DatePicker — bu takvimi popover içinde açan tarih alanı.