Skip to content

Commit cf9c181

Browse files
authored
feat:add compatible squiggle effect
1 parent f474195 commit cf9c181

File tree

5 files changed

+114
-1
lines changed

5 files changed

+114
-1
lines changed

assets/css/app.css

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,4 +127,19 @@
127127

128128
.alert-info {
129129
@apply bg-[#67b22e] text-[#0a0a0a] border-transparent;
130+
}
131+
132+
.squiggle-slow {
133+
filter: url(#melt-flow-slow);
134+
-webkit-filter: url(#melt-flow-slow);
135+
}
136+
137+
.squiggle-medium {
138+
filter: url(#melt-flow-medium);
139+
-webkit-filter: url(#melt-flow-medium);
140+
}
141+
142+
.squiggle-fast {
143+
filter: url(#melt-flow-fast);
144+
-webkit-filter: url(#melt-flow-fast);
130145
}
Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
defmodule AresWeb.Components.SquigglyEffect do
2+
@moduledoc """
3+
SVG filter component used to apply animated squiggly distortion effects.
4+
"""
5+
use Phoenix.Component
6+
7+
attr :id, :string, default: "squiggly-filters"
8+
attr :class, :string, default: "absolute"
9+
10+
def squiggly_effect(assigns) do
11+
~H"""
12+
<svg width="0" height="0" id={@id} class={@class}>
13+
<defs>
14+
<filter id="melt-flow-slow">
15+
<feTurbulence
16+
type="fractalNoise"
17+
baseFrequency="0.008 0.012"
18+
numOctaves="5"
19+
result="turbulence"
20+
>
21+
<animate
22+
attributeName="seed"
23+
from="1"
24+
to="6000"
25+
dur="4220s"
26+
repeatCount="indefinite"
27+
/>
28+
</feTurbulence>
29+
30+
<feDisplacementMap
31+
in="SourceGraphic"
32+
in2="turbulence"
33+
scale="18"
34+
xChannelSelector="R"
35+
yChannelSelector="G"
36+
/>
37+
38+
<feGaussianBlur stdDeviation="0.4" />
39+
</filter>
40+
<filter id="melt-flow-medium">
41+
<feTurbulence
42+
type="fractalNoise"
43+
baseFrequency="0.008 0.012"
44+
numOctaves="5"
45+
result="turbulence"
46+
>
47+
<animate
48+
attributeName="seed"
49+
from="1"
50+
to="6000"
51+
dur="1220s"
52+
repeatCount="indefinite"
53+
/>
54+
</feTurbulence>
55+
56+
<feDisplacementMap
57+
in="SourceGraphic"
58+
in2="turbulence"
59+
scale="18"
60+
xChannelSelector="R"
61+
yChannelSelector="G"
62+
/>
63+
64+
<feGaussianBlur stdDeviation="0.4" />
65+
</filter>
66+
<filter id="melt-flow-fast">
67+
<feTurbulence
68+
type="fractalNoise"
69+
baseFrequency="0.008 0.012"
70+
numOctaves="5"
71+
result="turbulence"
72+
>
73+
<animate
74+
attributeName="seed"
75+
from="1"
76+
to="6000"
77+
dur="720s"
78+
repeatCount="indefinite"
79+
/>
80+
</feTurbulence>
81+
82+
<feDisplacementMap
83+
in="SourceGraphic"
84+
in2="turbulence"
85+
scale="18"
86+
xChannelSelector="R"
87+
yChannelSelector="G"
88+
/>
89+
90+
<feGaussianBlur stdDeviation="0.4" />
91+
</filter>
92+
</defs>
93+
</svg>
94+
"""
95+
end
96+
end

lib/ares_web/live/landing/home.ex

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
defmodule AresWeb.LandingLive.Home do
22
use AresWeb, :live_view
3+
import AresWeb.Components.SquigglyEffect
34

45
@impl true
56
def mount(_params, _session, socket) do

lib/ares_web/live/landing/home.html.heex

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
<div class="h-screen overflow-hidden bg-black z-10">
2+
<.squiggly_effect />
23
<div
34
class="absolute inset-0 bg-cover bg-center bg-no-repeat opacity-40"
45
style="background-image: url('/images/background.jpg') ;"
@@ -14,7 +15,7 @@
1415
</div>
1516

1617
<div class="">
17-
<h1 class="font-resegrg tracking-wider leading-none text-4xl sm:text-5xl md:text-6xl lg:text-7xl uppercase">
18+
<h1 class="font-resegrg tracking-wider leading-none text-4xl sm:text-5xl md:text-6xl lg:text-7xl uppercase squiggle-fast">
1819
{gettext("BugsByte")}
1920
</h1>
2021
</div>

msad

Whitespace-only changes.

0 commit comments

Comments
 (0)