Skip to content

Commit bae1ac8

Browse files
authored
Merge pull request #78 from jdabtieu/dark-mode
Dark mode
2 parents d6de840 + b114777 commit bae1ac8

File tree

4 files changed

+97
-1
lines changed

4 files changed

+97
-1
lines changed

src/assets/css/style.css

Lines changed: 44 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
}
77

88
.see-more-wrapper {
9-
background-color: #ffffff;
9+
background-color: inherit;
1010
position: absolute;
1111
bottom: 0;
1212
padding: 4px 0;
@@ -137,3 +137,46 @@ a {
137137
.svg-green {
138138
filter: invert(57%) sepia(58%) saturate(3606%) hue-rotate(83deg) brightness(118%) contrast(125%);
139139
}
140+
141+
/****************** DARK MODE ********************************/
142+
.dark {
143+
background: #2f2f2f;
144+
background-color: #2f2f2f;
145+
color: #fff;
146+
}
147+
148+
.dark .card {
149+
border: 1px solid rgba(255, 255, 255, .125);
150+
background-color: #2f2f2f;
151+
}
152+
153+
.dark .form-control:focus {
154+
background-color: #2f2f2f;
155+
color: #fff;
156+
}
157+
158+
.dark .form-control {
159+
background-color: #2f2f2f;
160+
color: #fff;
161+
}
162+
163+
.dark tr {
164+
background-color: #2f2f2f;
165+
color: #fff;
166+
}
167+
168+
.dark tr:hover {
169+
color: #fff!important;
170+
}
171+
172+
.dark .page-link {
173+
background-color: #2f2f2f!important;
174+
}
175+
176+
.dark .page-item.active .page-link {
177+
background-color: #0d6efd!important;
178+
}
179+
180+
.dark-toggle:checked {
181+
background-color: #2f2f2f;
182+
}

src/assets/js/darkMode.js

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
function setCookie(name, val, exp) {
2+
var d = new Date();
3+
d.setTime(d.getTime() + (exp*24*60*60*1000)); // expiry in days
4+
var expires = "expires=" + d.toUTCString();
5+
document.cookie = name + "=" + val + ";" + expires + ";path=/";
6+
}
7+
8+
function getCookie(name) {
9+
name += "=";
10+
var decodedCookie = decodeURIComponent(document.cookie);
11+
var ca = decodedCookie.split(';');
12+
for(var i = 0; i < ca.length; i++) {
13+
var c = ca[i];
14+
while (c.charAt(0) == ' ') {
15+
c = c.substring(1);
16+
}
17+
if (c.indexOf(name) == 0) {
18+
return c.substring(name.length, c.length);
19+
}
20+
}
21+
return "";
22+
}
23+
24+
if (getCookie("darkMode") == 1) {
25+
enableDark();
26+
document.querySelector(".dark-toggle").setAttribute("checked", "");
27+
}
28+
29+
function toggleDark() {
30+
if (getCookie("darkMode") == 1) {
31+
disableDark();
32+
setCookie("darkMode", 0, 7);
33+
} else {
34+
enableDark();
35+
setCookie("darkMode", 1, 7);
36+
}
37+
}
38+
39+
40+
function enableDark() {
41+
document.body.classList.add("dark");
42+
}
43+
function disableDark() {
44+
document.body.classList.remove("dark");
45+
}

src/templates/error/maintenance.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,5 +27,6 @@ <h1>Under Maintenance</h1>
2727
<hr>
2828
<p class="text-center">© 2020, {{ CLUB_NAME }}. Source code available <a href="https://github.com/jdabtieu/CTFOJ">here</a>.</p>
2929
</footer>
30+
<script src="/assets/js/darkMode.js"></script>
3031
</body>
3132
</html>

src/templates/layout.html

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,12 +31,18 @@
3131
{% endif %}
3232
</ul>
3333
<ul class="navbar-nav">
34+
<div class="form-check form-switch nav-link">
35+
<input class="form-check-input dark-toggle" onclick="toggleDark()" type="checkbox">
36+
</div>
3437
<li class="nav-link white">Welcome, {{ session.username }}</li>
3538
<li><a class="nav-link" href="/settings">Settings</a></li>
3639
<li><a class="nav-link" href="/logout">Log Out</a></li>
3740
</ul>
3841
{% else %}
3942
<ul class="navbar-nav ms-auto">
43+
<div class="form-check form-switch nav-link">
44+
<input class="form-check-input dark-toggle" onclick="toggleDark()" type="checkbox">
45+
</div>
4046
<li><a class="nav-link" href="/register">Register</a></li>
4147
<li><a class="nav-link" href="/login">Log In</a></li>
4248
</ul>
@@ -63,6 +69,7 @@
6369
<p class="text-center">© 2020, {{ CLUB_NAME }}. <a href="https://github.com/jdabtieu/CTFOJ">Source Code</a> - <a href="/terms">Terms of Service</a> - <a href="/privacy">Privacy Policy</a></p>
6470
</footer>
6571

72+
<script src="/assets/js/darkMode.js"></script>
6673
<!-- TODO: Remove jQuery -->
6774
<script src="/assets/js/jquery.min.js"></script>
6875
<script src="/assets/js/showdown.min.js"></script>

0 commit comments

Comments
 (0)