mirror of
https://github.com/revoltchat/revite.git
synced 2024-12-28 08:14:46 -05:00
98 lines
2.5 KiB
SCSS
98 lines
2.5 KiB
SCSS
// Pure CSS Snowfall
|
|
// Released by Artimon under MIT license
|
|
//
|
|
// Source: https://github.com/Artimon/pure-css-snowfall
|
|
|
|
@use 'sass:math';
|
|
|
|
$count: 36;
|
|
$screenOffset: 0px;
|
|
$fallDuration: 12;
|
|
$windNoise: 30;
|
|
$windSpeed: 4;
|
|
$sizeNoise: 40;
|
|
$rotation: 360;
|
|
$imageSize: 20px;
|
|
$fontSize: 40px;
|
|
|
|
.snowfall {
|
|
z-index: 0;
|
|
display: block;
|
|
|
|
font-size: $fontSize;
|
|
|
|
overflow: hidden;
|
|
pointer-events: none;
|
|
|
|
.snowflake {
|
|
position: relative;
|
|
top: 0;
|
|
left: 0;
|
|
|
|
display: flex;
|
|
justify-content: center;
|
|
|
|
width: $screenOffset;
|
|
height: $screenOffset;
|
|
|
|
span {
|
|
align-self: center;
|
|
}
|
|
|
|
img {
|
|
align-self: center;
|
|
width: $imageSize;
|
|
}
|
|
}
|
|
|
|
@while ($count > 0) {
|
|
$left: random(100);
|
|
$deltaLeft: math.div(
|
|
random(2 * $windNoise * 10),
|
|
10 - $windNoise + $windSpeed
|
|
);
|
|
$scale: 1 +
|
|
math.div(
|
|
math.div(random(2 * $sizeNoise * 10), 10 - $sizeNoise),
|
|
100
|
|
);
|
|
|
|
.snowflake:nth-child(#{$count}) {
|
|
animation: animation-snowflake-#{$count} linear infinite;
|
|
animation-duration: $fallDuration +
|
|
math.div(random($fallDuration * 10), 10) +
|
|
s;
|
|
animation-delay: math.div(random(2 * $fallDuration * 10), 10) -
|
|
(2 * $fallDuration) +
|
|
s;
|
|
}
|
|
|
|
@keyframes animation-snowflake-#{$count} {
|
|
0% {
|
|
left: percentage(math.div($left, 100));
|
|
top: calc(0% - #{$screenOffset});
|
|
transform: scale($scale)
|
|
rotate3d(
|
|
math.div(random(100), 100),
|
|
math.div(random(100), 100),
|
|
math.div(random(100), 100),
|
|
0deg
|
|
);
|
|
}
|
|
100% {
|
|
left: percentage(math.div(($left + $deltaLeft), 100));
|
|
top: calc(100% + #{$screenOffset});
|
|
transform: scale($scale)
|
|
rotate3d(
|
|
math.div(random(100), 100),
|
|
math.div(random(100), 100),
|
|
math.div(random(100), 100),
|
|
(random($rotation) + $rotation) *
|
|
((random(2) - 1) * 2 - 1) + deg
|
|
);
|
|
}
|
|
}
|
|
|
|
$count: $count - 1;
|
|
}
|
|
}
|