/tailwindcss-react-datepicker

Modern date range picker component for React using Tailwind 3 and dayjs

Primary LanguageTypeScriptMIT LicenseMIT

Tailwindcss React Datepicker

npm version npm downloads

This is extended version of react-tailwindcss-datepicker

Added features:

  • isStaticPosition - disable position absolute for Calendar (can be usefulul when you want to build in your calendar in your own popup);
  • renderHeader - render custom component on the top of a calender popover;
  • renderFooter - render custom component on the bottom of a calender popover;
  • disableAutoHide - disable autohide for calendar when user select date or date range. can be usefule when you want to control popup closin in renderHeader or renderFooter function. It will not work with isStaticPosition.

Example:

import React, { useState } from "react";
import Datepicker from "tailwindcss-react-datepicker";

const App = () => {
    const [value, setValue] = useState({
        startDate: new Date(),
        endDate: new Date().setMonth(11)
    });

    const handleValueChange = newValue => {
        console.log("newValue:", newValue);
        setValue(newValue);
    };

    return (
        <div>
            <Datepicker
                renderFooter={context => <button onClick={context.hideDatepicker()}>Ok</button>}
                value={value}
                onChange={handleValueChange}
            />
        </div>
    );
};

export default App;

if you dont need this extra features feel free to use original datepicker from onesite

Contents

Features

  • ✅ Theming options
  • ✅ Dark mode
  • ✅ Single Date
  • ✅ Single date use Range
  • ✅ Shortcuts
  • ✅ TypeScript support
  • ✅ Localization(i18n)
  • ✅ Date formatting
  • ✅ Disable specific dates
  • ✅ Minimum Date and Maximum Date
  • ✅ Custom shortcuts

Documentation

Go to full documentation

Installation

⚠️ React Tailwindcss Datepicker uses Tailwind CSS 3 (with the @tailwindcss/forms plugin) & Dayjs under the hood to work.

Install via npm

npm install tailwindcss-react-datepicker

Install via yarn

yarn add tailwindcss-react-datepicker

Make sure you have installed the peer dependencies as well with the below versions.

"dayjs": "^1.11.6",
"react": "^17.0.2 || ^18.2.0"

Simple Usage

Tailwindcss Configuration

Add the datepicker to your tailwind configuration using this code

// in your tailwind.config.js
module.exports = {
    // ...
    content: [
        "./src/**/*.{js,jsx,ts,tsx}",
        "./node_modules/tailwindcss-react-datepicker/dist/index.esm.js"
    ]
    // ...
};

Then use tailwindcss-react-datepicker in your app:

import React, { useState } from "react";
import Datepicker from "tailwindcss-react-datepicker";

const App = () => {
    const [value, setValue] = useState({
        startDate: new Date(),
        endDate: new Date().setMonth(11)
    });

    const handleValueChange = newValue => {
        console.log("newValue:", newValue);
        setValue(newValue);
    };

    return (
        <div>
            <Datepicker value={value} onChange={handleValueChange} />
        </div>
    );
};

export default App;

Theming options

Light Mode

Light Mode

Dark Mode

Dark Mode

Supported themes

Theme supported

Teal themes example

Theme supported

You can find the demo at here

Info

👉 To discover the other possibilities offered by this library, you can consult the full documentation.

PlayGround

Clone the master branch and run commands:

# Using npm
npm install && npm dev

# Using yarn
yarn install && yarn dev

Open a browser and navigate to http://localhost:8888

Contributing

See CONTRIBUTING.md

Thanks to

Like it?

License

MIT Licensed.