From 46b4393178792f7aa8fff0c7ae81f5b59c0b5c73 Mon Sep 17 00:00:00 2001 From: utkarsh Date: Sun, 9 May 2021 00:47:23 +0530 Subject: [PATCH] Commit --- ToggleButton.css | 127 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 127 insertions(+) create mode 100644 ToggleButton.css diff --git a/ToggleButton.css b/ToggleButton.css new file mode 100644 index 0000000..a22ce41 --- /dev/null +++ b/ToggleButton.css @@ -0,0 +1,127 @@ +:root { + --primary-color: #302AE6; + --secondary-color: #536390; + --font-color: #424242; + --bg-color: #fff; + --heading-color: #292922; +} + +[data-theme="dark"] { + --primary-color: #9A97F3; + --secondary-color: #818cab; + --font-color: #e1e1ff; + --bg-color: #161625; + --heading-color: #818cab; +} +body { + background-color: var(--bg-color); + color: var(--font-color); + +} + +h1 { + color: var(--secondary-color); + + +} + +a { + color: var(--primary-color); + + +} +
+ + Enable Dark Mode! +
+.theme-switch-wrapper { + display: flex; + align-items: center; + + em { + margin-left: 10px; + font-size: 1rem; + } +} +.theme-switch { + display: inline-block; + height: 34px; + position: relative; + width: 60px; +} + +.theme-switch input { + display:none; +} + +.slider { + background-color: #ccc; + bottom: 0; + cursor: pointer; + left: 0; + position: absolute; + right: 0; + top: 0; + transition: .4s; +} + +.slider:before { + background-color: #fff; + bottom: 4px; + content: ""; + height: 26px; + left: 4px; + position: absolute; + transition: .4s; + width: 26px; +} + +input:checked + .slider { + background-color: #66bb6a; +} + +input:checked + .slider:before { + transform: translateX(26px); +} + +.slider.round { + border-radius: 34px; +} + +.slider.round:before { + border-radius: 50%; +} +const toggleSwitch = document.querySelector('.theme-switch input[type="checkbox"]'); + +function switchTheme(e) { + if (e.target.checked) { + document.documentElement.setAttribute('data-theme', 'dark'); + } + else { + document.documentElement.setAttribute('data-theme', 'light'); + } +} + +toggleSwitch.addEventListener('change', switchTheme, false); +function switchTheme(e) { + if (e.target.checked) { + document.documentElement.setAttribute('data-theme', 'dark'); + localStorage.setItem('theme', 'dark'); + } + else { + document.documentElement.setAttribute('data-theme', 'light'); + localStorage.setItem('theme', 'light'); + } +} +const currentTheme = localStorage.getItem('theme') ? localStorage.getItem('theme') : null; + +if (currentTheme) { + document.documentElement.setAttribute('data-theme', currentTheme); + + if (currentTheme === 'dark') { + toggleSwitch.checked = true; + } +}