Data
Calendar
A month grid on react-day-picker: pine selections, soft mint ranges, bordered today. Single, multiple, or range.
July 2026
| Su | Mo | Tu | We | Th | Fr | Sa |
|---|---|---|---|---|---|---|
Penciled in for July 20. The ferns approve.
Show codeHide code
"use client";
import { useState } from "react";
import { Calendar } from "@/registry/lilt/ui/calendar";
export default function CalendarDemo() {
const [date, setDate] = useState<Date | undefined>(new Date());
return (
<div className="flex flex-col items-center gap-3">
<div className="rounded-[var(--radius-card)] border border-[var(--lilt-border)] bg-[var(--lilt-surface)]">
<Calendar mode="single" onSelect={setDate} selected={date} />
</div>
<p className="text-sm text-[var(--lilt-text-muted)]">
{date
? `Penciled in for ${date.toLocaleDateString("en-US", {
day: "numeric",
month: "long",
})}. The ferns approve.`
: "Pick a day — the seedlings can wait."}
</p>
</div>
);
}Installation
npx shadcn@latest add @lilt/calendarAccessibility
- A real date grid: arrow keys move by day, PageUp/PageDown by month — roving focus comes from react-day-picker.
- Today is marked with a border, not color alone; selected days announce via aria-selected and the nav buttons carry labels.