Skip to content

Commit d534568

Browse files
committed
add: mask
1 parent 407e6a2 commit d534568

1 file changed

Lines changed: 42 additions & 37 deletions

File tree

src/lib/components/Clock.svelte

Lines changed: 42 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,7 @@
6969
interval = setInterval(() => {
7070
[timeHours, timeMinutes] = getTime(hasTemporal);
7171
updateMarker();
72-
totalMinutes += 20;
73-
}, 1000);
72+
}, 10000);
7473
});
7574
7675
onDestroy(() => {
@@ -79,36 +78,52 @@
7978
</script>
8079

8180
<div class="absolute top-1">
81+
<div
82+
bind:this={marker}
83+
class="clock origin-[center_10rem] md:origin-[center_24rem] lg:origin-[center_28rem]"
84+
>
85+
<ThemeToggle />
86+
</div>
8287
<svg
83-
class="absolute z-[-1] w-xs md:w-3xl lg:w-4xl h-auto -translate-x-1/2"
88+
class="absolute z-[-1] w-xs md:w-3xl lg:w-4xl h-auto -translate-x-1/2 orbit-cutout"
8489
viewBox="0 0 100 100"
8590
>
86-
<circle
87-
cx="50"
88-
cy="50"
89-
r="45"
90-
fill="transparent"
91-
stroke={textColour}
92-
stroke-width="5"
93-
stroke-dasharray="10 100 10"
94-
vector-effect="non-scaling-stroke"
95-
>
96-
<animateTransform
97-
attributeName="transform"
98-
begin="0s"
99-
dur="60s"
100-
type="rotate"
101-
from="0 50 50"
102-
to="360 50 50"
103-
repeatCount="indefinite"
91+
<mask id="orbitMask" mask-type="luminance">
92+
<rect x="0" y="0" width="100" height="100" fill="white" />
93+
<rect
94+
x="45"
95+
y="0"
96+
width="10"
97+
height="50"
98+
fill="black"
99+
transform="rotate({angle} 50 50)"
100+
style="transition: transform 1s ease-in-out"
104101
/>
105-
</circle>
106-
<!-- <circle cx="50" cy="50" r="0.1" fill="magenta" /> -->
102+
<circle cx="50" cy="85" r="50" fill="black" />
103+
</mask>
104+
<g mask="url(#orbitMask)">
105+
<circle
106+
cx="50"
107+
cy="50"
108+
r="45"
109+
fill="transparent"
110+
stroke={textColour}
111+
stroke-width="5"
112+
stroke-dasharray="10 100 10"
113+
vector-effect="non-scaling-stroke"
114+
>
115+
<animateTransform
116+
attributeName="transform"
117+
begin="0s"
118+
dur="60s"
119+
type="rotate"
120+
from="0 50 50"
121+
to="360 50 50"
122+
repeatCount="indefinite"
123+
/>
124+
</circle>
125+
</g>
107126
</svg>
108-
<div bind:this={marker} class="clock origin-[center_10rem] md:origin-[center_24rem] lg:origin-[center_28rem]">
109-
<ThemeToggle />
110-
<!-- <div class="bg-blue-500 rounded-full clock-arm"></div> -->
111-
</div>
112127
</div>
113128

114129
<style>
@@ -119,13 +134,3 @@
119134
transition: transform 1s ease-in-out;
120135
}
121136
</style>
122-
<!-- .clock-arm { -->
123-
<!-- position: absolute; -->
124-
<!-- top: 50%; -->
125-
<!-- left: 50%; -->
126-
<!-- width: 2px; -->
127-
<!-- height: 500px; -->
128-
<!---->
129-
<!-- transform-origin: bottom center; -->
130-
<!-- transform: translate(-50%, 0); -->
131-
<!-- } -->

0 commit comments

Comments
 (0)