]> git.joonet.de Git - adminer.git/commitdiff
Designs: adminer.css with 'prefers-color-scheme: dark' don't disable dark mode (fix...
authorJakub Vrana <jakub@vrana.cz>
Sun, 13 Apr 2025 09:44:58 +0000 (11:44 +0200)
committerJakub Vrana <jakub@vrana.cz>
Sun, 13 Apr 2025 09:44:58 +0000 (11:44 +0200)
CHANGELOG.md
adminer/include/design.inc.php

index 9662611f824e01df6c04f014d2cc455426afe19f..53da30c639eac696ea70bab3b28aeb4e2145e3a1 100644 (file)
@@ -1,4 +1,5 @@
 ## Adminer dev
+- Designs: adminer.css with 'prefers-color-scheme: dark' don't disable dark mode
 - Plugins: Method bodyClass() to add &lt;body class>
 
 ## Adminer 5.2.1 (released 2025-04-11)
index 5469b5bc8a66064062afbb61335653d4d07dc40b..5f3d1dcea00c23dc1d0a0184c6747d6267e7fd58 100644 (file)
@@ -27,14 +27,19 @@ function page_header(string $title, string $error = "", $breadcrumb = array(), s
 <title><?php echo $title_page; ?></title>
 <link rel="stylesheet" href="../adminer/static/default.css">
 <?php
+
        $css = adminer()->css();
        $has_light = false;
        $has_dark = false;
-       foreach ($css as $filename) {
-               if (strpos($filename, "adminer.css") !== false) {
+       foreach ($css as $url) {
+               if (strpos($url, "adminer.css") !== false) {
                        $has_light = true;
+                       $filename = preg_replace('~\?.*~', '', $url);
+                       if (!preg_match('~:~', $url) && is_readable($filename) && preg_match('~prefers-color-scheme:\s*dark~', file_get_contents($filename))) {
+                               $has_dark = true;
+                       }
                }
-               if (strpos($filename, "adminer-dark.css") !== false) {
+               if (strpos($url, "adminer-dark.css") !== false) {
                        $has_dark = true;
                }
        }
@@ -47,6 +52,7 @@ function page_header(string $title, string $error = "", $breadcrumb = array(), s
                echo "<link rel='stylesheet'" . ($dark ? "" : $media) . " href='../adminer/static/dark.css'>\n";
        }
        echo "<meta name='color-scheme' content='" . ($dark === null ? "light dark" : ($dark ? "dark" : "light")) . "'>\n";
+
        // this is matched by compile.php
        echo script_src("../adminer/static/functions.js");
        echo script_src("static/editing.js");