Skip to content

Commit 6cf766f

Browse files
committed
added automatic selection of user-preferred color scheme (system)
1 parent cc9b666 commit 6cf766f

File tree

1 file changed

+25
-4
lines changed

1 file changed

+25
-4
lines changed

www/scripts/sepiaFW.ui.js

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,18 @@ function sepiaFW_build_ui(){
2020
UI.isChromeDesktop = false;
2121
UI.isSafari = false;
2222
UI.isEdge = false;
23+
24+
UI.getPreferredColorScheme = function(){
25+
if ('matchMedia' in window){
26+
if (window.matchMedia('(prefers-color-scheme: dark)').matches){
27+
return "dark";
28+
}else if (window.matchMedia('(prefers-color-scheme: light)').matches){
29+
return "light";
30+
}
31+
}
32+
return "";
33+
}
34+
UI.preferredColorScheme = UI.getPreferredColorScheme();
2335

2436
UI.windowExpectedSize = window.innerHeight;
2537
var windowSizeDifference = 0;
@@ -143,19 +155,24 @@ function sepiaFW_build_ui(){
143155
}
144156

145157
//set skin
146-
UI.setSkin = function(newIndex){
158+
UI.setSkin = function(newIndex, rememberSelection){
159+
if (rememberSelection == undefined) rememberSelection = true;
147160
var skins = $('.sepiaFW-style-skin');
148161
if (newIndex == 0){
149162
activeSkin = 0;
150-
SepiaFW.data.set('activeSkin', activeSkin);
163+
if (rememberSelection){
164+
SepiaFW.data.set('activeSkin', activeSkin);
165+
}
151166
}
152167
skins.each(function(index){
153168
if (index == (newIndex-1)){
154169
$(this).prop('title', 'main');
155170
$(this).prop('disabled', false);
156171
SepiaFW.debug.log("UI active skin: " + $(this).attr('href'));
157172
activeSkin = newIndex;
158-
SepiaFW.data.set('activeSkin', activeSkin);
173+
if (rememberSelection){
174+
SepiaFW.data.set('activeSkin', activeSkin);
175+
}
159176
}else{
160177
$(this).prop('title', '');
161178
$(this).prop('disabled', true);
@@ -477,8 +494,12 @@ function sepiaFW_build_ui(){
477494
//load skin
478495
var lastSkin = SepiaFW.data.get('activeSkin');
479496
if (lastSkin){
480-
UI.setSkin(lastSkin);
497+
UI.setSkin(lastSkin, false);
481498
}else{
499+
//get user preferred color scheme
500+
if (UI.preferredColorScheme == "dark"){
501+
UI.setSkin(2, false);
502+
}
482503
//get skin colors
483504
UI.refreshSkinColors();
484505
}

0 commit comments

Comments
 (0)