From eb53a4caf8aa9977d5db4969665c49a16efb2f39 Mon Sep 17 00:00:00 2001
From: weru <onewesh@gmail.com>
Date: Tue, 06 Oct 2020 09:55:35 +0000
Subject: [PATCH] enable user to toggle color mode
---
assets/sass/_nav.sass | 9 +
assets/js/index.js | 73 ++++++++++++++++-
exampleSite/resources/_gen/assets/sass/sass/main.sass_ca26857cefa9076967ab300682271513.content | 2
assets/sass/_base.sass | 36 ++++----
assets/sass/_variables.sass | 30 +++++--
assets/sass/_components.sass | 47 +++++++++++
layouts/partials/mode.html | 4 +
exampleSite/resources/_gen/assets/sass/sass/main.sass_ca26857cefa9076967ab300682271513.json | 2
8 files changed, 165 insertions(+), 38 deletions(-)
diff --git a/assets/js/index.js b/assets/js/index.js
index a7e6b9f..e6b5f32 100644
--- a/assets/js/index.js
+++ b/assets/js/index.js
@@ -207,13 +207,74 @@
}
})();
- (function lazyLoadImages() {
- const images = elems('img');
- images.forEach(function(image){
- // supported natively by most modern browsers.
- image.loading = "lazy";
+ const light = 'lit';
+ const dark = 'dim';
+ const storageKey = 'colorMode';
+ const key = '--color-mode';
+ const data = 'data-mode';
+ const bank = window.localStorage;
+
+ function currentMode() {
+ let acceptableChars = light + dark;
+ acceptableChars = [...acceptableChars];
+ let mode = getComputedStyle(doc).getPropertyValue(key).replace(/\"/g, '').trim();
+
+ mode = [...mode].filter(function(letter){
+ return acceptableChars.includes(letter);
});
- })();
+
+ return mode.join('');
+ }
+
+ function changeMode(isDarkMode) {
+ if(isDarkMode) {
+ bank.setItem(storageKey, light)
+ elemAttribute(doc, data, light);
+ } else {
+ bank.setItem(storageKey, dark);
+ elemAttribute(doc, data, dark);
+ }
+ }
+
+ (function lazy() {
+ function lazyLoadMedia(element) {
+ let mediaItems = elems(element);
+ if(mediaItems) {
+ Array.from(mediaItems).forEach(function(item) {
+ item.loading = "lazy";
+ });
+ }
+ }
+ lazyLoadMedia('iframe');
+ lazyLoadMedia('img');
+ })();
+
+ function setUserColorMode(mode = false) {
+ const isDarkMode = currentMode() == dark;
+ const storedMode = bank.getItem(storageKey);
+ if(storedMode) {
+ if(mode) {
+ changeMode(isDarkMode);
+ } else {
+ elemAttribute(doc, data, storedMode);
+ }
+ } else {
+ if(mode === true) {
+ changeMode(isDarkMode)
+ }
+ }
+ }
+
+ setUserColorMode();
+
+ doc.addEventListener('click', function(event) {
+ let target = event.target;
+ let modeClass = 'color_choice';
+ let isModeToggle = containsClass(target, modeClass);
+ if(isModeToggle) {
+ setUserColorMode(true);
+ }
+ });
}
window.addEventListener('load', loadActions());
diff --git a/assets/sass/_base.sass b/assets/sass/_base.sass
index 5ef8083..603732d 100644
--- a/assets/sass/_base.sass
+++ b/assets/sass/_base.sass
@@ -4,7 +4,7 @@
margin: 0
padding: 0
-body, html
+body, html
scroll-behavior: smooth
font-kerning: normal
-webkit-text-size-adjust: 100%
@@ -31,11 +31,11 @@
color: inherit
p
padding: 1rem 0
-li
+li
padding: 0.25rem 0
p
padding: 0.5rem 0
-blockquote
+blockquote
opacity: 0.8
padding: 1rem
position: relative
@@ -47,7 +47,7 @@
background-size: 5rem
background-position: 50% 50%
position: relative
- &::before
+ &::before
content: ""
padding: 1px
position: absolute
@@ -55,7 +55,7 @@
bottom: 0
left: 0
background: var(--theme)
-
+
p
padding-left: 0.5rem 0 !important
font-size: 1.1rem !important
@@ -86,7 +86,7 @@
img, svg, figure
max-width: 100%
vertical-align: middle
-img
+img
height: auto
margin: 1rem auto
padding: 0
@@ -99,20 +99,20 @@
ol, ul
list-style: none
-b, strong
+b, strong
font-weight: 500
-hr
+hr
border: none
padding: 0.5px
background: var(--text)
opacity: 0.5
margin: 1rem 0
-aside
+aside
position: sticky
- top: 5rem
- max-height: 84vh
+ top: 2.5rem
+ max-height: 90vh
overflow-y: auto
background: var(--accent)
padding: 1rem 1.5rem
@@ -124,24 +124,24 @@
padding: 0
list-style: none
-th, td
+th, td
padding: 0.5rem
font-weight: 400 !important
- &:not(:first-child)
+ &:not(:first-child)
padding-left: 1.5rem
thead
background: var(--theme)
color: var(--light)
- font-weight: 400
+ font-weight: 400
text-align: left
-tbody
- tr
- &:nth-child(even)
+tbody
+ tr
+ &:nth-child(even)
background-color: var(--gray)
box-shadow: 0 1rem 0.75rem -0.75rem rgba(0,0,0,0.07)
-
+
table
margin: 1.5rem 0
width: 100%
diff --git a/assets/sass/_components.sass b/assets/sass/_components.sass
index 5d55f29..b790def 100644
--- a/assets/sass/_components.sass
+++ b/assets/sass/_components.sass
@@ -211,4 +211,49 @@
grid-template-columns: 1fr 1.5rem
&_meta
- margin: 0.5rem 0
\ No newline at end of file
+ margin: 0.5rem 0
+
+.color
+ &_mode
+ height: 1.5rem
+ display: grid
+ grid-template-columns: 1fr 3rem
+ align-items: center
+ margin: 0 1.5rem
+
+ &_choice
+ outline: none
+ border: none
+ -webkit-appearance: none
+ height: 1rem
+ position: relative
+ &::before, &::after
+ content: ""
+ top: 0
+ bottom: 0
+ left: 0
+ position: absolute
+ height: 1rem
+ background: var(--theme)
+
+ &, &::before
+ width: 2.75rem
+ border-radius: 1rem
+ cursor: pointer
+ transition: transform 0.5s cubic-bezier(0.075, 0.82, 0.165, 1)
+ box-shadow: 0 0.25rem 1rem rgba(0,0,0,0.15)
+
+ &::before
+ box-shadow: 0 1rem 2rem rgba(0,0,0,0.17)
+ z-index: 2
+ right: 0
+ filter: brightness(0.75)
+
+ &::after
+ width: 1rem
+ border-radius: 50%
+ z-index: 3
+ transform: scale(1.67)
+ transform-origin: 50% 50%
+ transition: transform 0.5s cubic-bezier(.19,1,.22,1)
+ will-change: transform
\ No newline at end of file
diff --git a/assets/sass/_nav.sass b/assets/sass/_nav.sass
index 1ee17af..5712c1e 100644
--- a/assets/sass/_nav.sass
+++ b/assets/sass/_nav.sass
@@ -11,13 +11,12 @@
picture, img
max-width: 10rem
&_header
- position: fixed
+ position: absolute
top: 0
left: 0
width: 100%
background-color: var(--bg)
z-index: 999999
- border-bottom: 1px solid var(--border-color)
&_toggle
position: absolute
top: 0
@@ -43,3 +42,9 @@
&-link
display: inline-flex
padding: 0.5rem 1rem
+ &-item
+ display: grid
+ align-items: center
+ .search
+ @media screen and (min-width: 992px)
+ margin-right: 1.5rem
diff --git a/assets/sass/_variables.sass b/assets/sass/_variables.sass
index 3d2e821..e0bf38c 100644
--- a/assets/sass/_variables.sass
+++ b/assets/sass/_variables.sass
@@ -1,4 +1,5 @@
html
+ --color-mode: "lit"
--light: #fff
--dark: rgb(28,28,30)
--haze: #f2f5f2
@@ -11,16 +12,27 @@
--border-color: #eee
--theme: rgb(52,199,89)
- &.has_magic
+ @mixin darkmode
+ --color-mode: "dim"
+ --theme: rgb(48,209,88)
+ --bg: var(--dark)
+ --text: #eee
+ --accent: var(--bubble)
+ --overlay: var(--bubble)
+ --border-color: transparent
+ *
+ box-shadow: none !important
+
+ &[data-mode="dim"]
+ @include darkmode
+ .color
+ &_choice
+ &::after
+ transform: translateX(1.75rem) scale(1.67)
+
+ &.has_magic:not(.nodarkmode):not([data-mode="lit"])
@media (prefers-color-scheme: dark)
- --theme: rgb(48,209,88)
- --bg: var(--dark)
- --text: #eee
- --accent: var(--bubble)
- --overlay: var(--bubble)
- --border-color: transparent
- *
- box-shadow: none !important
+ @include darkmode
%narrow
max-width: 750px
diff --git a/exampleSite/resources/_gen/assets/sass/sass/main.sass_ca26857cefa9076967ab300682271513.content b/exampleSite/resources/_gen/assets/sass/sass/main.sass_ca26857cefa9076967ab300682271513.content
index 9ccb4a1..fb5874c 100644
--- a/exampleSite/resources/_gen/assets/sass/sass/main.sass_ca26857cefa9076967ab300682271513.content
+++ b/exampleSite/resources/_gen/assets/sass/sass/main.sass_ca26857cefa9076967ab300682271513.content
@@ -1,3 +1,3 @@
-html{--light: #fff;--dark: rgb(28,28,30);--haze: #f2f5f2;--bubble: rgb(36,36,38);--accent: var(--gray);--bg: var(--light);--overlay: var(--light);--text: #111;--font: 'Metropolis', sans-serif;--border-color: #eee;--theme: rgb(52,199,89)}@media (prefers-color-scheme: dark){html.has_magic{--theme: rgb(48,209,88);--bg: var(--dark);--text: #eee;--accent: var(--bubble);--overlay: var(--bubble);--border-color: transparent}html.has_magic *{box-shadow:none !important}}*{box-sizing:border-box;-webkit-appearance:none;margin:0;padding:0}body,html{scroll-behavior:smooth;font-kerning:normal;-webkit-text-size-adjust:100%}body{font-family:var(--font);background-color:var(--bg);color:var(--text);font-size:16px;line-height:1.5;max-width:1440px;margin:0 auto;position:relative;font-kerning:normal;display:flex;flex-direction:column;justify-content:space-between;min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{text-decoration:none;color:inherit}p{padding:1rem 0}li{padding:0.25rem 0}li p{padding:0.5rem 0}blockquote{opacity:0.8;padding:1rem;position:relative;quotes:"“" "”" "‘" "’";margin:0.75rem 0;display:flex;flex-flow:row wrap;background-repeat:no-repeat;background-size:5rem;background-position:50% 50%;position:relative}blockquote::before{content:"";padding:1px;position:absolute;top:0;bottom:0;left:0;background:var(--theme)}blockquote p{padding-left:0.5rem 0 !important;font-size:1.1rem !important;width:100%;font-weight:300;font-style:italic}h1,h2,h3,h4,h5{font-family:inherit;font-weight:500;padding:0.33rem 0;color:inherit;line-height:1.35}h1{font-size:200%}h2{font-size:175%}h3{font-size:150%}h4{font-size:125%}h5{font-size:120%}h6{font-size:100%}img,svg,figure{max-width:100%;vertical-align:middle}img{height:auto;margin:1rem auto;padding:0}main{padding-bottom:45px;flex:1}ol,ul{list-style:none}b,strong{font-weight:500}hr{border:none;padding:0.5px;background:var(--text);opacity:0.5;margin:1rem 0}aside{position:sticky;top:5rem;max-height:84vh;overflow-y:auto;background:var(--accent);padding:1rem 1.5rem;padding-bottom:2rem;border-radius:0.25rem}aside h3{position:relative}aside ul{padding:0;list-style:none}th,td{padding:0.5rem;font-weight:400 !important}th:not(:first-child),td:not(:first-child){padding-left:1.5rem}thead{background:var(--theme);color:var(--light);font-weight:400;text-align:left}tbody tr:nth-child(even){background-color:var(--gray);box-shadow:0 1rem 0.75rem -0.75rem rgba(0,0,0,0.07)}table{margin:1.5rem 0;width:100%}.main{flex:1}.page-home h1{font-weight:300}.content ul,.content ol{padding-left:1.1rem}.content ul{list-style:initial}.content ol{list-style:decimal}::placeholder{font-size:1rem}.nav{display:grid;grid-gap:1rem;padding:0 1.5rem !important;align-items:center;background-color:var(--bg)}@media screen and (min-width: 992px){.nav{grid-template-columns:10rem 1fr}}.nav_brand{position:relative}.nav_brand picture,.nav_brand img{max-width:10rem}.nav_header{position:fixed;top:0;left:0;width:100%;background-color:var(--bg);z-index:999999;border-bottom:1px solid var(--border-color)}.nav_toggle{position:absolute;top:0;bottom:0;width:3rem;display:grid;align-items:center;text-align:center;right:0;color:var(--text)}@media screen and (min-width: 992px){.nav_toggle{display:none}}.nav_body{display:flex;position:fixed;height:100vh;transform:translateX(-101vw)}@media screen and (min-width: 992px){.nav_body{transform:translateX(0);position:relative;height:initial;justify-content:flex-end}}.nav-link{display:inline-flex;padding:0.5rem 1rem}.section_title{font-size:1.1rem}.section_link{font-size:1rem;font-weight:400}.sidebar-link{display:grid;padding:0.2rem 0}.toc{border-left:2px solid var(--theme);padding:0 1rem;height:0;overflow:hidden}.toc_active{height:initial}.search{flex:1;display:flex;justify-content:flex-end;position:relative}.search_field{padding:0.5rem 1.5rem 0.5rem 2.5rem;border-radius:1.5rem;width:13.5rem;outline:none;border:none;box-shadow:0 1rem 4rem rgba(0,0,0,0.17);font-size:1rem}.search_label{background-image:url(/images/search.svg);width:1.25rem;height:1.25rem;position:absolute;right:11.5rem;top:0.5rem;opacity:0.33}.search_result{padding:0.5rem 1rem}.search_result:hover{background-color:var(--theme)}.search_results{width:13.5rem;background-color:var(--overlay);border-radius:0 0 0.25rem 0.25rem;box-shadow:0 1rem 4rem rgba(0,0,0,0.17);position:absolute;top:125%;display:grid;overflow:hidden}.search_results:empty{display:none}.search_title{padding:0.5rem 1rem 0.5rem 1rem;background:var(--theme);font-size:0.9rem;opacity:0.87;text-transform:uppercase}.button{background-color:var(--theme);color:var(--light);border-radius:0.25rem;display:inline-grid;padding:0.75rem 1.5rem;text-align:center}.button:hover{opacity:0.84}.button+.button{background-color:var(--haze);color:var(--dark)}@media screen and (min-width: 20rem){.button+.button{margin-left:0.5rem}}.video{overflow:hidden;padding-bottom:56.25%;position:relative;height:0;margin:1.5rem 0;border-radius:0.6rem;background-color:var(--bg);box-shadow:0 1rem 2rem rgba(0,0,0,0.17)}.video iframe{left:0;top:0;height:100%;width:100%;border:none;position:absolute;transform:scale(1.02)}.icon{width:1.1rem;height:1.1rem;display:inline-flex;justify-content:center;align-items:center;margin:0 0.5rem}.link{opacity:0;position:relative}.link_owner:hover .link{opacity:1}.link_yank{opacity:1}.link_yanked{position:absolute;right:-1rem;top:-2rem;background-color:var(--theme);color:var(--light);width:7rem;padding:0.25rem 0.5rem;font-size:0.9rem;border-radius:1rem;text-align:center}.link_yanked::after{position:absolute;top:1rem;content:"";border-color:var(--theme) transparent;border-style:solid;border-width:1rem 1rem 0 1rem;height:0;width:0;transform-origin:50% 50%;transform:rotate(145deg);right:0.45rem}.gallery{width:100%;column-count:3;column-gap:1rem}@media screen and (max-width: 667px){.gallery{column-count:2}}.gallery_item{background-color:transparent;margin:0 0 1rem}.gallery_image{margin:0 auto}.pager{display:flex;justify-content:space-between;align-items:center;padding-top:2rem;margin:2rem 0}.pager svg{filter:opacity(0.75);width:1.25rem;height:1rem;transform-origin:50% 50%}.pager_lean{justify-content:flex-end}.pager_label{max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.pager_link{padding:0.5rem 1rem;border-radius:0.25rem;width:12.5rem;max-width:initial;position:relative;display:flex;align-items:center;text-align:center;justify-content:center}.pager_link::before,.pager_link::after{background-image:url(../images/next.svg);height:0.8rem;width:0.8rem;background-size:100%;background-repeat:no-repeat;transform-origin:50% 50%}.pager_item{display:flex;flex-direction:column;flex:1;max-width:48%}.pager_item.prev{align-items:flex-start}.pager_item.next{align-items:flex-end}.pager_item.next::after{content:""}.pager_item.prev .pager_link::before{content:"";transform:rotate(180deg);margin-right:0.67rem}.pager_item.next .pager_link::after{content:"";margin-left:0.67rem}.pager_item.next .pager_link{grid-template-columns:1fr 1.5rem}.pager_meta{margin:0.5rem 0}.wrap{max-width:1240px}.wrap,.wrap{width:100%;padding:0 25px;margin:0 auto}.pt-1{padding-top:1.5rem}.pb-1{padding-bottom:1.5rem}.mt-1{margin-top:1.5rem}.mb-1{margin-bottom:1.5rem}.pt-2{padding-top:3rem}.pb-2{padding-bottom:3rem}.mt-2{margin-top:3rem}.mb-2{margin-bottom:3rem}.pt-3{padding-top:4.5rem}.pb-3{padding-bottom:4.5rem}.mt-3{margin-top:4.5rem}.mb-3{margin-bottom:4.5rem}.pt-4{padding-top:6rem}.pb-4{padding-bottom:6rem}.mt-4{margin-top:6rem}.mb-4{margin-bottom:6rem}.grid-2,.grid-3,.grid-4,.grid-auto,.grid-reverse{display:grid;grid-template-columns:1fr}[class*='grid-']{grid-gap:2rem}@media screen and (min-width: 42rem){.grid-auto{grid-template-columns:2fr 5fr}.grid-reverse{grid-template-columns:3fr 1fr}.grid-2{grid-template-columns:1fr 1fr}.grid-3{grid-template-columns:repeat(auto-fit, minmax(19rem, 1fr))}.grid-4{grid-template-columns:repeat(auto-fit, minmax(16rem, 1fr))}}.active{color:var(--theme)}.is{background:var(--theme);color:var(--light)}code{min-width:100%;max-width:100%}code.noClass{color:orange}pre{display:grid;padding:1rem;overflow-x:auto}.highlight{display:grid;margin:1.25rem 0;box-shadow:0 0 2.5rem rgba(0,0,0,0.12);border-radius:4px;overflow:hidden}.highlight table{margin:0;border-collapse:collapse;background-color:var(--overlay)}.highlight .highlight{margin:0}.lntd:first-child{width:2.75rem;background-color:var(--theme);color:var(--light)}.lntd:first-child pre{padding:0}.lntd:first-child code{display:flex;flex-flow:column;align-items:center}.lntd:last-child{padding-left:0}.err{color:#a61717;background-color:#e3d2d2}.hl{display:block;width:100%;background-color:#ffffcc}.ln{margin-right:0.4rem;padding:0 0.4em 0 0.4rem;color:#666}.k,.kc,.kd,.kn,.kp,.kr,.kt,.nt{color:#6ab825;font-weight:500}.kn,.kp{font-weight:400}.nb,.no,.nv{color:#24909d}.nc,.nf,.nn{color:#447fcf}.s,.sa,.sb,.sc,.dl,.sd,.s2,.se,.sh,.si,.sx,.sr,.s1,.s{color:#ed9d13}.m,.mb,.mf,.mh,.mi,.il,.mo{color:#3677a9}.ow{color:#6ab825;font-weight:500}.c,.ch,.cm,.c1{color:#999;font-style:italic}.cs{color:#e50808;background-color:#520000;font-weight:500}.cp,.cpf{color:#cd2828;font-weight:500}.gd,.gr{color:#d22323}.ge{font-style:italic}.gh,.gu,.nd,.na,.ne{color:#ffa500;font-weight:500}.gi{color:#589819}.go{color:#ccc}.gp{color:#aaa}.gs{font-weight:500}.gt{color:#d22323}.w{color:#666}@font-face{font-family:'Metropolis';font-style:normal;font-weight:400;src:local("Metropolis Regular"),local("Metropolis-Regular"),url("../fonts/Metropolis-Regular.woff2") format("woff2"),url("../fonts/Metropolis-Regular.woff") format("woff")}@font-face{font-family:'Metropolis';font-style:normal;font-weight:300;src:local("Metropolis Light"),local("Metropolis-Light"),url("../fonts/Metropolis-Light.woff2") format("woff2"),url("../fonts/Metropolis-Light.woff") format("woff")}@font-face{font-family:'Metropolis';font-style:italic;font-weight:300;src:local("Metropolis Light Italic"),local("Metropolis-LightItalic"),url("../fonts/Metropolis-LightItalic.woff2") format("woff2"),url("../fonts/Metropolis-LightItalic.woff") format("woff")}@font-face{font-family:'Metropolis';font-style:normal;font-weight:500;src:local("Metropolis Medium"),local("Metropolis-Medium"),url("../fonts/Metropolis-Medium.woff2") format("woff2"),url("../fonts/Metropolis-Medium.woff") format("woff")}@font-face{font-family:'Metropolis';font-style:italic;font-weight:500;src:local("Metropolis Medium Italic"),local("Metropolis-MediumItalic"),url("../fonts/Metropolis-MediumItalic.woff2") format("woff2"),url("../fonts/Metropolis-MediumItalic.woff") format("woff")}@font-face{font-family:'Cookie';font-style:normal;font-weight:400;src:local("Cookie-Regular"),url("../fonts/cookie-v10-latin-regular.woff2") format("woff2"),url("../fonts/cookie-v10-latin-regular.woff") format("woff")}footer{min-height:150px}
+html{--color-mode: "lit";--light: #fff;--dark: rgb(28,28,30);--haze: #f2f5f2;--bubble: rgb(36,36,38);--accent: var(--gray);--bg: var(--light);--overlay: var(--light);--text: #111;--font: 'Metropolis', sans-serif;--border-color: #eee;--theme: rgb(52,199,89)}html[data-mode="dim"]{--color-mode: "dim";--theme: rgb(48,209,88);--bg: var(--dark);--text: #eee;--accent: var(--bubble);--overlay: var(--bubble);--border-color: transparent}html[data-mode="dim"] *{box-shadow:none !important}html[data-mode="dim"] .color_choice::after{transform:translateX(1.75rem) scale(1.67)}@media (prefers-color-scheme: dark){html.has_magic:not(.nodarkmode):not([data-mode="lit"]){--color-mode: "dim";--theme: rgb(48,209,88);--bg: var(--dark);--text: #eee;--accent: var(--bubble);--overlay: var(--bubble);--border-color: transparent}html.has_magic:not(.nodarkmode):not([data-mode="lit"]) *{box-shadow:none !important}}*{box-sizing:border-box;-webkit-appearance:none;margin:0;padding:0}body,html{scroll-behavior:smooth;font-kerning:normal;-webkit-text-size-adjust:100%}body{font-family:var(--font);background-color:var(--bg);color:var(--text);font-size:16px;line-height:1.5;max-width:1440px;margin:0 auto;position:relative;font-kerning:normal;display:flex;flex-direction:column;justify-content:space-between;min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{text-decoration:none;color:inherit}p{padding:1rem 0}li{padding:0.25rem 0}li p{padding:0.5rem 0}blockquote{opacity:0.8;padding:1rem;position:relative;quotes:"“" "”" "‘" "’";margin:0.75rem 0;display:flex;flex-flow:row wrap;background-repeat:no-repeat;background-size:5rem;background-position:50% 50%;position:relative}blockquote::before{content:"";padding:1px;position:absolute;top:0;bottom:0;left:0;background:var(--theme)}blockquote p{padding-left:0.5rem 0 !important;font-size:1.1rem !important;width:100%;font-weight:300;font-style:italic}h1,h2,h3,h4,h5{font-family:inherit;font-weight:500;padding:0.33rem 0;color:inherit;line-height:1.35}h1{font-size:200%}h2{font-size:175%}h3{font-size:150%}h4{font-size:125%}h5{font-size:120%}h6{font-size:100%}img,svg,figure{max-width:100%;vertical-align:middle}img{height:auto;margin:1rem auto;padding:0}main{padding-bottom:45px;flex:1}ol,ul{list-style:none}b,strong{font-weight:500}hr{border:none;padding:0.5px;background:var(--text);opacity:0.5;margin:1rem 0}aside{position:sticky;top:2.5rem;max-height:90vh;overflow-y:auto;background:var(--accent);padding:1rem 1.5rem;padding-bottom:2rem;border-radius:0.25rem}aside h3{position:relative}aside ul{padding:0;list-style:none}th,td{padding:0.5rem;font-weight:400 !important}th:not(:first-child),td:not(:first-child){padding-left:1.5rem}thead{background:var(--theme);color:var(--light);font-weight:400;text-align:left}tbody tr:nth-child(even){background-color:var(--gray);box-shadow:0 1rem 0.75rem -0.75rem rgba(0,0,0,0.07)}table{margin:1.5rem 0;width:100%}.main{flex:1}.page-home h1{font-weight:300}.content ul,.content ol{padding-left:1.1rem}.content ul{list-style:initial}.content ol{list-style:decimal}::placeholder{font-size:1rem}.nav{display:grid;grid-gap:1rem;padding:0 1.5rem !important;align-items:center;background-color:var(--bg)}@media screen and (min-width: 992px){.nav{grid-template-columns:10rem 1fr}}.nav_brand{position:relative}.nav_brand picture,.nav_brand img{max-width:10rem}.nav_header{position:absolute;top:0;left:0;width:100%;background-color:var(--bg);z-index:999999}.nav_toggle{position:absolute;top:0;bottom:0;width:3rem;display:grid;align-items:center;text-align:center;right:0;color:var(--text)}@media screen and (min-width: 992px){.nav_toggle{display:none}}.nav_body{display:flex;position:fixed;height:100vh;transform:translateX(-101vw)}@media screen and (min-width: 992px){.nav_body{transform:translateX(0);position:relative;height:initial;justify-content:flex-end}}.nav-link{display:inline-flex;padding:0.5rem 1rem}.nav-item{display:grid;align-items:center}@media screen and (min-width: 992px){.nav-item .search{margin-right:1.5rem}}.section_title{font-size:1.1rem}.section_link{font-size:1rem;font-weight:400}.sidebar-link{display:grid;padding:0.2rem 0}.toc{border-left:2px solid var(--theme);padding:0 1rem;height:0;overflow:hidden}.toc_active{height:initial}.search{flex:1;display:flex;justify-content:flex-end;position:relative}.search_field{padding:0.5rem 1.5rem 0.5rem 2.5rem;border-radius:1.5rem;width:13.5rem;outline:none;border:none;box-shadow:0 1rem 4rem rgba(0,0,0,0.17);font-size:1rem}.search_label{background-image:url(/images/search.svg);width:1.25rem;height:1.25rem;position:absolute;right:11.5rem;top:0.5rem;opacity:0.33}.search_result{padding:0.5rem 1rem}.search_result:hover{background-color:var(--theme)}.search_results{width:13.5rem;background-color:var(--overlay);border-radius:0 0 0.25rem 0.25rem;box-shadow:0 1rem 4rem rgba(0,0,0,0.17);position:absolute;top:125%;display:grid;overflow:hidden}.search_results:empty{display:none}.search_title{padding:0.5rem 1rem 0.5rem 1rem;background:var(--theme);font-size:0.9rem;opacity:0.87;text-transform:uppercase}.button{background-color:var(--theme);color:var(--light);border-radius:0.25rem;display:inline-grid;padding:0.75rem 1.5rem;text-align:center}.button:hover{opacity:0.84}.button+.button{background-color:var(--haze);color:var(--dark)}@media screen and (min-width: 20rem){.button+.button{margin-left:0.5rem}}.video{overflow:hidden;padding-bottom:56.25%;position:relative;height:0;margin:1.5rem 0;border-radius:0.6rem;background-color:var(--bg);box-shadow:0 1rem 2rem rgba(0,0,0,0.17)}.video iframe{left:0;top:0;height:100%;width:100%;border:none;position:absolute;transform:scale(1.02)}.icon{width:1.1rem;height:1.1rem;display:inline-flex;justify-content:center;align-items:center;margin:0 0.5rem}.link{opacity:0;position:relative}.link_owner:hover .link{opacity:1}.link_yank{opacity:1}.link_yanked{position:absolute;right:-1rem;top:-2rem;background-color:var(--theme);color:var(--light);width:7rem;padding:0.25rem 0.5rem;font-size:0.9rem;border-radius:1rem;text-align:center}.link_yanked::after{position:absolute;top:1rem;content:"";border-color:var(--theme) transparent;border-style:solid;border-width:1rem 1rem 0 1rem;height:0;width:0;transform-origin:50% 50%;transform:rotate(145deg);right:0.45rem}.gallery{width:100%;column-count:3;column-gap:1rem}@media screen and (max-width: 667px){.gallery{column-count:2}}.gallery_item{background-color:transparent;margin:0 0 1rem}.gallery_image{margin:0 auto}.pager{display:flex;justify-content:space-between;align-items:center;padding-top:2rem;margin:2rem 0}.pager svg{filter:opacity(0.75);width:1.25rem;height:1rem;transform-origin:50% 50%}.pager_lean{justify-content:flex-end}.pager_label{max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.pager_link{padding:0.5rem 1rem;border-radius:0.25rem;width:12.5rem;max-width:initial;position:relative;display:flex;align-items:center;text-align:center;justify-content:center}.pager_link::before,.pager_link::after{background-image:url(../images/next.svg);height:0.8rem;width:0.8rem;background-size:100%;background-repeat:no-repeat;transform-origin:50% 50%}.pager_item{display:flex;flex-direction:column;flex:1;max-width:48%}.pager_item.prev{align-items:flex-start}.pager_item.next{align-items:flex-end}.pager_item.next::after{content:""}.pager_item.prev .pager_link::before{content:"";transform:rotate(180deg);margin-right:0.67rem}.pager_item.next .pager_link::after{content:"";margin-left:0.67rem}.pager_item.next .pager_link{grid-template-columns:1fr 1.5rem}.pager_meta{margin:0.5rem 0}.color_mode{height:1.5rem;display:grid;grid-template-columns:1fr 3rem;align-items:center;margin:0 1.5rem}.color_choice{outline:none;border:none;-webkit-appearance:none;height:1rem;position:relative}.color_choice::before,.color_choice::after{content:"";top:0;bottom:0;left:0;position:absolute;height:1rem;background:var(--theme)}.color_choice,.color_choice::before{width:2.75rem;border-radius:1rem;cursor:pointer;transition:transform 0.5s cubic-bezier(0.075, 0.82, 0.165, 1);box-shadow:0 0.25rem 1rem rgba(0,0,0,0.15)}.color_choice::before{box-shadow:0 1rem 2rem rgba(0,0,0,0.17);z-index:2;right:0;filter:brightness(0.75)}.color_choice::after{width:1rem;border-radius:50%;z-index:3;transform:scale(1.67);transform-origin:50% 50%;transition:transform 0.5s cubic-bezier(0.19, 1, 0.22, 1);will-change:transform}.wrap{max-width:1240px}.wrap,.wrap{width:100%;padding:0 25px;margin:0 auto}.pt-1{padding-top:1.5rem}.pb-1{padding-bottom:1.5rem}.mt-1{margin-top:1.5rem}.mb-1{margin-bottom:1.5rem}.pt-2{padding-top:3rem}.pb-2{padding-bottom:3rem}.mt-2{margin-top:3rem}.mb-2{margin-bottom:3rem}.pt-3{padding-top:4.5rem}.pb-3{padding-bottom:4.5rem}.mt-3{margin-top:4.5rem}.mb-3{margin-bottom:4.5rem}.pt-4{padding-top:6rem}.pb-4{padding-bottom:6rem}.mt-4{margin-top:6rem}.mb-4{margin-bottom:6rem}.grid-2,.grid-3,.grid-4,.grid-auto,.grid-reverse{display:grid;grid-template-columns:1fr}[class*='grid-']{grid-gap:2rem}@media screen and (min-width: 42rem){.grid-auto{grid-template-columns:2fr 5fr}.grid-reverse{grid-template-columns:3fr 1fr}.grid-2{grid-template-columns:1fr 1fr}.grid-3{grid-template-columns:repeat(auto-fit, minmax(19rem, 1fr))}.grid-4{grid-template-columns:repeat(auto-fit, minmax(16rem, 1fr))}}.active{color:var(--theme)}.is{background:var(--theme);color:var(--light)}code{min-width:100%;max-width:100%}code.noClass{color:orange}pre{display:grid;padding:1rem;overflow-x:auto}.highlight{display:grid;margin:1.25rem 0;box-shadow:0 0 2.5rem rgba(0,0,0,0.12);border-radius:4px;overflow:hidden}.highlight table{margin:0;border-collapse:collapse;background-color:var(--overlay)}.highlight .highlight{margin:0}.lntd:first-child{width:2.75rem;background-color:var(--theme);color:var(--light)}.lntd:first-child pre{padding:0}.lntd:first-child code{display:flex;flex-flow:column;align-items:center}.lntd:last-child{padding-left:0}.err{color:#a61717;background-color:#e3d2d2}.hl{display:block;width:100%;background-color:#ffffcc}.ln{margin-right:0.4rem;padding:0 0.4em 0 0.4rem;color:#666}.k,.kc,.kd,.kn,.kp,.kr,.kt,.nt{color:#6ab825;font-weight:500}.kn,.kp{font-weight:400}.nb,.no,.nv{color:#24909d}.nc,.nf,.nn{color:#447fcf}.s,.sa,.sb,.sc,.dl,.sd,.s2,.se,.sh,.si,.sx,.sr,.s1,.s{color:#ed9d13}.m,.mb,.mf,.mh,.mi,.il,.mo{color:#3677a9}.ow{color:#6ab825;font-weight:500}.c,.ch,.cm,.c1{color:#999;font-style:italic}.cs{color:#e50808;background-color:#520000;font-weight:500}.cp,.cpf{color:#cd2828;font-weight:500}.gd,.gr{color:#d22323}.ge{font-style:italic}.gh,.gu,.nd,.na,.ne{color:#ffa500;font-weight:500}.gi{color:#589819}.go{color:#ccc}.gp{color:#aaa}.gs{font-weight:500}.gt{color:#d22323}.w{color:#666}@font-face{font-family:'Metropolis';font-style:normal;font-weight:400;src:local("Metropolis Regular"),local("Metropolis-Regular"),url("../fonts/Metropolis-Regular.woff2") format("woff2"),url("../fonts/Metropolis-Regular.woff") format("woff")}@font-face{font-family:'Metropolis';font-style:normal;font-weight:300;src:local("Metropolis Light"),local("Metropolis-Light"),url("../fonts/Metropolis-Light.woff2") format("woff2"),url("../fonts/Metropolis-Light.woff") format("woff")}@font-face{font-family:'Metropolis';font-style:italic;font-weight:300;src:local("Metropolis Light Italic"),local("Metropolis-LightItalic"),url("../fonts/Metropolis-LightItalic.woff2") format("woff2"),url("../fonts/Metropolis-LightItalic.woff") format("woff")}@font-face{font-family:'Metropolis';font-style:normal;font-weight:500;src:local("Metropolis Medium"),local("Metropolis-Medium"),url("../fonts/Metropolis-Medium.woff2") format("woff2"),url("../fonts/Metropolis-Medium.woff") format("woff")}@font-face{font-family:'Metropolis';font-style:italic;font-weight:500;src:local("Metropolis Medium Italic"),local("Metropolis-MediumItalic"),url("../fonts/Metropolis-MediumItalic.woff2") format("woff2"),url("../fonts/Metropolis-MediumItalic.woff") format("woff")}@font-face{font-family:'Cookie';font-style:normal;font-weight:400;src:local("Cookie-Regular"),url("../fonts/cookie-v10-latin-regular.woff2") format("woff2"),url("../fonts/cookie-v10-latin-regular.woff") format("woff")}footer{min-height:150px}
/*# sourceMappingURL=styles.css.map */
\ No newline at end of file
diff --git a/exampleSite/resources/_gen/assets/sass/sass/main.sass_ca26857cefa9076967ab300682271513.json b/exampleSite/resources/_gen/assets/sass/sass/main.sass_ca26857cefa9076967ab300682271513.json
index ec7a9b6..b17241b 100644
--- a/exampleSite/resources/_gen/assets/sass/sass/main.sass_ca26857cefa9076967ab300682271513.json
+++ b/exampleSite/resources/_gen/assets/sass/sass/main.sass_ca26857cefa9076967ab300682271513.json
@@ -1 +1 @@
-{"Target":"css/styles.9afc87051dad26ffc93aa5c2509abab5d319cca524862f7f19f6a5e2431f2689b2825de831c6da8defaeb4e0b43302e012c26b97e7dc49ad22e2d7f8faa31b85.css","MediaType":"text/css","Data":{"Integrity":"sha512-mvyHBR2tJv/JOqXCUJq6tdMZzKUkhi9/Gfal4kMfJomygl3oMcbaje+utOC0MwLgEsJrl+fcSa0i4tf4+qMbhQ=="}}
\ No newline at end of file
+{"Target":"css/styles.3158fcc5c271bd4effd64403cb491c0b38c09aacf8f50229f52d61258b19bdd871814a26ea128e5de125640468a8a0d484cb07db389afd83421f30c3493d17ca.css","MediaType":"text/css","Data":{"Integrity":"sha512-MVj8xcJxvU7/1kQDy0kcCzjAmqz49QIp9S1hJYsZvdhxgUom6hKOXeElZARoqKDUhMsH2zia/YNCHzDDST0Xyg=="}}
\ No newline at end of file
diff --git a/layouts/partials/mode.html b/layouts/partials/mode.html
new file mode 100644
index 0000000..29af215
--- /dev/null
+++ b/layouts/partials/mode.html
@@ -0,0 +1,4 @@
+<div class = 'color_mode'>
+ <label for = 'mode'></label>
+ <input type = 'checkbox' class = 'color_choice' id = 'mode' title="Toggle Dark Mode">
+</div>
--
Gitblit v1.10.0