fix: theme reverts to light on reload when system preference stored (#61)
This commit is contained in:
@@ -7,6 +7,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
|
|
||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
|
|
||||||
|
## [0.20.25] - 2026-04-20
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- Theme selection no longer reverts to light mode on page reload when "System" is chosen; the init script now correctly resolves the `system` preference to the OS dark/light state instead of treating it as a literal `data-theme` value
|
||||||
|
|
||||||
## [0.20.24] - 2026-04-20
|
## [0.20.24] - 2026-04-20
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|||||||
Generated
+2
-2
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "oikos",
|
"name": "oikos",
|
||||||
"version": "0.20.24",
|
"version": "0.20.25",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "oikos",
|
"name": "oikos",
|
||||||
"version": "0.20.24",
|
"version": "0.20.25",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"bcrypt": "^6.0.0",
|
"bcrypt": "^6.0.0",
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "oikos",
|
"name": "oikos",
|
||||||
"version": "0.20.24",
|
"version": "0.20.25",
|
||||||
"description": "Self-hosted family planner - calendar, tasks, shopping, meal planning, budget and more. Private, open-source, no subscription.",
|
"description": "Self-hosted family planner - calendar, tasks, shopping, meal planning, budget and more. Private, open-source, no subscription.",
|
||||||
"main": "server/index.js",
|
"main": "server/index.js",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
|
|||||||
+7
-2
@@ -47,9 +47,14 @@
|
|||||||
(function() {
|
(function() {
|
||||||
var stored = localStorage.getItem('oikos-theme');
|
var stored = localStorage.getItem('oikos-theme');
|
||||||
var prefersDark = window.matchMedia('(prefers-color-scheme: dark)').matches;
|
var prefersDark = window.matchMedia('(prefers-color-scheme: dark)').matches;
|
||||||
document.documentElement.setAttribute('data-theme', stored || (prefersDark ? 'dark' : 'light'));
|
if (stored === 'dark' || stored === 'light') {
|
||||||
|
document.documentElement.setAttribute('data-theme', stored);
|
||||||
|
} else {
|
||||||
|
document.documentElement.setAttribute('data-theme', prefersDark ? 'dark' : 'light');
|
||||||
|
}
|
||||||
window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', function(e) {
|
window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', function(e) {
|
||||||
if (!localStorage.getItem('oikos-theme')) {
|
var current = localStorage.getItem('oikos-theme');
|
||||||
|
if (!current || current === 'system') {
|
||||||
document.documentElement.setAttribute('data-theme', e.matches ? 'dark' : 'light');
|
document.documentElement.setAttribute('data-theme', e.matches ? 'dark' : 'light');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user