2.2.1 • Published 6 months ago
expo-theme-switcher v2.2.1
expo-theme-switcher
This is package help to handle theme toggle in bigger react native(expo) app, And it provide simple way to apply dark and light in all components
#Light Mode
#Dark Mode
Installation
npm install expo-theme-switcher
or
yarn add expo-theme-switcher
Import statement
import { ThemeProvider, ThemeSwitcherBtn, useTheme } from 'expo-theme-switcher';
How to use it:
// In App.js
// setup part...
import { ThemeProvider, ThemeSwitcherBtn, useTheme } from 'expo-theme-switcher';
export default function App() {
// light theme colors
const lightTheme = {
primaryBackgroundColor: "white",
secondaryBackgroundColor: "#c7c7c7",
primaryTextColor: "#000",
secondaryTextColor: "",
primaryBorderColor: "black",
secondaryBorderColor: "gray",
}
// dark theme colors
const darkTheme = {
primaryBackgroundColor: "#111",
secondaryBackgroundColor: "#333",
primaryTextColor: "#fff",
secondaryTextColor: "#cccccc",
primaryBorderColor: "white",
secondaryBorderColor: "gray",
}
return (
<ThemeProvider light={lightTheme} dark={darkTheme}>
<Homepage /> // another component
<ThemeSwitcherBtn /> // toggle button
</ThemeProvider>
);
}
// In Homepage.tsx
import { useTheme } from 'expo-theme-switcher'
const Homepage = () => {
const { currentTheme } = useTheme() // currentTheme is a object
// console.log("currentTheme : ", currentTheme) // currentTheme : {"isDarkMode": false, "primaryBackgroundColor": "white", "primaryTextColor": "#000", "secondaryBackgroundColor": "#ccc", "secondaryTextColor": "#4d4d4d"}
return (
<View style={{backgroundColor: currentTheme.primaryBackgroundColor}}>
<Text style={{color: currentTheme.primaryTextColor}} >Homepage</Text>
<Text style={{color: currentTheme.primaryTextColor}}>Homepage</Text>
</View>
)
}
export default Homepage
🤝 Contributing
Contributions, issues and feature requests are welcome!Feel free to check issues page.
Show your support
Give a ⭐️ if this project helped you!
2.2.1
6 months ago
2.1.2
6 months ago
2.1.1
6 months ago
2.1.4
6 months ago
2.1.3
6 months ago
2.1.6
6 months ago
2.1.5
6 months ago
2.1.8
6 months ago
2.1.7
6 months ago
2.1.0
6 months ago
2.1.9
6 months ago
2.1.10
6 months ago
2.1.11
6 months ago
2.0.7
8 months ago
2.0.6
8 months ago
2.0.8
8 months ago
1.0.6
8 months ago
1.0.5
8 months ago
1.0.4
8 months ago
1.0.3
8 months ago
1.0.2
8 months ago
1.0.1
8 months ago
1.0.0
8 months ago