From 02cbd1c7826af9430fb3424c552bb624108f429c Mon Sep 17 00:00:00 2001 From: Harsh Shandilya Date: Sun, 16 Feb 2020 22:26:49 +0530 Subject: [PATCH] Add a dark theme toggle Signed-off-by: Harsh Shandilya --- assets/css/custom.css | 69 +++++++++++++++++++++++++++++++- layouts/partials/head.html | 12 +++--- layouts/partials/sidebar.html | 74 +++++++++++++++++++++++++++++++++++ 3 files changed, 146 insertions(+), 9 deletions(-) create mode 100644 layouts/partials/sidebar.html diff --git a/assets/css/custom.css b/assets/css/custom.css index 052ab36..622dcce 100644 --- a/assets/css/custom.css +++ b/assets/css/custom.css @@ -5,16 +5,34 @@ --heading-color: #313131; --blockquote-color: #7a7a7a; --post-time-color: #757575; + --color-mode: 'light'; + --color-light: var(--background-color); + --button-icon: var(--icon-moon); + --button-background: var(--sidebar-color); + --button-icon-filter: var(--icon-moon-filter); + --button-color: var(--color-dark); + --icon-sun-filter: invert(0.61) sepia(0.8) saturate(5) hue-rotate(0deg) brightness(0.92); + --icon-moon-filter: invert(0.75); + --color-dark-alpha: rgba(0, 0, 0, 0.1); + --color-light-alpha: rgba(255, 255, 255, 0.9); + --icon-sun: url('data:image/svg+xml,'); + --icon-moon: url('data:image/svg+xml, '); } @media (prefers-color-scheme: dark) { - :root { + :root:not([data-user-color-scheme]) { --sidebar-color: #121212; --background-color: #202020; --text-color: #f0f0f0; --heading-color: white; --blockquote-color: #bababa; --post-time-color: #bababa; + --color-mode: 'dark'; + --button-icon: var(--icon-sun); + --button-icon-filter: var(--icon-sun-filter); + --button-background: var(--sidebar-color); + --button-color: var(--color-dark); + --border-color: var(--color-light-alpha); } .link { @@ -23,13 +41,19 @@ } } -[data-theme="dark"] { +[data-user-color-scheme='dark'] { --sidebar-color: #121212; --background-color: #202020; --text-color: #f0f0f0; --heading-color: white; --blockquote-color: #bababa; --post-time-color: #bababa; + --color-mode: 'dark'; + --button-icon: var(--icon-sun); + --button-icon-filter: var(--icon-sun-filter); + --button-background: var(--sidebar-color); + --button-color: var(--color-dark); + --border-color: var(--color-light-alpha); } div.image-caption { @@ -69,3 +93,44 @@ div.tag-container { .heading-anchor { color: inherit; } + +.visually-hidden { + display: block; + height: 1px; + width: 1px; + overflow: hidden; + clip: rect(1px 1px 1px 1px); + clip: rect(1px, 1px, 1px, 1px); + clip-path: inset(1px); + white-space: nowrap; + position: absolute; +} + +*:focus { + outline: none; +} + +.user-toggle { + margin: 2rem auto 0 auto; + max-width: 20rem; + text-align: center; +} + +.toggle-button { + display: inline-flex; + background: var(--button-background); + color: var(--button-color); + border: none; + font: inherit; + font-size: 1.5rem; + padding: 0.5rem 1rem; +} + +.toggle-button__icon { + background: var(--button-icon); + width: 1.2em; + height: 1.2em; + margin: 0 0 0 0em; + filter: var(--button-icon-filter); + transform: translateY(1px); /* Optical adjustment */ +} diff --git a/layouts/partials/head.html b/layouts/partials/head.html index bed3d54..4eb89f4 100644 --- a/layouts/partials/head.html +++ b/layouts/partials/head.html @@ -2,13 +2,11 @@ diff --git a/layouts/partials/sidebar.html b/layouts/partials/sidebar.html new file mode 100644 index 0000000..df4b778 --- /dev/null +++ b/layouts/partials/sidebar.html @@ -0,0 +1,74 @@ +