# 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
๐ A React Hook for adding a dark / night mode to your site inspired by darkreader
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/) |
| :------------------------------------------------------------------: | :-----------------------------------------------------------------: |
|  |  |
## โค๏ธ Contributors
Thanks goes to these people (emoji key):
## License
[MIT](https://github.com/Turkyden/react-darkreader/blob/main/LICENSE)