diff options
author | Kyle Gunger <kgunger12@gmail.com> | 2024-11-11 23:27:59 -0500 |
---|---|---|
committer | Kyle Gunger <kgunger12@gmail.com> | 2024-11-11 23:27:59 -0500 |
commit | da0556feab1e34e2de5b515c4d075603ef832b24 (patch) | |
tree | 6bb4ff4b649953b57f78247f2719dddb1863dc85 /styles | |
parent | eae67d80d41a6eaa0ac688c33ace802ecfa238c4 (diff) |
Google fonts + thermostat widget
Diffstat (limited to 'styles')
-rw-r--r-- | styles/main.css | 14 | ||||
-rw-r--r-- | styles/themes/base.css | 36 | ||||
-rw-r--r-- | styles/widgets.css | 277 |
3 files changed, 227 insertions, 100 deletions
diff --git a/styles/main.css b/styles/main.css index c9f0728..56e1c50 100644 --- a/styles/main.css +++ b/styles/main.css @@ -1,3 +1,11 @@ +* { + font-family: "Host Grotesk", sans-serif; + font-optical-sizing: auto; + font-weight: 400; + font-style: normal; + font-size: 18px; +} + html, body { font-family: sans-serif; box-sizing: border-box; @@ -6,7 +14,8 @@ html, body { body { min-height: 100vh; margin:0; - background-color: #eee; + background-color: var(--bg); + color: var(--color); } user { @@ -44,9 +53,8 @@ nav { nav .nav-el { margin:10px; - font-weight: bold; text-decoration: none; - color: #ddd; + color: #eee; transition-duration: 0.2s; } diff --git a/styles/themes/base.css b/styles/themes/base.css new file mode 100644 index 0000000..24ff4b9 --- /dev/null +++ b/styles/themes/base.css @@ -0,0 +1,36 @@ +* { + --bg: seashell; + --color: #222; + + /* Gobal colors */ + --w-bg: #ccc; + --w-bg-hover: #eee; + --w-bg-active: #eee; + --w-shadow: #aaa; + + /* Toggle Widget colors */ + --w-tg-inactive-color: #222; + --w-tg-inactive-bg: #0084ff; + --w-tg-inactive-bg-hover: #3ea2ff; + --w-tg-inactive-bg-active: #3ea2ff; + --w-tg-active-color: rgb(255, 128, 0); + --w-tg-active-bg: #dd3; + --w-tg-active-bg-hover: #ee7; + --w-tg-active-bg-active: #ee7; + + /* Slider colors */ + --w-sl-fill: #0084ff; + --w-sl-fill-hover: #2696ff; + --w-sl-fill-active: #3ea2ff; + --w-sl-dots-size: 6px; + --w-sl-dots: var(--w-sl-dots-size) dotted rgba(255, 255, 255, 0.7); + + /* Checkbox */ + --w-cb-inactive-outline: #ccc; + --w-cb-inactive-outline-hover: #eee; + --w-cb-inactive-outline-active: #eee; + --w-cb-active-bg: #1d6; + --w-cb-active-bg-hover: #5f9; + --w-cb-active-bg-active: #5f9; + +}
\ No newline at end of file diff --git a/styles/widgets.css b/styles/widgets.css index 012c692..16bc7f5 100644 --- a/styles/widgets.css +++ b/styles/widgets.css @@ -1,8 +1,8 @@ .widget { display:inline-block; - background-color: var(--top-color); - box-shadow: 1px 1px var(--side-color), 3px 3px var(--side-color), 5px 5px var(--side-color); + background-color: var(--w-bg); + box-shadow: 1px 1px var(--w-shadow), 3px 3px var(--w-shadow), 5px 5px var(--w-shadow); padding:20px; margin: 10px 15px 15px 10px; @@ -13,21 +13,21 @@ overflow: hidden; - --base-unit: 50px; + --base-unit: 36px; min-width: var(--base-unit); min-height: var(--base-unit); cursor:pointer; - position: relative; + position: relative; } .widget:hover { - background-color: var(--top-color-hover); + background-color: var(--w-bg-hover); } .widget:active { - background-color: var(--top-color-active); + background-color: var(--w-bg-active); } /** @@ -55,20 +55,18 @@ .toggle { width: calc(3 * var(--base-unit)); height: calc(3 * var(--base-unit)); - --top-color: #888; - --top-color-hover: #aaa; - --top-color-active: #aaa; - --side-color: #444; - color: #222; + --w-bg: var(--w-tg-inactive-bg); + --w-bg-hover: var(--w-tg-inactive-bg-hover); + --w-bg-active: var(--w-tg-inactive-bg-active); + color: var(--w-tg-inactive-color); font-weight: bold; } .toggle.active { - --top-color: #dd3; - --top-color-hover: #ee7; - --top-color-active: #ee7; - color: rgb(255, 128, 0); - --side-color: rgb(255, 128, 0); + --w-bg: var(--w-tg-active-bg); + --w-bg-hover: var(--w-tg-active-bg-hover); + --w-bg-active: var(--w-tg-active-bg-active); + color: var(--w-tg-active-color); } /** @@ -76,10 +74,6 @@ */ .slider { - --top-color: #888; - --top-color-hover: #aaa; - --top-color-active: #ccc; - --side-color: #444; width: var(--base-unit); height: calc(3 * var(--base-unit)); } @@ -96,7 +90,7 @@ left: 0; height: calc(100% * var(--fill-percent)); width: 100%; - background-color: #0084ff; + background-color: var(--w-sl-fill); transition-duration: 0.15s; @@ -109,32 +103,48 @@ } .slider:hover::before { - background-color: #2696ff; + background-color: var(--w-sl-fill-hover); } .slider:active::before { - background-color: #3ea2ff; + background-color: var(--w-sl-fill-active); } .slider::after { position: absolute; - top: 10px; - left: calc(50% - 2px); - height: calc(100% - 20px); + top: 6px; + left: calc(50% - var(--w-sl-dots-size) / 2); + height: calc(100% - var(--w-sl-dots-size) * 2); width: 0; - border-right: 4px dotted rgba(255, 255, 255, 0.7); + border-right: var(--w-sl-dots); content: ''; } .slider.h::after { - top: calc(50% - 2px); - left: 10px; - width: calc(100% - 20px); + top: calc(50% - var(--w-sl-dots-size) / 2); + left: 6px; + width: calc(100% - var(--w-sl-dots-size) * 2); height: 0; border-right: none; - border-top: 4px dotted rgba(255, 255, 255, 0.7); + border-bottom: var(--w-sl-dots); +} + +.slider > .detail { + display: none; + position: absolute; + left: calc(100% + 5px); + background-color: #0084ff; + color: white; + font-weight: bold; + width: var(--base-unit); + height: var(--base-unit); + clip-path: path(""); +} + +.slider:active > .detail { + } /** @@ -142,58 +152,59 @@ */ .checkbox { - --top-color: rgba(0, 0, 0, 0); - --top-color-hover: rgba(0, 0, 0, 0); - --top-color-active: rgba(0, 0, 0, 0); - --side-color: #444; + --w-bg: rgba(0, 0, 0, 0); + --w-bg-hover: rgba(0, 0, 0, 0); + --w-bg-active: rgba(0, 0, 0, 0); - border: 7px solid #888; - box-shadow: 5px 5px inset var(--side-color), 1px 1px var(--side-color), 3px 3px var(--side-color), 5px 5px var(--side-color); + border: 7px solid var(--w-cb-inactive-outline); + box-shadow: 5px 5px inset var(--w-shadow), 1px 1px var(--w-shadow), 3px 3px var(--w-shadow), 5px 5px var(--w-shadow); padding: 0; } .checkbox:hover { - border-color: #aaa; + border-color: var(--w-cb-inactive-outline-hover); } .checkbox:active { - border: 7px solid #aaa; + border: 7px solid var(--w-cb-inactive-outline-active); } .checkbox::after { - height: 24px; - width: 13px; + height: 24px; + width: 13px; - box-sizing: border-box; + box-sizing: border-box; - position: absolute; + position: absolute; - display: block; + display: block; - border-color: white; - border-style: solid; - border-width: 0px 0px 0px 0px; + border-color: white; + border-style: solid; + border-width: 0px 0px 0px 0px; - top: calc(50% - 13px); - left: calc(50% - 6px); + top: calc(50% - 13px); + left: calc(50% - 6px); - transform-origin: center; - transform: rotate(45deg); + transform-origin: center; + transform: rotate(45deg); - content: ''; + transition-duration: 0.15s; + + content: ''; } .checkbox.active { - --top-color: green; - --top-color-hover: lightgreen; - --top-color-active: lightgreen; + --w-bg: var(--w-cb-active-bg); + --w-bg-hover: var(--w-cb-active-bg-hover); + --w-bg-active: var(--w-cb-active-bg-active); border: none; - box-shadow: 1px 1px var(--side-color), 3px 3px var(--side-color), 5px 5px var(--side-color); + box-shadow: 1px 1px var(--w-shadow), 3px 3px var(--w-shadow), 5px 5px var(--w-shadow); } .checkbox.active::after { - border-width: 0px 5px 5px 0px; + border-width: 0px 5px 5px 0px; } /** @@ -201,82 +212,154 @@ */ .color-wheel { - background: radial-gradient(rgba(255, 255, 255, 1), rgba(255, 255, 255, 0)), conic-gradient(#f00, #ff0, #0f0, #0ff, #00f, #f0f, #f00); - border-radius: 50%; + background: radial-gradient(rgba(255, 255, 255, 1), rgba(255, 255, 255, 0)), conic-gradient(#f00, #ff0, #0f0, #0ff, #00f, #f0f, #f00); + border-radius: 50%; width: calc(3 * var(--base-unit)); height: calc(3 * var(--base-unit)); --side-color: #aaa; - overflow: unset; + overflow: unset; } .color-wheel::after { - content: ''; - height: 18px; - width: 18px; - border: 5px solid #444; - position: absolute; - bottom: calc((50% - 9px) + (50%) * var(--pos-y)); - left: calc((50% - 9px) + (50%) * var(--pos-x)); + content: ''; + height: 18px; + width: 18px; + border: 5px solid #444; + position: absolute; + bottom: calc((50% - 9px) + (50%) * var(--pos-y)); + left: calc((50% - 9px) + (50%) * var(--pos-x)); - border-radius: 50%; - transition-duration: 0.15s; - box-sizing: border-box; + border-radius: 50%; + transition-duration: 0.15s; + box-sizing: border-box; } .color-wheel:hover::after { - border-color: #888; + border-color: #888; } .color-temp { width: var(--base-unit); height: calc(3 * var(--base-unit)); - background: linear-gradient(rgb(190, 200, 255), white 30%, rgb(250, 160, 100)); + background: linear-gradient(rgb(190, 200, 255), white 30%, rgb(250, 160, 100)); --side-color: #aaa; - overflow: unset; + overflow: unset; } .color-temp::after { - content: ''; - width: calc(100% + 8px); - height: 14px; - border: 5px solid #444; - position: absolute; - bottom: calc(-7px + (100% + 14px) * var(--pos)); - left: -4px; + content: ''; + width: calc(100% + 8px); + height: 14px; + border: 5px solid #444; + position: absolute; + bottom: calc(100% * var(--pos) - 7px); + left: -4px; - box-sizing: border-box; + box-sizing: border-box; - border-radius: 7px; - transition-duration: 0.15s; + border-radius: 7px; + transition-duration: 0.15s; } .color-temp:hover::after { - border-color: #888; + border-color: #888; } .color-light { height: var(--base-unit); width: calc(3 * var(--base-unit)); - background: linear-gradient(to left, white, black); + background: linear-gradient(to left, white, black); --side-color: #aaa; - overflow: unset; + overflow: unset; } .color-light::after { - content: ''; - height: calc(100% + 8px); - width: 14px; - border: 5px solid #444; - position: absolute; - left: calc(-7px + (100% + 14px) * var(--pos)); - top: -4px; + content: ''; + height: calc(100% + 8px); + width: 14px; + border: 5px solid #444; + position: absolute; + left: calc(100% * var(--pos) - 7px); + top: -4px; - box-sizing: border-box; + box-sizing: border-box; - border-radius: 7px; - transition-duration: 0.15s; + border-radius: 7px; + transition-duration: 0.15s; } .color-light:hover::after { - border-color: #888; + border-color: #888; } + +/** + Thermostat +*/ + +.thermostat { + align-content: center; + text-align: center; + + width: calc(6 * var(--base-unit)); + height: calc(3 * var(--base-unit)); + + overflow: unset; +} + +.thermostat > .arch { + position: absolute; + + height: 100px; + width: 200px; + + top: calc(50% - 45px); + left: calc(50% - 100px); + + + clip-path: path("M 6.6525702323609295 64.13556976925895 A 100 100 0 0 1 193.34742976763908 64.13556976925895 A 5 5 0 0 1 184.01268679087516 67.72201279233306 A 90 90 0 0 0 15.987313209124835 67.72201279233306 A 5 5 0 0 1 6.6525702323609295 64.13556976925895 "); + background-color: #222; +} + +.thermostat > .arch::after { + content: ''; + display: block; + height: 100px; + width: 200px; + background-color: var(--arch-color); + transform-origin: bottom center; + transform: rotate(calc((1 - var(--percent)) * -144deg - 18deg)); + transition-duration: 0.5s; +} + +.thermostat > .gague { + position: absolute; + bottom: calc(-13px + ((100% - 100px) / 2) + 90px); + left: calc(-13px + 50%); + height: 26px; + width: 26px; + border-radius: 50%; + background-color: white; + transition-duration: 0.5s; + + box-sizing: border-box; + border: 2px solid white; + + box-shadow: inset 0px 0px 0px 2px var(--arch-color); + + transform-origin: 13px 108px; + transform: rotate(calc(72deg - (1 - var(--percent)) * 144deg)); + + text-align: center; + align-content: center; + font-size: 10px; + font-weight: bold; +} + +.thermostat > .temp { + position: absolute; + bottom: calc((100% - 100px) / 2); + left: calc(50% - 65px); + width: 130px; + font-size: 55px; + text-align: center; +}
\ No newline at end of file |