summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOmar Roth <omarroth@hotmail.com>2018-04-13 21:32:14 -0500
committerOmar Roth <omarroth@hotmail.com>2018-04-13 21:32:14 -0500
commit4bf0e538e4cbb3fb96bec5a58c68c994e13f64f7 (patch)
tree59766b2d99ac41b29510538bcc87bf77d68403cb
parent6bbbfcb9198b78347a39ba8bf2dcd24df79b225b (diff)
downloadinvidious-4bf0e538e4cbb3fb96bec5a58c68c994e13f64f7.tar.gz
invidious-4bf0e538e4cbb3fb96bec5a58c68c994e13f64f7.tar.bz2
invidious-4bf0e538e4cbb3fb96bec5a58c68c994e13f64f7.zip
Add dark theme
-rw-r--r--assets/css/darktheme.css26
-rw-r--r--assets/css/default.css (renamed from assets/css/custom.css)12
-rw-r--r--assets/css/lighttheme.css9
-rw-r--r--src/invidious.cr22
-rw-r--r--src/views/layout.ecr18
5 files changed, 73 insertions, 14 deletions
diff --git a/assets/css/darktheme.css b/assets/css/darktheme.css
new file mode 100644
index 00000000..19cdfd45
--- /dev/null
+++ b/assets/css/darktheme.css
@@ -0,0 +1,26 @@
+a:hover,
+a:active {
+ color: #46aaf6;
+}
+
+a {
+ color: #f0f0f0;
+ text-decoration: none;
+}
+
+body {
+ background-color: #101010;
+ color: #f0f0f0;
+}
+
+.pure-form legend {
+ color: #f0f0f0;
+}
+
+.pure-menu-heading {
+ color: #f0f0f0;
+}
+
+.pure-form > fieldset > input {
+ color: #101010;
+}
diff --git a/assets/css/custom.css b/assets/css/default.css
index abd4e66e..850ebd47 100644
--- a/assets/css/custom.css
+++ b/assets/css/default.css
@@ -1,13 +1,3 @@
-a {
- color: #333;
- text-decoration: none;
-}
-
-a:hover,
-a:active {
- color: #167ac6;
-}
-
.h-box {
padding-left: 1em;
padding-right: 1em;
@@ -16,4 +6,4 @@ a:active {
.v-box {
padding-top: 1em;
padding-bottom: 1em;
-} \ No newline at end of file
+}
diff --git a/assets/css/lighttheme.css b/assets/css/lighttheme.css
new file mode 100644
index 00000000..34bb9fc1
--- /dev/null
+++ b/assets/css/lighttheme.css
@@ -0,0 +1,9 @@
+a:hover,
+a:active {
+ color: #167ac6;
+}
+
+a {
+ color: #303030;
+ text-decoration: none;
+}
diff --git a/src/invidious.cr b/src/invidious.cr
index 78b13b1c..85645611 100644
--- a/src/invidious.cr
+++ b/src/invidious.cr
@@ -208,6 +208,10 @@ before_all do |env|
notifications ||= 0
env.set "notifications", notifications
end
+
+ if env.request.cookies.has_key?("darktheme") && env.request.cookies["darktheme"].value == "true"
+ env.set "darktheme", true
+ end
end
get "/" do |env|
@@ -514,7 +518,9 @@ get "/signout" do |env|
referer ||= "/"
env.request.cookies.each do |cookie|
- cookie.expires = Time.new(1990, 1, 1)
+ if cookie.name != "darktheme"
+ cookie.expires = Time.new(1990, 1, 1)
+ end
end
env.request.cookies.add_response_headers(env.response.headers)
@@ -770,6 +776,20 @@ get "/subscription_ajax" do |env|
env.redirect referer
end
+get "/modify_theme" do |env|
+ referer = env.request.headers["referer"]?
+ referer ||= "/"
+
+ if env.params.query["dark"]?
+ env.response.cookies["darktheme"] = "true"
+ elsif env.params.query["light"]?
+ env.request.cookies["darktheme"].expires = Time.new(1990, 1, 1)
+ env.request.cookies.add_response_headers(env.response.headers)
+ end
+
+ env.redirect referer
+end
+
error 404 do |env|
error_message = "404 Page not found"
templated "error"
diff --git a/src/views/layout.ecr b/src/views/layout.ecr
index cf26da3f..22abd4c5 100644
--- a/src/views/layout.ecr
+++ b/src/views/layout.ecr
@@ -7,7 +7,12 @@
<link rel="stylesheet" href="https://unpkg.com/purecss@1.0.0/build/pure-min.css">
<link rel="stylesheet" href="https://unpkg.com/purecss@1.0.0/build/grids-responsive-min.css">
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.0.6/css/all.css">
- <link rel="stylesheet" href="/css/custom.css">
+ <link rel="stylesheet" href="/css/default.css">
+ <% if env.get? "darktheme" %>
+ <link rel="stylesheet" href="/css/darktheme.css">
+ <% else %>
+ <link rel="stylesheet" href="/css/lighttheme.css">
+ <% end %>
<%= yield_content "header" %>
</head>
@@ -21,7 +26,9 @@
</div>
<div class="pure-u-1 pure-u-md-3-5">
<form class="pure-form" action="/search" method="get">
- <input type="search" style="width:100%;" name="q" placeholder="search" value="<%= env.params.query["q"]? %>">
+ <fieldset>
+ <input type="search" style="width:100%;" name="q" placeholder="search" value="<%= env.params.query["q"]? %>">
+ </fieldset>
</form>
</div>
<div class="pure-u-1 pure-u-md-1-5">
@@ -48,6 +55,13 @@
</div>
<%= content %>
<center class="h-box">
+ <% if env.get? "darktheme" %>
+ <a href="/modify_theme?light">Light theme</a>
+ <% else %>
+ <a href="/modify_theme?dark">Dark theme</a>
+ <% end %>
+ </center>
+ <center class="h-box">
Released under AGPLv3 by <a href="https://github.com/omarroth">Omar Roth</a> -
source available <a href="https://github.com/omarroth/invidious">here</a>
</center>