summaryrefslogtreecommitdiffstats
path: root/apps/web-shared/src/styles/components/light-dark-switch.scss
diff options
context:
space:
mode:
Diffstat (limited to 'apps/web-shared/src/styles/components/light-dark-switch.scss')
-rw-r--r--apps/web-shared/src/styles/components/light-dark-switch.scss102
1 files changed, 102 insertions, 0 deletions
diff --git a/apps/web-shared/src/styles/components/light-dark-switch.scss b/apps/web-shared/src/styles/components/light-dark-switch.scss
new file mode 100644
index 0000000..1554010
--- /dev/null
+++ b/apps/web-shared/src/styles/components/light-dark-switch.scss
@@ -0,0 +1,102 @@
+@use '../base' as *;
+@use 'popover.scss' as *;
+@use 'adv-custom-select.scss' as *;
+
+/* --------------------------------
+
+File#: _3_light-dark-switch
+Title: Light/Dark Switch
+Descr: Color theme switcher
+Usage: codyhouse.co/license
+
+-------------------------------- */
+
+.ld-switch {}
+
+.ld-switch-btn {
+ position: relative;
+ width: 24px;
+ height: 24px;
+ overflow: hidden;
+ display: inline-block;
+
+ transition: opacity 0.2s, color 0.2s;
+
+ &:hover {
+ cursor: pointer;
+ opacity: 0.8;
+ }
+
+ &:focus {
+ outline: none;
+ color: var(--color-primary);
+ }
+}
+
+.ld-switch-btn.popover-control--active {
+ /* class added to the control button when the dropdown is visible */
+ color: var(--color-primary);
+}
+
+.ld-switch-btn__icon-wrapper {
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ top: 0;
+ left: 0;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ opacity: 0;
+ transform: translateY(100%) rotate(35deg) scale(0.5);
+}
+
+.ld-switch-btn__icon-wrapper--in {
+ opacity: 1;
+ transform: translateY(0) rotate(0) scale(1);
+}
+
+.ld-switch-btn__icon-wrapper--out {
+ opacity: 0;
+ transform: translateY(-100%) rotate(-35deg) scale(0.5);
+}
+
+.ld-switch-btn__icon-wrapper--in,
+.ld-switch-btn__icon-wrapper--out {
+ transition: transform 0.3s var(--ease-in-out), opacity 0.3s;
+}
+
+.ld-switch-btn__icon {
+ margin: auto;
+ --size: 20px; /* icon size */
+}
+
+.popover.ld-switch-popover {
+ --popover-width: 250px;
+}
+
+.ld-switch-popover__option {
+ user-select: none;
+ transition: opacity 0.2s;
+
+ &:hover {
+ cursor: pointer;
+ opacity: 0.85;
+ }
+
+ &:focus {
+ outline: none;
+
+ figure {
+ box-shadow: 0 0 0 1px var(--color-bg-light), 0 0 0 3px var(--color-contrast-higher);
+ }
+ }
+
+ &[aria-selected=true] {
+ color: var(--color-primary);
+
+ figure {
+ box-shadow: 0 0 0 1px var(--color-bg-light), 0 0 0 3px currentColor;
+ }
+ }
+}