LoquendoBot/src/modules/gacha/css/style.css
2024-10-13 22:21:59 +02:00

314 lines
5.7 KiB
CSS

@font-face {
font-family: 'genshin';
src: url('../fonts/zh-cn.ttf') format('truetype');
}
html,
body {
margin: 0;
padding: 0;
font-family: 'genshin';
color: #fff;
text-shadow: 0 0 25px rgba(0, 0, 0, 1);
overflow: hidden;
}
h1 {
margin: 0;
padding: 0;
text-align: center;
font-size: 4rem;
position: relative;
}
.container {
width: 100%;
height: 100%;
/* background: rgba(0, 0, 0, 0.7); */
position: absolute;
overflow: hidden;
}
.container img#character {
/* animation: wishAppear 5s steps(100, end) forwards;
transform-origin: center;
display: block;
margin: 0 auto;
height: 100%;
max-width: 100%; */
}
.container h1#name {
animation: nameAppear 0.8s steps(100, end) forwards;
animation-delay: 1s;
animation-timing-function: ease;
position: absolute;
top: calc(50% - 250px);
left: calc(50% - 200px);
opacity: 0;
z-index: 10;
}
.container h2#redeemer {
animation: nameAppear 1.5s steps(100, end) forwards;
animation-delay: 3.5s;
animation-timing-function: ease;
position: absolute;
top: calc(50% - 185px);
left: calc(50% - 200px);
opacity: 0;
z-index: 20;
}
.container h2#redeemer::before {
content: 'redeemed by\A';
white-space: pre;
}
.container h2#redeemer span#actual_name {
font-size: 2.5rem;
}
.container img#element {
animation: nameAppear 0.6s steps(100, end) forwards;
animation-delay: 1.2s;
animation-timing-function: ease;
width: 158px;
height: 158px;
position: absolute;
top: calc(50% - 250px);
left: calc(50% - 350px);
opacity: 0;
filter: drop-shadow(0px 0px 5px rgb(0 0 0 / 0.8));
}
.container div#stars {
z-index: 20;
position: absolute;
top: calc(50% - 190px);
left: calc(50% - 200px);
filter: drop-shadow(0px 0px 5px rgb(0 0 0 / 0.8));
}
.container div#stars img {
animation: starAppear 0.3s steps(100, end) forwards;
animation-delay: 1s;
width: 30px;
height: 30px;
display: inline-block;
opacity: 0;
transform: scale(10);
}
.container.exit {
animation: genshinExit 0.3s steps(100, end) forwards;
}
@keyframes wishAppear {
0% {
filter: brightness(0) blur(20px);
transform: scale(10) translate(0, 0);
}
10% {
filter: brightness(0) blur(0);
transform: scale(1) translate(0, 0);
}
20% {
filter: brightness(0) blur(0);
transform: scale(1) translate(0, 0);
}
28% {
filter: brightness(0) blur(0);
transform: scale(1) translate(50px, 0);
}
30% {
filter: brightness(0) blur(0);
transform: scale(1) translate(50px, 0);
}
40% {
filter: brightness(1) blur(0);
transform: scale(1) translate(50px, 0);
}
100% {
filter: brightness(1) blur(0);
transform: scale(1) translate(50px, 0);
}
}
@keyframes nameAppear {
0% {
opacity: 0;
transform: translate(50px, 0);
}
100% {
opacity: 1;
transform: translate(0, 0);
}
}
@keyframes starAppear {
0% {
opacity: 0;
transform: scale(10);
}
100% {
opacity: 1;
transform: scale(1);
}
}
@keyframes genshinExit {
0% {
transform: scale(1);
opacity: 1;
}
100% {
transform: scale(10);
opacity: 0;
}
}
#link_to_token {
text-align: center;
display: block;
padding: 1em;
background: #59f;
color: #fff;
text-decoration: none;
width: 50%;
text-shadow: 2px 2px 2px rgb(0 0 0 / 30%);
min-width: 400px;
margin: 2em auto;
border-radius: 15px;
}
.card-stack {
animation: fade-in-up 0.5s ease forwards;
position: absolute;
bottom: -128px;
left: 50%;
width: 256px;
height: 384px;
left: calc(50% - 128px);
}
.single-card {
width: 256px;
height: 384px;
position: absolute;
display: flex;
justify-content: center;
perspective: 900px;
transition: all 0.2s cubic-bezier(0.7, -0.5, 0.3, 1.8);
transform-style: preserve-3d;
}
@keyframes fade-in-up {
0% {
opacity: 0;
transform: translate(0, 256px);
}
100% {
opacity: 1;
}
}
.front,
.back {
position: relative;
width: 256px;
height: 384px;
top: 0;
border-radius: 5px;
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
background-size: cover;
background-position: center center;
}
.front {
background-image: url(../img/characters/back.png);
}
.back {
position: absolute;
transform: rotateY(180deg);
/* background-image: url(../img/characters/tmm.png); */
/* img/characters/imout.png */
}
.single-card:nth-child(1) {
animation: card1 0.5s forwards;
}
@keyframes card1 {
100% {
transform: translate(200px, 100px) rotate(26deg);
}
}
.single-card:nth-child(2) {
animation: card2 0.5s forwards;
}
@keyframes card2 {
100% {
transform: translate(100px, 25px) rotate(16deg);
}
}
.single-card:nth-child(3) {
animation: card3 0.5s forwards;
}
@keyframes card3 {
100% {
transform: translate(0px, 0px) rotate(0deg);
}
}
.single-card:nth-child(4) {
animation: card4 0.5s forwards;
}
@keyframes card4 {
100% {
transform: translate(-100px, 25px) rotate(-16deg);
}
}
.single-card:nth-child(5) {
animation: card5 0.5s forwards;
}
@keyframes card5 {
100% {
transform: translate(-200px, 100px) rotate(-26deg);
}
}
@keyframes rotateCard1 {
0% {
transform: translateX(200px);
}
100% {
transform: translate(0px, -250px) rotateY(180deg) scale(1.5);
}
}
@keyframes rotateCard2 {
0% {
transform: translateX(100px);
}
100% {
transform: translate(0px, -250px) rotateY(180deg) scale(1.5);
}
}
@keyframes rotateCard3 {
0% {
transform: translateX(0px);
}
100% {
transform: translate(0px, -250px) rotateY(180deg) scale(1.5);
}
}
@keyframes rotateCard4 {
0% {
transform: translateX(-100px);
}
100% {
transform: translate(0px, -250px) rotateY(180deg) scale(1.5);
}
}
@keyframes rotateCard5 {
0% {
transform: translateX(-200px);
}
100% {
transform: translate(0px, -250px) rotateY(180deg) scale(1.5);
}
}