1.0.2 • Published 3 years ago
@marcus-rise/react-theme v1.0.2
React theme
Handle system color scheme and user preferences.
https://react-theme.marcus-rise.dev
Install
using npm
npm install @marcus-rise/react-themeor using yarn
yarn add @marcus-rise/react-themeUsage
First of all, we need to initialize ThemeProvider context, and after this we can get access with
hook useTheme.
import {ThemeProvider, useTheme} from "@marcus-rise/react-theme";
const ThemeToggle = () => {
const {isDarkTheme, preferences, toggleTheme} = useTheme();
return (
<>
<button onClick={toggleTheme}>toggle</button>
<br/>
<span>preferences: {preferences ?? "system default"}</span>
<br/>
<span>isDarkTheme: {isDarkTheme ? "yes" : "no"}</span>
</>
);
};
const App = () => (
<ThemeProvider>
<ThemeToggle/>
</ThemeProvider>
);
export {App};API
Context provider ThemeProvider
To set custom localStorage key set preferencesStorageKey property for user preferences
<ThemeProvider preferencesStorageKey={"OPTIONAL_APP_THEME_STORAGE_KEY"}>To save user preferences in cookies, provide cookiesKey prop as a cookie key string
<ThemeProvider cookiesKey={"theme-preferences"}>Hook useTheme
isDarkThemeis abooleanwhat color scheme is selected, basing on user preferences and system settingspreferencesis astringformenum
enum ThemePreference {
DARK = "dark",
LIGHT = "light",
}toggleThemetoggle theme from system default to light, from light to dark and from dark to system defaultsetThemeset theme (dark or light)resetThemeToSystemset theme to system default
1.0.2
3 years ago
1.0.1
3 years ago
1.0.0
3 years ago
1.0.1-canary.1
3 years ago
1.0.0-canary.0
3 years ago
1.0.2-canary.0
3 years ago
1.0.2-canary.1
3 years ago
0.4.6
3 years ago
0.4.5
3 years ago
0.4.3
3 years ago
0.4.2
3 years ago
0.4.1
3 years ago
0.3.2
3 years ago
0.3.1
3 years ago
0.3.0
3 years ago
0.2.0
3 years ago
0.1.0
3 years ago