@@ -507,29 +507,48 @@ var ciDebugBar = {
507507
508508 setToolbarTheme : function ( ) {
509509 var btnTheme = document . getElementById ( 'toolbar-theme' ) ;
510+ var isDarkMode = window . matchMedia ( "(prefers-color-scheme: dark)" ) . matches ;
511+ var isLightMode = window . matchMedia ( "(prefers-color-scheme: light)" ) . matches ;
510512
513+ // If a cookie is set with a value, we force the color scheme
511514 if ( ciDebugBar . readCookie ( 'debug-bar-theme' ) === 'dark' )
512515 {
513- ciDebugBar . addClass ( ciDebugBar . icon , 'dark ' ) ;
516+ ciDebugBar . removeClass ( ciDebugBar . toolbar , 'light ' ) ;
514517 ciDebugBar . addClass ( ciDebugBar . toolbar , 'dark' ) ;
515518 }
519+ else if ( ciDebugBar . readCookie ( 'debug-bar-theme' ) === 'light' )
520+ {
521+ ciDebugBar . removeClass ( ciDebugBar . toolbar , 'dark' ) ;
522+ ciDebugBar . addClass ( ciDebugBar . toolbar , 'light' ) ;
523+ }
516524
517525 btnTheme . addEventListener ( 'click' , function ( ) {
518526 var theme = ciDebugBar . readCookie ( 'debug-bar-theme' ) ;
519527
520- ciDebugBar . createCookie ( 'debug-bar-theme' , '' , - 1 ) ;
521-
522- if ( ! theme || theme === 'light' )
528+ if ( ! theme && window . matchMedia ( "(prefers-color-scheme: dark)" ) . matches )
523529 {
524- ciDebugBar . createCookie ( 'debug-bar-theme' , 'dark' , 365 ) ;
525- ciDebugBar . addClass ( ciDebugBar . icon , 'dark' ) ;
526- ciDebugBar . addClass ( ciDebugBar . toolbar , 'dark' ) ;
530+ // If there is no cookie, and "prefers-color-scheme" is set to "dark"
531+ // It means that the user wants to switch to light mode
532+ ciDebugBar . createCookie ( 'debug-bar-theme' , 'light' , 365 ) ;
533+ ciDebugBar . removeClass ( ciDebugBar . toolbar , 'dark' ) ;
534+ ciDebugBar . addClass ( ciDebugBar . toolbar , 'light' ) ;
527535 }
528536 else
529537 {
530- ciDebugBar . createCookie ( 'debug-bar-theme' , 'light' , 365 ) ;
531- ciDebugBar . removeClass ( ciDebugBar . icon , 'dark' ) ;
532- ciDebugBar . removeClass ( ciDebugBar . toolbar , 'dark' ) ;
538+ if ( theme === 'dark' )
539+ {
540+ ciDebugBar . createCookie ( 'debug-bar-theme' , 'light' , 365 ) ;
541+ ciDebugBar . removeClass ( ciDebugBar . toolbar , 'dark' ) ;
542+ ciDebugBar . addClass ( ciDebugBar . toolbar , 'light' ) ;
543+ }
544+ else
545+ {
546+ // In any other cases: if there is no cookie, or the cookie is set to
547+ // "light", or the "prefers-color-scheme" is "light"...
548+ ciDebugBar . createCookie ( 'debug-bar-theme' , 'dark' , 365 ) ;
549+ ciDebugBar . removeClass ( ciDebugBar . toolbar , 'light' ) ;
550+ ciDebugBar . addClass ( ciDebugBar . toolbar , 'dark' ) ;
551+ }
533552 }
534553 } , true ) ;
535554 } ,
0 commit comments