chore: add dark mode support
This commit is contained in:
parent
708afd2560
commit
cb15f0d00c
10
index.html
10
index.html
|
@ -6,8 +6,16 @@
|
|||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>React TypeScript Vite Template</title>
|
||||
</head>
|
||||
<body>
|
||||
<body class="dark:text-white dark:bg-hex-121212">
|
||||
<div id="root"></div>
|
||||
<script>
|
||||
(function() {
|
||||
const prefersDark = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches
|
||||
const setting = localStorage.getItem('color-schema') || 'auto'
|
||||
if (setting === 'dark' || (prefersDark && setting !== 'light'))
|
||||
document.documentElement.classList.toggle('dark', true)
|
||||
})()
|
||||
</script>
|
||||
<script type="module" src="/src/main.tsx"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -2,10 +2,10 @@ import { useRoutes } from 'react-router-dom'
|
|||
import { routes } from './routes'
|
||||
|
||||
const App = () => {
|
||||
return <div>
|
||||
return <>
|
||||
<p>hello world</p>
|
||||
{useRoutes(routes)}
|
||||
</div>
|
||||
</>
|
||||
}
|
||||
|
||||
export default App
|
||||
|
|
|
@ -6,6 +6,7 @@ import App from './App'
|
|||
|
||||
import '@unocss/reset/tailwind.css'
|
||||
import 'uno.css'
|
||||
import '~/styles/main.css'
|
||||
|
||||
const root = createRoot(document.getElementById('root') as HTMLElement)
|
||||
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
export function useDark() {
|
||||
const [value, setValue] = useState<string>(window.localStorage.getItem('colorSchema') || 'auto')
|
||||
const toggleDark = () => {
|
||||
setValue(value === 'auto' ? 'dark' : 'auto')
|
||||
window.localStorage.setItem('colorSchema', value)
|
||||
}
|
||||
const isDark = value === 'dark'
|
||||
|
||||
if (document)
|
||||
useEffect(() => { document.documentElement.classList.toggle('dark', isDark) })
|
||||
|
||||
return [isDark, toggleDark]
|
||||
}
|
|
@ -0,0 +1 @@
|
|||
export { useDark } from './dark'
|
Loading…
Reference in New Issue