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.

KararlıKaynak kod
Ekim 2026
PztSalÇarPerCumCmtPaz
Tarih seçilmedi

Import

import { Calendar, type DateRange } from "@meridui/react";

Örnekler

Aralık

mode="range": ilk seçim start'ı, ikinci seçim end'i belirler (ikinci gün daha erkense yer değiştirirler). Hover aralığı önizler.

Ekim 2026
PztSalÇarPerCumCmtPaz
… – …

En erken, en geç ve devre dışı günler

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.

Ekim 2026
PztSalÇarPerCumCmtPaz

Locale ve yön

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.

October 2026
SunMonTueWedThuFriSat
أكتوبر ٢٠٢٦
السبتالأحدالاثنينالثلاثاءالأربعاءالخميسالجمعة

API referansı

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.

PropTipVarsayılanAçı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.

Stil verme

SınıfEleman
.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).

Erişilebilirlik

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
ArrowLeftArrowRightÖnceki / sonraki gün (RTL'de ters). Ay sınırını geçer.
ArrowUpArrowDownÖnceki / sonraki haftanın aynı günü.
HomeEndHaftanın ilk / son günü.
PageUpPageDownÖnceki / sonraki ayın aynı günü.
ShiftPageUpÖnceki yılın aynı günü (PageDown: sonraki yıl).
EnterFocus'taki günü seçer (Space de çalışır).

İlgili sayfalar

  • DatePicker — bu takvimi popover içinde açan tarih alanı.