A React Hook for adding a dark / night mode to your site inspired by darkreader
npm install react-darkreaderEnglish | 简体中文
![]()
🌓 A React Hook for adding a dark / night mode to your site inspired by darkreader
Live Demo ✨ https://react-darkreader.vercel.app
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
`html`
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
};
`
`tsx | pure`
theme={/ Theme options /}
fixes={/ Contains fixes for the generated theme /}
onChange={isDark => {
/ Callback for change /
}}
/>
`typescript | pure`
const [isDark, { toggle, collectCSS }] = useDarkreader(defaultDarken, theme?, fixes?)
with a toggle button as ui.
`tsx | pure`
| Params | Description | Type |
| ---------- | ------------------------------------------------------- | ----------------------------- |
| isDark | The status of current darkmode, support true, false | boolean |() => void
| toggle | The function for toggling the darkmode. | |async () => Promise
| collectCSS | The async function for collecting the css of darkmode. | |
| Params | Description | Type | Default |
| ------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------- | ------- |
| defaultDarken | The default status of the darkreader | boolean | false |Partial
| theme | The options of darkreader Theme refered to index.d.ts → | | - |DynamicThemeFix
| fixes | Contains fixes for the generated theme refered to index.d.ts → | | - |
- [x] add the material design styling in switch
- [ ] followSystemColorScheme
- [ ] localstorge
- [ ] playground for editing the config online
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
| Ant Design Pro Components Light | Ant Design Pro Components Dark |
| :------------------------------------------------------------------: | :-----------------------------------------------------------------: |
| !Procomponents Light | !Procomponents Dark |
[More here →]() Welcome to submit.
Thanks goes to these people:
Please Feel free to enjoy and participate in open source!