Skip to content

Commit c1110d4

Browse files
Fixed dark mode for login/register...
This fixed the issue of dark mode not displaying on the register, login, forgot password and a few other pages. This one took me a while to fix, and I still don't really know what is going on here. The aforementioned pages already implemented a dark mode, but it didn't seem to work for me. After some testing, I discovered that the dark mode preset doesn't load on chromium based browsers.  I have absolutely no idea why that is, if someone could help me with this that would be amazing. I might make an issue out of this later on. As I still wanted to fix this, I finally achieved my goal by doing the caveman approach: I first added the usual dark mode detection. The same used on the home and little link pages (see previous commits if you're interested). Then I wrote and if statement that loads the newly added app-dark.css (see previous commit) that changes text and background color on the pages in question, if the browser type is chromium and dark mode is selected in the browser settings. "@if(strpos($_SERVER['HTTP_USER_AGENT'], 'Chrome' !== false) and $color_scheme == 'dark')" This doesn't look optimal, and I would rather just have the same dark mode as on Firefox, but this is the best I can currently do with my available time.
1 parent c24863f commit c1110d4

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed

resources/views/layouts/guest.blade.php

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,31 @@
1515

1616
<!-- Scripts -->
1717
<script src="{{ asset('js/app.js') }}" defer></script>
18+
19+
<!-- begin dark mode detection -->
20+
<script src="{{ asset('littlelink/js/js.cookie.min.js') }}"></script>
21+
<script>
22+
// code to set the `color_scheme` cookie
23+
var $color_scheme = Cookies.get("color_scheme");
24+
function get_color_scheme() {
25+
return (window.matchMedia && window.matchMedia("(prefers-color-scheme: dark)").matches) ? "dark" : "light";
26+
}
27+
function update_color_scheme() {
28+
Cookies.set("color_scheme", get_color_scheme());
29+
}
30+
// read & compare cookie `color-scheme`
31+
if ((typeof $color_scheme === "undefined") || (get_color_scheme() != $color_scheme))
32+
update_color_scheme();
33+
// detect changes and change the cookie
34+
if (window.matchMedia)
35+
window.matchMedia("(prefers-color-scheme: dark)").addListener( update_color_scheme );
36+
</script>
37+
<?php // loads dark mode CSS if dark mode detected
38+
$color_scheme = isset($_COOKIE["color_scheme"]) ? $_COOKIE["color_scheme"] : false; ?>
39+
@if(strpos($_SERVER['HTTP_USER_AGENT'], 'Chrome' !== false) and $color_scheme == 'dark')
40+
<link rel="stylesheet" href="{{ asset('css/app-dark.css') }}">
41+
@endif
42+
<!-- end dark mode detection -->
1843
</head>
1944
<body>
2045
<div class="font-sans text-gray-900 antialiased">

0 commit comments

Comments
 (0)