Skip to content

Commit 2086100

Browse files
committed
feat: wave
1 parent 177d1d5 commit 2086100

2 files changed

Lines changed: 85 additions & 0 deletions

File tree

src/pages/demo/index.jsx

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ import XuePng from '@assets/images/xue.png'
1616

1717
import { Command, Cannabis, Beer, Mail } from 'lucide-react'
1818

19+
import styles from './index.module.less'
20+
1921
const companies = [SpringPng, HePng, SongPng, XuePng]
2022
const columns = [
2123
{
@@ -220,6 +222,11 @@ const ProDemo = () => {
220222
</div>
221223
</div>
222224
</section>
225+
<section className={styles['section-gradient']}>
226+
<div className={styles.wave}></div>
227+
<div className={styles.wave}></div>
228+
<div className={styles.wave}></div>
229+
</section>
223230
<Footer />
224231
</FixTabPanel>
225232
)

src/pages/demo/index.module.less

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,3 +65,81 @@ body {
6565
.button:hover::after {
6666
transform: rotate(0deg);
6767
}
68+
69+
.section-gradient {
70+
margin: 0 auto;
71+
background: linear-gradient(
72+
315deg,
73+
rgb(252 208 158) 3%,
74+
rgb(144 200 255) 38%,
75+
rgb(104 245 250) 68%,
76+
rgb(45 151 250) 98%
77+
);
78+
animation: gradient 25s ease infinite;
79+
background-size: 400% 400%;
80+
background-attachment: fixed;
81+
position: relative;
82+
overflow: hidden;
83+
}
84+
85+
@keyframes gradient {
86+
0% {
87+
background-position: 0% 0%;
88+
}
89+
90+
50% {
91+
background-position: 100% 100%;
92+
}
93+
94+
100% {
95+
background-position: 0% 0%;
96+
}
97+
}
98+
99+
.wave {
100+
background: rgb(255 255 255 / 25%);
101+
border-radius: 1000% 1000% 0 0;
102+
position: absolute;
103+
bottom: 0;
104+
left: 0;
105+
width: 200%;
106+
height: 200px;
107+
animation: wave 10s -3s linear infinite;
108+
transform: translate3d(0, 0, 0);
109+
opacity: 0.8;
110+
z-index: 1;
111+
}
112+
113+
.wave:nth-of-type(2) {
114+
bottom: -30px;
115+
animation: wave 8s linear reverse infinite;
116+
opacity: 0.8;
117+
}
118+
119+
.wave:nth-of-type(3) {
120+
bottom: -60px;
121+
animation: wave 10s -1s reverse infinite;
122+
opacity: 0.9;
123+
}
124+
125+
@keyframes wave {
126+
2% {
127+
transform: translateX(1);
128+
}
129+
130+
25% {
131+
transform: translateX(-25%);
132+
}
133+
134+
50% {
135+
transform: translateX(-50%);
136+
}
137+
138+
75% {
139+
transform: translateX(-25%);
140+
}
141+
142+
100% {
143+
transform: translateX(1);
144+
}
145+
}

0 commit comments

Comments
 (0)