Comments (2)
I figured out the issue! The trick was to realize that themes themselves can be thought of as an enum with values = light
, dark
and system
– these don't change (loosely speaking). All that can change is the class (or data attribute) they map to.
Given this, here's the configuration that worked for me (the value
prop provides the correct mapping from theme to theme class):
<ThemesProvider
attribute="class"
defaultTheme="system"
enableSystem
value={{ light: 'theme-light', dark: 'theme-dark' }}
{...props}
>
{children}
</ThemesProvider>
Also it's important to use the values light
, dark
and system
when setting the theme (not theme-light
& theme-dark
that I was using before):
setTheme('light' | 'dark' | 'system');
I think the docs would be clearer if we had better value
examples (the one in this section shows only one value and it's for a somewhat different use case). Happy to create a PR if it will be helpful.
from next-themes.
I think this is described quite well here
from next-themes.
Related Issues (20)
- How to disable syncing themes between tabs HOT 2
- Documentation out of date with Tailwind's new dark-mode API
- Should `resolvedTheme` obey `forcedTheme`? HOT 3
- Allow nested providers HOT 2
- Theme object is injected into the "data-theme" property. HOT 1
- useTheme doesn't work in monorepo ui library. HOT 1
- `TypeError: Cannot read properties of undefined (reading 'addListener')` using `vitest`/`@testing-library/react` HOT 1
- Support for changing both class and data-theme attribute simultaneously HOT 1
- Callback Version of `setTheme` Passes Itself HOT 1
- Possibility to share across sub-domains? HOT 1
- ThemeProvider returns multiple types HOT 3
- setTheme not working HOT 1
- Theme flashing v0.3.0 HOT 7
- Next.js suspense triggered twice with next-themes HOT 1
- Flash Of Unstyled Content (FOUC) on Live Website HOT 6
- The way avoid hydration errors has a negative impact on SEO. HOT 2
- [Feature request]:setTheme multiple classes for next-themes HOT 5
- [Feature request]: The opportunity not to store theme value in LS
- [Feature request]: react 19 support HOT 2
- [Bug]: NextJs dark mode background is black on overscroll
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from next-themes.