# react-darkreader **Repository Path**: Turkyden/react-darkreader ## Basic Information - **Project Name**: react-darkreader - **Description**: ๐ŸŒ“ A React Hook for adding a dark / night mode to your site. ๅˆ‡ๆข็™ฝๅคฉ/้ป‘ๅคœๆจกๅผ็š„ React ็ป„ไปถ - **Primary Language**: TypeScript - **License**: MIT - **Default Branch**: main - **Homepage**: https://react-darkreader.vercel.app/ - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 0 - **Created**: 2021-04-27 - **Last Updated**: 2021-08-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README English | [็ฎ€ไฝ“ไธญๆ–‡](./README_cn-zh.md)

react-darkreader

React Darkreader

๐ŸŒ“ A React Hook for adding a dark / night mode to your site inspired by darkreader

npm npm dumi license jsdelivr

Live Demo โœจ https://react-darkreader.vercel.app

## Getting Started Install with yarn ```bash yarn add react-darkreader ``` Or you can ```bash npm install react-darkreader ``` Or inject the script at your page by [jsdelivr CDN](https://www.jsdelivr.com/) ```html ``` ## ๐Ÿš€ Usage You can import the darkmode as a react component. ```tsx | pure import React from 'react'; import Darkreader from 'react-darkreader'; export default () => ; ``` You can also create darkmode by the react hook `useDarkreader` ```tsx | pure import React from 'react'; import { Switch, useDarkreader } from 'react-darkreader'; export default () => { const [isDark, { toggle }] = useDarkreader(false); return ; }; ``` ## ๐Ÿ“” API ### Component ```tsx | pure { /** Callback for change **/ }} /> ``` ### Hook ```typescript | pure const [isDark, { toggle, collectCSS }] = useDarkreader(defaultDarken, theme?, fixes?) ``` with a toggle button as ui. ```tsx | pure ``` ### Result | Params | Description | Type | | ---------- | ------------------------------------------------------- | ----------------------------- | | isDark | The status of current darkmode, support `true`, `false` | `boolean` | | toggle | The function for toggling the darkmode. | `() => void` | | collectCSS | The async function for collecting the css of darkmode. | `async () => Promise` | ### Params | Params | Description | Type | Default | | ------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------- | ------- | | defaultDarken | The default status of the darkreader | `boolean` | false | | theme | The options of darkreader Theme [refered to index.d.ts →](https://github.com/darkreader/darkreader/blob/13c93a995cde0b933580174106897bb1d13f53b4/index.d.ts#L41) | `Partial` | - | | fixes | Contains fixes for the generated theme [refered to index.d.ts →](https://github.com/darkreader/darkreader/blob/13c93a995cde0b933580174106897bb1d13f53b4/index.d.ts#L121) | `DynamicThemeFix` | - | ## ๐Ÿ”ข Coming Soon - [x] add the material design styling in switch - [ ] followSystemColorScheme - [ ] localstorge - [ ] playground for editing the config online ## ๐Ÿ”จ Contribute Install dependencies, ```bash $ npm i ``` Start the dev server, ```bash $ npm start ``` Build documentation, ```bash $ npm run docs:build ``` Build library via `father-build`, ```bash $ npm run build ``` ## ๐Ÿฅ‡ Who is using | [Ant Design Pro Components Light](https://procomponents.ant.design/) | [Ant Design Pro Components Dark](https://procomponents.ant.design/) | | :------------------------------------------------------------------: | :-----------------------------------------------------------------: | | ![Procomponents Light](./screenshot/pro-components_light.png) | ![Procomponents Dark](./screenshot/pro-components_dark.png) | ## โค๏ธ Contributors Thanks goes to these people (emoji key):

Turkyden

๐Ÿ’ป๐Ÿ“–๐Ÿš‡โš ๏ธ

chenshuai2144

๐Ÿ’ป๐Ÿš‡โš ๏ธ

KnowsCount

๐Ÿ“–
## License [MIT](https://github.com/Turkyden/react-darkreader/blob/main/LICENSE)