|
1 | 1 | .back { |
2 | 2 | overflow: hidden; |
3 | | - background: #373939 no-repeat center center fixed; |
4 | | - background-size: cover; |
| 3 | + // background: #373939 no-repeat center center fixed; |
| 4 | + background: url("../images/background.png") no-repeat center center/cover; |
5 | 5 | position: fixed; |
6 | 6 | padding: 2px; |
7 | 7 | margin: 0px; |
|
24 | 24 | border-radius: 50%; |
25 | 25 | -webkit-transform: translate(-50%, -50%); |
26 | 26 | transform: translate(-50%, -50%); |
27 | | - animation: puff 0.5s 1.8s cubic-bezier(0.55, 0.055, 0.675, 0.19) forwards, |
28 | | - borderRadius 1s 2.3s linear forwards; |
| 27 | + animation: puff 0.5s 1.8s cubic-bezier(0.55, 0.055, 0.675, 0.19) forwards, borderRadius 1s 2.3s linear forwards; |
29 | 28 | } |
30 | 29 | } |
31 | 30 |
|
|
42 | 41 | margin-top: 70px; |
43 | 42 | transform: translate(-50%, -50%); |
44 | 43 | // border-radius: 50%; |
45 | | - animation: init 0.5s 0.2s cubic-bezier(0.55, 0.055, 0.675, 0.19) forwards, |
46 | | - moveDown 1s 0.8s cubic-bezier(0.6, -0.28, 0.735, 0.045) forwards, |
47 | | - moveUp 1s 1.8s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards, |
48 | | - materia 0.2s 2.7s cubic-bezier(0.86, 0, 0.07, 1) forwards; |
| 44 | + animation: init 0.5s 0.2s cubic-bezier(0.55, 0.055, 0.675, 0.19) forwards, moveDown 1s 0.8s cubic-bezier(0.6, -0.28, 0.735, 0.045) forwards, |
| 45 | + moveUp 1s 1.8s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards, materia 0.2s 2.7s cubic-bezier(0.86, 0, 0.07, 1) forwards; |
49 | 46 | } |
50 | 47 |
|
51 | 48 | .profile-card .profile-bio { |
52 | 49 | width: 100%; |
53 | 50 | height: 100%; |
54 | | - display: inline-block; |
55 | 51 | background: #000000; |
56 | 52 | color: #333333; |
57 | 53 | text-align: center; |
58 | 54 | opacity: 0; |
59 | 55 | animation: moveIn 1s 3.1s ease forwards; |
60 | 56 | } |
61 | 57 |
|
| 58 | +.profile-bio { |
| 59 | + display: flex; |
| 60 | + flex-direction: column; |
| 61 | + justify-content: center; |
| 62 | +} |
| 63 | + |
62 | 64 | @keyframes init { |
63 | 65 | 0% { |
64 | 66 | width: 0px; |
|
169 | 171 | opacity: 0; |
170 | 172 | } |
171 | 173 | } |
| 174 | + |
| 175 | +@mixin glitchCopy { |
| 176 | + content: attr(data-text); |
| 177 | + position: absolute; |
| 178 | + top: 0; |
| 179 | + left: 0; |
| 180 | + width: 100%; |
| 181 | + height: 100%; |
| 182 | +} |
| 183 | + |
| 184 | +.glitch { |
| 185 | + animation: glitch-skew 1s infinite linear alternate-reverse; |
| 186 | + &::before { |
| 187 | + @include glitchCopy; |
| 188 | + left: 2px; |
| 189 | + text-shadow: -2px 0 #ff00c1; |
| 190 | + clip: rect(44px, 450px, 56px, 0); |
| 191 | + animation: glitch-anim 5s infinite linear alternate-reverse; |
| 192 | + } |
| 193 | + &::after { |
| 194 | + @include glitchCopy; |
| 195 | + left: -2px; |
| 196 | + text-shadow: -2px 0 #00fff9, 2px 2px #ff00c1; |
| 197 | + animation: glitch-anim2 1s infinite linear alternate-reverse; |
| 198 | + } |
| 199 | +} |
| 200 | + |
| 201 | +@keyframes glitch-anim { |
| 202 | + $steps: 20; |
| 203 | + @for $i from 0 through $steps { |
| 204 | + #{percentage($i*(1/$steps))} { |
| 205 | + clip: rect(random(100) + px, 9999px, random(100) + px, 0); |
| 206 | + transform: skew((random(100) / 100) + deg); |
| 207 | + } |
| 208 | + } |
| 209 | +} |
| 210 | + |
| 211 | +// Same deal, just duplicated for ultra randomness. |
| 212 | +@keyframes glitch-anim2 { |
| 213 | + $steps: 20; |
| 214 | + @for $i from 0 through $steps { |
| 215 | + #{percentage($i*(1/$steps))} { |
| 216 | + clip: rect(random(100) + px, 9999px, random(100) + px, 0); |
| 217 | + transform: skew((random(100) / 100) + deg); |
| 218 | + } |
| 219 | + } |
| 220 | +} |
| 221 | + |
| 222 | +// Does the same deal as before, but now only skews. Used for main text. |
| 223 | +@keyframes glitch-skew { |
| 224 | + $steps: 10; |
| 225 | + @for $i from 0 through $steps { |
| 226 | + #{percentage($i*(1/$steps))} { |
| 227 | + transform: skew((random(10) - 5) + deg); |
| 228 | + } |
| 229 | + } |
| 230 | +} |
0 commit comments