React daisyui
daisyUI components built with React πΌ
**daisyUI components built with React, Typescript and TailwindCSS** The project is written primarily in TypeScript, distributed under the MIT License license, first published in 2021. It has gained significant community traction with 1,086 stars and 121 forks on GitHub. Key topics include: component-library, components, css, css-components, css-framework.
daisyUI components built with React, Typescript and TailwindCSS
</div>
react-daisyui πΌ
π Check out our <a href="https://react.daisyui.com/">Storybook</a> | π² Try it with <a href="https://codesandbox.io/s/react-daisyui-example-840os3?file=/src/App.tsx">CodeSandbox</a>
π Need help or have a suggestion? Join our discord!
πΏ Install
Make sure you've installed <a href="https://tailwindcss.com/docs/installation">TailwindCSS</a> and <a href="https://daisyui.com/docs/install/">daisyUI</a>.
Install the package with npm or yarn:
bashnpm install react-daisyui or yarn add react-daisyui
To prevent TailwindCSS from purging your styles, add the following line to your tailwind.config.js:
<details> <summary>For Next.js 13 - 14:</summary>jsmodule.exports = { content: [ 'node_modules/daisyui/dist/**/*.js', 'node_modules/react-daisyui/dist/**/*.js', ], plugins: [require('daisyui')], }
Modify transpilePackages in your next.config.js file:
</details> <details> <summary>For Next.js 12:</summary> Install next-transpile modules:jsconst nextConfig = { // ... your content here transpilePackages: ['react-daisyui'], reactStrictMode: true, } module.exports = nextConfig
bashnpm install next-transpile-modules
And import the package inside your next.config.js file:
jsconst withTM = require('next-transpile-modules')(['react-daisyui'])
Finally, you can wrap your module.exports using withTM like so:
</details>jsmodule.exports = withTM({ //... your content here reactStrictMode: true, })
β‘ Quick Start
Import react-daisyui components within your component files:
jsimport { Button } from 'react-daisyui' export default (props) => { return <Button color="primary">Click me!</Button> }
π¨ Themes
To apply a theme (or multiple themes) to a page or components, import the Theme component and wrap your content:
jsimport { Theme, Button } from 'react-daisyui' export default (props) => { return ( <> <Theme dataTheme="dark"> <Button color="primary">Click me, dark!</Button> </Theme> <Theme dataTheme="light"> <Button color="primary">Click me, light!</Button> </Theme> </> ) }
Use tools like the official <a href="https://daisyui.com/theme-generator/">daisyUI Theme Generator</a> or <a href="https://themes.ionevolve.com/">daisyUI Theme Builder</a> to easily create your own themes.
βοΈ Components
<details> <summary>Actions:</summary>- <a href="https://react.daisyui.com/?path=/story/actions-button">Button</a>
- <a href="https://react.daisyui.com/?path=/story/actions-dropdown">Dropdown</a>
- <a href="https://react.daisyui.com/?path=/story/actions-modal">Modal</a>
- <a href="https://react.daisyui.com/?path=/story/actions-swap">Swap</a>
- Theme Controller
- <a href="https://react.daisyui.com/?path=/story/data-display-accordion">Accordion</a>
- <a href="https://react.daisyui.com/?path=/story/data-display-avatar">Avatar</a>
- <a href="https://react.daisyui.com/?path=/story/data-display-badge">Badge</a>
- <a href="https://react.daisyui.com/?path=/story/data-display-card">Card</a>
- <a href="https://react.daisyui.com/?path=/story/data-display-carousel">Carousel</a>
- <a href="https://react.daisyui.com/?path=/story/data-display-chart-bubble">Chart Bubble</a>
- <a href="https://react.daisyui.com/?path=/story/data-display-collapse">Collapse</a>
- <a href="https://react.daisyui.com/?path=/story/data-display-countdown">Countdown</a>
- <a href="https://react.daisyui.com/?path=/story/data-display-diff">Diff<a>
- <a href="https://react.daisyui.com/?path=/story/data-display-kbd">Kbd</a>
- <a href="https://react.daisyui.com/?path=/story/data-display-stats">Stats</a>
- <a href="https://react.daisyui.com/?path=/story/data-display-table">Table</a>
- <a href="https://react.daisyui.com/?path=/story/data-display-timeline">Timeline</a>
- <a href="https://react.daisyui.com/?path=/story/navigation-bottomnavigation">Bottom Navigation</a>
- <a href="https://react.daisyui.com/?path=/story/navigation-breadcrumbs">Breadcrumbs</a>
- <a href="https://react.daisyui.com/?path=/story/navigation-link">Link</a>
- <a href="https://react.daisyui.com/?path=/story/navigation-menu">Menu</a>
- <a href="https://react.daisyui.com/?path=/story/navigation-navbar">Navbar</a>
- <a href="https://react.daisyui.com/?path=/story/navigation-pagination">Pagination</a>
- <a href="https://react.daisyui.com/?path=/story/navigation-steps">Steps</a>
- <a href="https://react.daisyui.com/?path=/story/navigation-tabs">Tabs</a>
- <a href="https://react.daisyui.com/?path=/story/feedback-alert">Alert</a>
- <a href="https://react.daisyui.com/?path=/story/feedback-loading">Loading</a>
- <a href="https://react.daisyui.com/?path=/story/feedback-progress">Progress</a>
- <a href="https://react.daisyui.com/?path=/story/feedback-radial-progress">Radial Progress</a>
- Skeleton
- <a href="https://react.daisyui.com/?path=/story/feedback-toast">Toast</a>
- <a href="https://react.daisyui.com/?path=/story/feedback-tooltip">Tooltip</a>
- <a href="https://react.daisyui.com/?path=/story/data-input-checkbox">Checkbox</a>
- <a href="https://react.daisyui.com/?path=/story/data-input-fileinput">FileInput</a>
- <a href="https://react.daisyui.com/?path=/story/data-input-input">Input</a>
- <a href="https://react.daisyui.com/?path=/story/data-input-radio">Radio</a>
- <a href="https://react.daisyui.com/?path=/story/data-input-range">Range</a>
- <a href="https://react.daisyui.com/?path=/story/data-input-rating">Rating</a>
- <a href="https://react.daisyui.com/?path=/story/data-input-select">Select</a>
- <a href="https://react.daisyui.com/?path=/story/data-input-textarea">Textarea</a>
- <a href="https://react.daisyui.com/?path=/story/data-input-toggle">Toggle</a>
- <a href="https://react.daisyui.com/?path=/story/layout-artboard">Artboard</a>
- <a href="https://react.daisyui.com/?path=/story/layout-buttongroup">Button Group (Deprecated)</a>
- <a href="https://react.daisyui.com/?path=/story/layout-divider">Divider</a>
- <a href="https://react.daisyui.com/?path=/story/layout-drawer">Drawer</a>
- <a href="https://react.daisyui.com/?path=/story/layout-footer">Footer</a>
- <a href="https://react.daisyui.com/?path=/story/layout-hero">Hero</a>
- <a href="https://react.daisyui.com/?path=/story/layout-indicator">Indicator</a>
- <a href="https://react.daisyui.com/?path=/story/layout-inputgroup">Input Group (Deprecated)</a>
- <a href="https://react.daisyui.com/?path=/story/layout-join">Join (group items)</a>
- <a href="https://react.daisyui.com/?path=/story/layout-mask">Mask</a>
- <a href="https://react.daisyui.com/?path=/story/layout-stack">Stack</a>
- <a href="https://react.daisyui.com/?path=/story/mockup-browser">Browser</a>
- <a href="https://react.daisyui.com/?path=/story/mockup-code">Code</a>
- <a href="https://react.daisyui.com/?path=/story/mockup-phone">Phone</a>
- <a href="https://react.daisyui.com/?path=/story/mockup-window">Window</a>
π€ Contributing
We're looking for contributors to help write stories and unit tests for components.
Creating new components
Run npm run generate component ${your_new_component_name}. The generator will ask a few questions and setup the component for you.
When you'e done, export the component from index.tsx and open a PR.
Creating new stories
Check out the official <a href="https://daisyui.com/components/">daisyUI examples.</a> π
License
This project is licensed under the MIT License - see the LICENSE.md file for details.
Contributors
Showing top 12 contributors by commit count.
