@@ -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