1
0
forked from mico/idle_moloch
idle_moloch/app/src/styles/Background.module.css

247 lines
4.4 KiB
CSS

.frame {
position: absolute;
width: 100%;
height: 100%;
border-width: 8px;
border-image: url("/background/frame.png") 22 fill / auto space;
width: 720px;
height: 960px;
}
.background_asset {
position: absolute;
left: 22px;
right: 22px;
background-size: cover;
}
.air {
background: rgb(0, 0, 0);
background: linear-gradient(
180deg,
rgba(0, 0, 0, 1) 0%,
rgba(28, 28, 51, 1) 17%,
rgba(255, 0, 0, 1) 43%,
rgba(0, 0, 0, 1) 45%
);
top: 22px;
bottom: 22px;
animation: thunder_hue 12s linear infinite;
}
.clouds_large {
top: 250px;
height: 150px;
background-image: url("/background/clouds_large.png");
animation:
scrollBackground 80s linear infinite,
thunder 4s linear infinite;
}
.clouds_small {
top: 270px;
height: 82px;
background-image: url("/background/clouds_small.png");
animation:
scrollBackground 20s linear infinite,
thunder 12s linear infinite;
}
.tower {
background-image: url("/background/tower.png");
width: 218px;
height: 240px;
top: 150px;
animation: thunder_hue_hard 12s linear infinite;
transition: all 0.1s cubic-bezier(0.265, 1.4, 0.68, 1.65);
transform-origin: bottom center;
&:hover {
cursor: pointer;
transform: scale(1.05, 1.1);
transform-origin: bottom center;
&::after {
text-shadow: #0f0 1px 1px 10px;
animation: excited 0.5s infinite linear;
}
}
&:active {
transform: scale(1.1, 1.22);
}
&.cooldown {
transition: all 1s cubic-bezier(0.265, 1.4, 0.68, 1.65);
transform: scale(1.1, 1.22);
&::after {
content: "RAID IN PROGRESS";
color: var(--hover-color);
top: calc(50% - 15px);
left: 0;
right: 0;
font-size: 0.9rem;
text-align: center;
animation: excited 0.5s infinite linear;
text-shadow: #000 1px 1px 1px;
}
}
}
.tower::after {
position: absolute;
content: "RAID\A(collect to wallet)";
text-align: center;
white-space: pre;
word-wrap: break-word;
left: 50px;
top: 22px;
}
.mountains {
background-image: url("/background/mountains.png");
height: 181px;
top: 285px;
animation: thunder_hue 12s linear infinite;
pointer-events: none;
}
.village {
background-image: url("/background/village.png");
height: 540px;
bottom: 22px;
}
.bonfire {
background-image: url("/background/bonfire.png");
bottom: 100px;
left: 184px;
width: 175px;
height: 193px;
transform-origin: bottom center;
animation:
bonfire 12s linear infinite,
bonfire_skew 5s infinite linear;
}
@keyframes scrollBackground {
0% {
background-position: 0 0;
}
100% {
background-position: 2000% 0;
}
}
@keyframes thunder {
1% {
filter: saturate(1);
transform: scale(1, 1);
}
5% {
filter: saturate(4);
transform: scale(1, 1.05);
}
10% {
filter: saturate(1);
transform: scale(1, 1);
}
}
@keyframes thunder_hue {
1% {
filter: saturate(1);
}
5% {
filter: saturate(130%);
}
10% {
filter: saturate(1);
}
}
@keyframes thunder_hue_hard {
1% {
filter: saturate(1);
}
5% {
filter: saturate(3);
}
10% {
filter: saturate(1);
}
}
@keyframes bonfire {
5% {
filter: saturate(3);
}
10% {
filter: saturate(1);
}
15% {
filter: saturate(3);
}
25% {
filter: saturate(1);
}
35% {
filter: saturate(5);
}
50% {
filter: saturate(1);
}
55% {
filter: saturate(3);
}
85% {
filter: saturate(1);
}
90% {
filter: saturate(2);
}
100% {
filter: saturate(1);
}
}
@keyframes bonfire_skew {
0%,
100% {
transform: scale(1, 1) skew(0deg, 0deg);
}
10% {
transform: scale(1.01, 1.01) skew(0.5deg, -0.5deg);
}
20% {
transform: scale(1.02, 1.02) skew(1deg, -1deg);
}
30% {
transform: scale(1, 1.03) skew(0deg, 0deg);
}
40% {
transform: scale(1.01, 1.04) skew(0.5deg, -1.5deg);
}
50% {
transform: scale(1, 1.03) skew(0.5deg, -0.5deg);
}
60% {
transform: scale(1.01, 1.04) skew(0deg, 0deg);
}
70% {
transform: scale(1.02, 1.01) skew(1deg, -1deg);
}
80% {
transform: scale(1, 1.02) skew(-0.5deg, 0.5deg);
}
90% {
transform: scale(1.02, 1.03) skew(0deg, -1deg);
}
}
.excited {
animation: excited 0.5s infinite linear;
}
@keyframes excited {
0%,
100% {
transform: scale(1, 1) skew(0deg, 0deg);
}
10% {
transform: scale(1.2, 1.2) skew(0.5deg, -0.5deg);
}
90% {
transform: scale(1.02, 1.03) skew(0deg, -1deg);
}
}