This content originally appeared on DEV Community and was authored by Praveen Singh
We all love dark mode, but implementing a clean and customizable toggle
can be a bit annoying.\
That’s why I built
react-night-toggle
— a lightweight, flexible React component that makes switching between
dark and light mode super easy.
Why react-night-toggle
?
Most projects need a dark/light mode toggle, but:\
- Existing solutions are often too heavy or opinionated.\
- Customization (icons, colors) is limited.\
- No built-in support for system theme preference.
react-night-toggle
solves this by giving you:\
Custom Icons & Colors — use your own sun/moon icons and define their colors.\
Lightweight & Easy — minimal setup, no external dependencies.\
System Theme Support — automatically follow system dark/light preference.
Installation
npm install react-night-toggle
# or
yarn add react-night-toggle
Usage Example
import { useState } from "react";
import { DarkModeSwitch } from "react-night-toggle";
export default function App() {
const [dark, setDark] = useState(false);
const toggleDarkMode = (checked: boolean) => setDark(checked);
return (
<div className={dark ? "dark" : ""}>
<DarkModeSwitch
checked={dark}
onChange={toggleDarkMode}
sunColor="orange" // optional, defaults to currentColor
moonColor="black" // optional, defaults to currentColor
/>
<h1>{dark ? "🌙 Dark Mode" : "☀ Light Mode"}</h1>
</div>
);
}
Links
-
npm: react-night-toggle\
-
GitHub: github.com/Praveenskg/react-night-toggle\
-
Live Demo: react-night-toggle.vercel.app
Feedback Welcome
This is just the beginning! I’d love to know:\
- What features would you like to see next?\
- Does it work smoothly in your projects?
If you find it useful, consider giving it a on GitHub.\
It helps a lot and keeps me motivated to improve it.
Try it today and make dark mode switching effortless in your React
apps!
This content originally appeared on DEV Community and was authored by Praveen Singh