react-day-picker

A lightweight, fully customizable date picker component for React applications.

Library
npm
v10.0.1
6,844stars
MIT License

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum.How we score it →
62/100Good
Development Activity28
Maintenance48
Community72
Maturity60
Momentum40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation.How we score it →
87/100Excellent
Architecture85
Code Quality88
Innovation84
Learning Curve90

react-day-picker is a React component for building date pickers, calendars, and date inputs. It renders an accessible, headless-friendly calendar grid that supports single, multiple, and range selection modes, along with custom selection logic for more advanced cases. Styling is left entirely to the consumer, whether through plain CSS, CSS Modules, or a utility framework like Tailwind, which is why it underpins the calendar primitives shipped in popular component systems such as shadcn/ui.

The library handles the harder parts of date UI internally: locale-aware formatting and translation via date-fns, ISO 8601 and broadcast week calendars, time zone conversion through @date-fns/tz, and WCAG 2.1 AA keyboard/screen-reader accessibility. Companion @daypicker/* packages extend it with Persian, Hijri, Buddhist, Ethiopic, and Hebrew calendar systems, and every rendered element (day, caption, navigation button, dropdown) can be swapped out with a custom component.

What You Get

  • A DayPicker component supporting single, multiple, range, and fully custom selection modes
  • Built-in localization and formatting powered by date-fns, including 90+ locale files
  • Time zone-aware date handling via the companion @date-fns/tz package
  • Support for ISO 8601, broadcast, and (via add-on packages) Persian, Hijri, Buddhist, Ethiopic, and Hebrew calendar systems
  • Per-element component overrides (day cells, captions, navigation, dropdowns) for deep visual customization
  • WCAG 2.1 AA-compliant keyboard navigation and screen-reader labeling out of the box

Common Use Cases

  • Adding a date field or range picker to a booking, scheduling, or reservation form
  • Building a custom calendar UI inside a design system, such as the shadcn/ui calendar primitive
  • Filtering dashboards or reports by a selected date or date range
  • Collecting birthdates, deadlines, or event dates with locale-appropriate formatting
  • Building multi-calendar-system date inputs for internationalized products

Under The Hood

Architecture

DayPicker.tsx (packages/react-day-picker/src) is the root component; it composes a DateLib abstraction over date-fns, a useCalendar/useSelection/useFocus hook trio for state, and a getComponents/UI.ts registry so every rendered node (Day, Month, Nav, Dropdown, etc.) is independently overridable, with noonDateLib.ts normalizing dates to noon to avoid DST edge cases.

Tech Stack

TypeScript throughout with strict mode and noUnusedLocals enabled (tsconfig-base.json), date-fns ^4.1.0 and @date-fns/tz ^1.4.1 as the only runtime dependencies, react as a peer dependency (>=16.8.0), built to dual CJS/ESM output via tsc, managed as a pnpm workspace with Changesets for release versioning.

Code Quality

64 test files are colocated under src/ (e.g. DayPicker.test.tsx, useDayPicker.test.tsx, useAnimation.test.tsx, locale.test.ts) and run via Jest with @testing-library/jest-dom custom matchers, plus 111 standalone runnable examples under examples/ that double as integration tests and snapshots; naming is consistent (getX/useX/createX helper conventions) and modules stay small and single-purpose.

API Design

The public API centers on a single DayPicker component with a discriminated mode prop (single/multiple/range/custom) for type-safe selection handling, sensible defaults that let a minimal example render in about six lines, and an extensive docs site (daypicker.dev, sourced from apps/website/docs) covering customization, styling, localization, time zones, and accessibility guides.

Used by 88 apps in this directory

TypeScript
99%
Other

Activepieces

Automation · AI Assistants

23,887

Open-source AI automation platform that converts 280+ workflow integrations into MCP servers for LLMs, with no-code builders and TypeScript extensibility.

View details
92
Repo Health
85
Technical
65
Dependency
Built with
TypeScript99%
Updated today
TypeScript
88%
Other

AFFiNE

Productivity · Project Management · Note Taking

71,668

Write, draw, and plan in one infinite canvas — the open-source alternative to Notion and Miro that keeps your data yours.

View details
91
Repo Health
87
Technical
68
Dependency
Built with
TypeScript88%
Updated today
TypeScript
84%
MIT

Amical

Note Taking · AI Assistants

1,495

Local-first AI dictation that understands your active app — private, offline, and built for speed.

View details
79
Repo Health
82
Technical
67
Dependency
Built with
TypeScript84%
Updated 3 weeks ago
Python
68%
Other

AutoGPT

Automation · Productivity · AI Assistants

186,687

Build, deploy, and run autonomous AI agents that automate complex multi-step workflows using a visual block-based graph editor.

View details
93
Repo Health
78
Technical
67
Dependency
Built with
Python68%
TypeScript31%
Updated today
TypeScript
100%
AGPL 3.0

BaseBuddy

CMS

7

A self-hosted content editor for existing Postgres or Supabase schemas — maps the tables you already have into a WordPress-like TipTap editor instead of requiring you to reshape your database around a CMS.

View details
46
Repo Health
64
Technical
76
Dependency
Built with
TypeScript100%
Updated 1 weeks ago
Go
52%
MIT

Bytebase

Devops

14,396

An open-source database CI/CD and DevSecOps platform — schema migration review, GitOps-driven changes, data masking, and access control across MySQL, PostgreSQL, Oracle, Snowflake, MongoDB, and more.

View details
92
Repo Health
73
Technical
69
Dependency
Built with
Go52%
TypeScript39%
Updated today
Java
73%
Other

ByteChef

Automation · AI Agents

990

Unified open-source platform for AI agent orchestration and workflow automation with 180+ connectors, MCP support, and durable execution.

View details
81
Repo Health
82
Technical
73
Dependency
Built with
Java73%
TypeScript26%
Updated 2 days ago
TypeScript
96%
Other

Cal.diy

Scheduling

47,796

The 100% MIT-licensed, community-driven scheduling platform — self-host your own booking infrastructure with no enterprise strings attached.

View details
93
Repo Health
86
Technical
66
Dependency
Built with
TypeScript96%
Updated 1 weeks ago
TypeScript
99%
AGPL 3.0

Cherry Studio

AI Assistants

50,753

All-in-one AI desktop client with 300+ assistants and multi-model support

View details
88
Repo Health
84
Technical
71
Dependency
Built with
TypeScript99%
Updated today

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers

Search