Skip to main content
ninna-ui

Calendar

Date picker calendar for selecting dates.

import { Calendar } from "@ninna-ui/data-display"
pnpm add @ninna-ui/data-display

Requires @ninna-ui/core (auto-installed) + CSS setup.

View source

Usage

Import and use the Calendar component in your application.

import { Calendar } from "@ninna-ui/data-display";
export default function Example() {
return (
<Calendar className="w-[280px] rounded-lg border border-base-200" />
);
}

Basic

A basic calendar with default settings.

March 2026
SuMoTuWeThFrSa

Controlled

Track the selected date with React state.

March 2026
SuMoTuWeThFrSa

Selected: 3/9/2026

Min/Max Dates

Restrict the selectable date range.

March 2026
SuMoTuWeThFrSa

Monday Start

Start the week on Monday instead of Sunday.

March 2026
MoTuWeThFrSaSu

API Reference

Complete list of props for the Calendar component.

Calendar

PropTypeDefaultDescription
aria-labelstring'Calendar'Accessible label for the calendar widget
valueDate-Selected date (controlled)
defaultValueDate-Default selected date (uncontrolled)
onValueChange(date: Date) => void-Callback when selected date changes
minDateDate-Minimum selectable date
maxDateDate-Maximum selectable date
disabledDatesDate[]-Array of dates to disable
showOutsideDaysbooleantrueShow days from adjacent months
weekStartsOn0 | 10First day of week (0=Sunday, 1=Monday)
classNamestring-Additional CSS classes

Accessibility

  • Uses a grid role with proper row/cell structure
  • Supports aria-label prop (default: "Calendar") for labeling
  • Arrow keys navigate between days
  • Page Up/Down navigate between months
  • Disabled dates are announced and cannot be selected
  • Selected date uses aria-selected
  • Month/year navigation buttons have accessible labels