summaryrefslogtreecommitdiffstats
path: root/apps/web-shared/src/components/theme-switcher.svelte
diff options
context:
space:
mode:
Diffstat (limited to 'apps/web-shared/src/components/theme-switcher.svelte')
-rw-r--r--apps/web-shared/src/components/theme-switcher.svelte248
1 files changed, 2 insertions, 246 deletions
diff --git a/apps/web-shared/src/components/theme-switcher.svelte b/apps/web-shared/src/components/theme-switcher.svelte
index fd14059..397bad4 100644
--- a/apps/web-shared/src/components/theme-switcher.svelte
+++ b/apps/web-shared/src/components/theme-switcher.svelte
@@ -6,6 +6,7 @@
type theme = "system"|"dark"|"light";
export let show = false;
+ export let glow = false;
export let selection: theme = "system";
export let size;
let prefers = window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
@@ -42,253 +43,8 @@
}
</script>
-<div class="ld-switch"
- data-theme-switcher-element>
- <button class="reset ld-switch-btn"
- on:click={() => show =!show}>
- <span class="sr-only">{selection}</span>
- <div class="ld-switch-btn__icon-wrapper ld-switch-btn__icon-wrapper--in"
- aria-hidden="true">
- {#if selection === "dark"}
- <svg class="icon ld-switch-btn__icon"
- viewBox="0 0 20 20">
- <title>dark</title>
- <g fill="currentColor">
- <path d="M11.964 3.284c.021.237.036.474.036.716a8 8 0 0 1-8 8c-.242 0-.479-.015-.716-.036a7 7 0 1 0 8.68-8.68z"
- fill-opacity=".2"
- stroke="currentColor"
- stroke-linecap="round"
- stroke-linejoin="round"
- stroke-width="2"></path>
- <path d="M7 4a.979.979 0 0 1-1-1 1 1 0 0 0-2 0 .979.979 0 0 1-1 1 1 1 0 0 0 0 2 .979.979 0 0 1 1 1 1 1 0 0 0 2 0 .979.979 0 0 1 1-1 1 1 0 0 0 0-2z"></path>
- </g>
- </svg>
- {:else if selection === "light"}
- <svg class="icon ld-switch-btn__icon"
- viewBox="0 0 20 20"><title>light</title>
- <g fill="currentColor">
- <circle cx="10"
- cy="10"
- r="4"
- fill-opacity=".2"
- stroke="currentColor"
- stroke-linecap="round"
- stroke-linejoin="round"
- stroke-width="2"></circle>
- <path fill="none"
- stroke="currentColor"
- stroke-linecap="round"
- stroke-linejoin="round"
- stroke-width="2"
- d="M10 1v1.5"></path>
- <path fill="none"
- stroke="currentColor"
- stroke-linecap="round"
- stroke-linejoin="round"
- stroke-width="2"
- d="M16.364 3.636l-1.061 1.061"></path>
- <path fill="none"
- stroke="currentColor"
- stroke-linecap="round"
- stroke-linejoin="round"
- stroke-width="2"
- d="M19 10h-1.5"></path>
- <path fill="none"
- stroke="currentColor"
- stroke-linecap="round"
- stroke-linejoin="round"
- stroke-width="2"
- d="M16.364 16.364l-1.061-1.061"></path>
- <path fill="none"
- stroke="currentColor"
- stroke-linecap="round"
- stroke-linejoin="round"
- stroke-width="2"
- d="M10 19v-1.5"></path>
- <path fill="none"
- stroke="currentColor"
- stroke-linecap="round"
- stroke-linejoin="round"
- stroke-width="2"
- d="M3.636 16.364l1.061-1.061"></path>
- <path fill="none"
- stroke="currentColor"
- stroke-linecap="round"
- stroke-linejoin="round"
- stroke-width="2"
- d="M1 10h1.5"></path>
- <path fill="none"
- stroke="currentColor"
- stroke-linecap="round"
- stroke-linejoin="round"
- stroke-width="2"
- d="M3.636 3.636l1.061 1.061"></path>
- </g>
- </svg>
- {:else }
- <svg class="icon ld-switch-btn__icon"
- viewBox="0 0 20 20"><title>light-auto</title>
- <g fill="currentColor">
- <path d="M10 14a4 4 0 1 1 3.465-6"
- fill-opacity=".2"
- stroke="currentColor"
- stroke-linecap="round"
- stroke-linejoin="round"
- stroke-width="2"></path>
- <path fill="none"
- stroke="currentColor"
- stroke-linecap="round"
- stroke-linejoin="round"
- stroke-width="2"
- d="M12 18l2.5-7h1l2.5 7"></path>
- <path fill="none"
- stroke="currentColor"
- stroke-linecap="round"
- stroke-linejoin="round"
- stroke-width="2"
- d="M12.714 16h4.572"></path>
- <path fill="none"
- stroke="currentColor"
- stroke-linecap="round"
- stroke-linejoin="round"
- stroke-width="2"
- d="M10 1v1.5"></path>
- <path fill="none"
- stroke="currentColor"
- stroke-linecap="round"
- stroke-linejoin="round"
- stroke-width="2"
- d="M16.364 3.636l-1.061 1.061"></path>
- <path fill="none"
- stroke="currentColor"
- stroke-linecap="round"
- stroke-linejoin="round"
- stroke-width="2"
- d="M3.636 16.364l1.061-1.061"></path>
- <path fill="none"
- stroke="currentColor"
- stroke-linecap="round"
- stroke-linejoin="round"
- stroke-width="2"
- d="M1 10h1.5"></path>
- <path fill="none"
- stroke="currentColor"
- stroke-linecap="round"
- stroke-linejoin="round"
- stroke-width="2"
- d="M3.636 3.636l1.061 1.061"></path>
- </g>
- </svg>
- {/if}
- </div>
-
- <div class="ld-switch-btn__icon-wrapper js-ld-switch-icon"
- aria-hidden="true">
- {#if selection === "dark"}
- <svg class="icon ld-switch-btn__icon"
- viewBox="0 0 20 20">
- <title>dark</title>
- <g fill="currentColor">
- <path d="M11.964 3.284c.021.237.036.474.036.716a8 8 0 0 1-8 8c-.242 0-.479-.015-.716-.036a7 7 0 1 0 8.68-8.68z"
- fill-opacity=".2"
- stroke="currentColor"
- stroke-linecap="round"
- stroke-linejoin="round"
- stroke-width="2"></path>
- <path d="M7 4a.979.979 0 0 1-1-1 1 1 0 0 0-2 0 .979.979 0 0 1-1 1 1 1 0 0 0 0 2 .979.979 0 0 1 1 1 1 1 0 0 0 2 0 .979.979 0 0 1 1-1 1 1 0 0 0 0-2z"></path>
- </g>
- </svg>
- {:else if selection === "light"}
- <svg class="icon ld-switch-btn__icon"
- viewBox="0 0 20 20">
- <title>light-auto</title>
- <g fill="currentColor">
- <path d="M10 14a4 4 0 1 1 3.465-6"
- fill-opacity=".2"
- stroke="currentColor"
- stroke-linecap="round"
- stroke-linejoin="round"
- stroke-width="2"></path>
- <path fill="none"
- stroke="currentColor"
- stroke-linecap="round"
- stroke-linejoin="round"
- stroke-width="2"
- d="M12 18l2.5-7h1l2.5 7"></path>
- <path fill="none"
- stroke="currentColor"
- stroke-linecap="round"
- stroke-linejoin="round"
- stroke-width="2"
- d="M12.714 16h4.572"></path>
- <path fill="none"
- stroke="currentColor"
- stroke-linecap="round"
- stroke-linejoin="round"
- stroke-width="2"
- d="M10 1v1.5"></path>
- <path fill="none"
- stroke="currentColor"
- stroke-linecap="round"
- stroke-linejoin="round"
- stroke-width="2"
- d="M16.364 3.636l-1.061 1.061"></path>
- <path fill="none"
- stroke="currentColor"
- stroke-linecap="round"
- stroke-linejoin="round"
- stroke-width="2"
- d="M3.636 16.364l1.061-1.061"></path>
- <path fill="none"
- stroke="currentColor"
- stroke-linecap="round"
- stroke-linejoin="round"
- stroke-width="2"
- d="M1 10h1.5"></path>
- <path fill="none"
- stroke="currentColor"
- stroke-linecap="round"
- stroke-linejoin="round"
- stroke-width="2"
- d="M3.636 3.636l1.061 1.061"></path>
- </g>
- </svg>
- {:else }
- <svg class="icon ld-switch-btn__icon"
- viewBox="0 0 20 20">
- <title>dark-auto</title>
- <g fill="currentColor">
- <path fill="none"
- stroke="currentColor"
- stroke-linecap="round"
- stroke-linejoin="round"
- stroke-width="2"
- d="M12 18l2.5-7h1l2.5 7"></path>
- <path fill="none"
- stroke="currentColor"
- stroke-linecap="round"
- stroke-linejoin="round"
- stroke-width="2"
- d="M12.714 16h4.572"></path>
- <path d="M12.146 10.159A2.5 2.5 0 0 1 14.5 8.5h1a2.5 2.5 0 0 1 1.412.441 7 7 0 0 0-4.948-5.657c.021.237.036.474.036.716a8 8 0 0 1-8 8c-.242 0-.479-.015-.716-.036a6.99 6.99 0 0 0 6.427 5.012z"
- fill-opacity=".2"></path>
- <path d="M16.71 8a7.015 7.015 0 0 0-4.746-4.716c.021.237.036.474.036.716a8 8 0 0 1-8 8c-.242 0-.479-.015-.716-.036A7.006 7.006 0 0 0 9 16.929"
- fill="none"
- stroke="currentColor"
- stroke-linecap="round"
- stroke-linejoin="round"
- stroke-width="2"></path>
- <path d="M7 4a.979.979 0 0 1-1-1 1 1 0 0 0-2 0 .979.979 0 0 1-1 1 1 1 0 0 0 0 2 .979.979 0 0 1 1 1 1 1 0 0 0 2 0 .979.979 0 0 1 1-1 1 1 0 0 0 0-2z"></path>
- </g>
- </svg>
- {/if}
- </div>
- </button>
-</div>
-
-<div class="bg-light position-fixed margin-top-xxs padding-x-xs padding-bottom-xs padding-top-xxxs radius-md inner-glow shadow-xs"
+<div class="bg-light padding-x-xs padding-bottom-xs padding-top-xxxs radius-md {glow ? 'inner-glow shadow-xs' : ''}"
class:is-hidden={!show}
- style="right: 15px"
data-theme-switcher-element
role="listbox">
<div class="flex flex-wrap flex-column"