|
7 | 7 | </script> |
8 | 8 |
|
9 | 9 | <div dir="ltr"> |
10 | | - <button on:click={toggleTheme} aria-label="Toggle theme" |
11 | | - ><div class="tdnn" class:day={$theme === "light"}> |
12 | | - <div class="moon" class:sun={$theme === "light"}></div> |
| 10 | + <button on:click={toggleTheme} aria-label="Toggle theme"> |
| 11 | + <div |
| 12 | + class="relative mx-auto h-[var(--toggleHeight)] w-[var(--toggleWidth)] rounded-[var(--toggleHeight)] transition-all duration-500 ease-in-out" |
| 13 | + class:bg-ctp-peach={$theme === "light"} |
| 14 | + class:bg-ctp-surface0={$theme !== "light"} |
| 15 | + style="--toggleHeight: 16em; --toggleWidth: 30em; --toggleBtnRadius: 10em; font-size: 15%;" |
| 16 | + > |
| 17 | + <div |
| 18 | + class="absolute block rounded-full transition-all duration-400 ease-in-out" |
| 19 | + class:top-[4.5em]={$theme === "light"} |
| 20 | + class:left-[18em]={$theme === "light"} |
| 21 | + class:rotate-0={$theme === "light"} |
| 22 | + class:w-[7em]={$theme === "light"} |
| 23 | + class:h-[7em]={$theme === "light"} |
| 24 | + class:bg-ctp-text={$theme === "light"} |
| 25 | + class:shadow-[3em_3em_0_5em_#fff_inset,0_-5em_0_-2.7em_#fff,3.5em_-3.5em_0_-3em_#fff,5em_0_0_-2.7em_#fff,3.5em_3.5em_0_-3em_#fff,0_5em_0_-2.7em_#fff,-3.5em_3.5em_0_-3em_#fff,-5em_0_0_-2.7em_#fff,-3.5em_-3.5em_0_-3em_#fff]={$theme === |
| 26 | + "light"} |
| 27 | + class:top-[3em]={$theme !== "light"} |
| 28 | + class:left-[3em]={$theme !== "light"} |
| 29 | + class:-rotate-75={$theme !== "light"} |
| 30 | + class:w-[var(--toggleBtnRadius)]={$theme !== "light"} |
| 31 | + class:h-[var(--toggleBtnRadius)]={$theme !== "light"} |
| 32 | + class:bg-ctp-surface0={$theme !== "light"} |
| 33 | + class:shadow-[3em_2.5em_0_0em_#f9e2af_inset,rgba(249,226,175,0.1)_0em_-7em_0_-4.5em,rgba(249,226,175,0.1)_3em_7em_0_-4.5em,rgba(249,226,175,0.1)_2em_13em_0_-4em,rgba(249,226,175,0.1)_6em_2em_0_-4.1em,rgba(249,226,175,0.1)_8em_8em_0_-4.5em,rgba(249,226,175,0.1)_6em_13em_0_-4.5em,rgba(249,226,175,0.1)_-4em_7em_0_-4.5em,rgba(249,226,175,0.1)_-1em_10em_0_-4.5em]={$theme !== |
| 34 | + "light"} |
| 35 | + ></div> |
13 | 36 | </div> |
14 | 37 | </button> |
15 | 38 | </div> |
16 | | - |
17 | | -<style> |
18 | | - .tdnn { |
19 | | - --darkbg: #251d29; |
20 | | - --darkt: #ffd1f7; |
21 | | - --lightbg: #fff; |
22 | | - --lightt: #d43370; |
23 | | -
|
24 | | - --toggleHeight: 16em; |
25 | | - --toggleWidth: 30em; |
26 | | - --toggleBtnRadius: 10em; |
27 | | -
|
28 | | - --bgColor--night: #423966; |
29 | | - --toggleBtn-bgColor--night: var(--bgColor--night); |
30 | | - --mooncolor: #d9fbff; |
31 | | - --bgColor--day: #fab387; |
32 | | - --toggleBtn-bgColor--day: var(--bgColor--day); |
33 | | - } |
34 | | -
|
35 | | - .tdnn { |
36 | | - margin: 0 auto; |
37 | | - /*change size of toggle with font-size*/ |
38 | | - font-size: 15%; |
39 | | - position: relative; |
40 | | - height: var(--toggleHeight); |
41 | | - width: var(--toggleWidth); |
42 | | - border-radius: var(--toggleHeight); |
43 | | - transition: all 500ms ease-in-out; |
44 | | - background: var(--bgColor--night); |
45 | | - } |
46 | | -
|
47 | | - .moon { |
48 | | - position: absolute; |
49 | | - display: block; |
50 | | - border-radius: 50%; |
51 | | - transition: all 400ms ease-in-out; |
52 | | -
|
53 | | - top: 3em; |
54 | | - left: 3em; |
55 | | - transform: rotate(-75deg); |
56 | | - width: var(--toggleBtnRadius); |
57 | | - height: var(--toggleBtnRadius); |
58 | | - background: var(--bgColor--night); |
59 | | - box-shadow: |
60 | | - 3em 2.5em 0 0em var(--mooncolor) inset, |
61 | | - rgba(255, 255, 255, 0.1) 0em -7em 0 -4.5em, |
62 | | - rgba(255, 255, 255, 0.1) 3em 7em 0 -4.5em, |
63 | | - rgba(255, 255, 255, 0.1) 2em 13em 0 -4em, |
64 | | - rgba(255, 255, 255, 0.1) 6em 2em 0 -4.1em, |
65 | | - rgba(255, 255, 255, 0.1) 8em 8em 0 -4.5em, |
66 | | - rgba(255, 255, 255, 0.1) 6em 13em 0 -4.5em, |
67 | | - rgba(255, 255, 255, 0.1) -4em 7em 0 -4.5em, |
68 | | - rgba(255, 255, 255, 0.1) -1em 10em 0 -4.5em; |
69 | | - } |
70 | | -
|
71 | | - .day { |
72 | | - background: #ffbf71; |
73 | | - } |
74 | | - .sun { |
75 | | - top: 4.5em; |
76 | | - left: 18em; |
77 | | - transform: rotate(0deg); |
78 | | - width: 7em; |
79 | | - height: 7em; |
80 | | - background: #fff; |
81 | | - box-shadow: |
82 | | - 3em 3em 0 5em #fff inset, |
83 | | - 0 -5em 0 -2.7em #fff, |
84 | | - 3.5em -3.5em 0 -3em #fff, |
85 | | - 5em 0 0 -2.7em #fff, |
86 | | - 3.5em 3.5em 0 -3em #fff, |
87 | | - 0 5em 0 -2.7em #fff, |
88 | | - -3.5em 3.5em 0 -3em #fff, |
89 | | - -5em 0 0 -2.7em #fff, |
90 | | - -3.5em -3.5em 0 -3em #fff; |
91 | | - } |
92 | | -</style> |
0 commit comments