diff --git a/web/css/styles.css b/web/css/styles.css index e656eab..a278e8d 100644 --- a/web/css/styles.css +++ b/web/css/styles.css @@ -14,6 +14,13 @@ body { padding: 0; } +a { + color: var(--clrLink); +} +a:visited { + color: var(--clrLinkVisited); +} + #gsticker { position: absolute; top: 0; @@ -398,6 +405,8 @@ input[type="text"].cw { border: none; border-bottom: solid 2px var(--clrWarn); font-size: var(--fsReduced); + background: transparent; + color: var(--clrText); } /* Profile */ @@ -429,3 +438,9 @@ label[role="profile-nip5"] { display: block; } +@media (prefers-color-scheme: dark) { + .icon.svg { + filter: invert(1); + } +} + diff --git a/web/css/utils.css b/web/css/utils.css index bae6ca2..cff54f3 100644 --- a/web/css/utils.css +++ b/web/css/utils.css @@ -36,10 +36,10 @@ button.icon > img.icon { button.action { border: none; border-radius: 50px; - background: #171717; + background: var(--clrBgAction); padding: 10px 15px; font-size: 16px; - color: white; + color: var(--clrTextAction); font-weight: 800; } @@ -66,10 +66,10 @@ img.icon.small { top: 0; } .event-message { - background: #f4f4f4; + background: var(--clrEvMsg); padding: 7px; border-radius: 12px; - color: #444; + color: var(--clrTextEvMsg); } .flex { display: flex; @@ -81,3 +81,12 @@ img.invert { /* This class is good for white on black icons; */ filter: invert(1); } + +@media (prefers-color-scheme: dark) { + img.dark-invert { + filter: invert(1); + } + img.invert, img.svg.invert { + filter: initial; + } +} diff --git a/web/css/vars.css b/web/css/vars.css index 61180ac..6cf64bd 100644 --- a/web/css/vars.css +++ b/web/css/vars.css @@ -11,6 +11,14 @@ --clrTextLighter: #abb4ca; --clrHeart: #ff5050; --clrWarn: #fbc560; + --clrLink: blue; + --clrLinkVisited: purple; + + /* TODO I don't like these and simply did it for dark mode. To rename. */ + --clrEvMsg: #f4f4f4; + --clrTextEvMsg: #444; + --clrBgAction: #171717; + --clrTextAction: white; /* Font Sizes */ --fsSmall: 12px; @@ -32,3 +40,18 @@ --iconSize: 24px; --iconSizeSmall: 15px; } + +@media (prefers-color-scheme: dark) { + :root { + --clrBg: #0f0f0f; + --clrText: #fff; + --clrPanel: #1f1f1f; + --clrBorder: #282828; + --clrLink: #fb5151; + --clrLinkVisited: #f77; + --clrEvMsg: #353535; + --clrTextEvMsg: white; + --clrBgAction: white; + --clrTextAction: #1f1f1f; + } +} diff --git a/web/index.html b/web/index.html index 58e3f85..2fe8e22 100644 --- a/web/index.html +++ b/web/index.html @@ -90,7 +90,7 @@ @@ -131,7 +131,7 @@ --> + @@ -152,7 +152,7 @@
diff --git a/web/js/ui/render.js b/web/js/ui/render.js index 81e9a1f..d20b8ea 100644 --- a/web/js/ui/render.js +++ b/web/js/ui/render.js @@ -35,7 +35,7 @@ function render_thread_collapsed(model, ev, opts) return `
Read More - +
` } @@ -197,7 +197,7 @@ function render_event(damus, view, ev, opts={}) { ${render_name(ev.pubkey, profile)} ${delta}
@@ -246,7 +246,7 @@ function render_action_bar(damus, ev, can_delete) { if (can_delete) delete_html = ` ` const groups = get_reactions(damus, ev.id) @@ -256,10 +256,10 @@ function render_action_bar(damus, ev, can_delete) { return `
${delete_html} @@ -345,7 +345,7 @@ function render_loading_spinner() return `
- +
` }