testflight-watcher/public/assets/css/error.css

117 lines
1.9 KiB
CSS
Raw Normal View History

2024-12-14 00:55:54 +01:00
@keyframes fadeIn {
from {
opacity: 0;
transform: translateY(-20px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
@keyframes pulse {
0%,
100% {
box-shadow: 0 0 15px rgba(255, 111, 97, 0.5);
}
50% {
box-shadow: 0 0 25px rgba(255, 111, 97, 1);
}
}
body {
font-family: "Roboto", sans-serif;
background-color: #121212;
color: #e0e0e0;
margin: 0;
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
text-align: center;
animation: fadeIn 1s ease-in-out;
}
.error-container {
max-width: 600px;
padding: 50px;
background-color: #1e1e1e;
box-shadow: 0 4px 15px rgba(0, 0, 0, 0.5);
border-radius: 12px;
animation: fadeIn 1.5s ease-in-out;
}
.error-title {
font-size: 2.5em;
color: #ff6f61;
margin-bottom: 15px;
animation: fadeIn 2s ease-in-out;
}
.error-message {
margin-bottom: 25px;
font-size: 1.2em;
animation: fadeIn 2.5s ease-in-out;
}
.crossmark {
width: 56px;
height: 56px;
border-radius: 50%;
display: block;
stroke-width: 2;
stroke: #dc3545;
stroke-miterlimit: 10;
margin: 10% auto;
box-shadow: inset 0px 0px 0px #dc3545;
animation: fill 0.4s ease-in-out 0.4s forwards,
scale 0.3s ease-in-out 0.9s both;
}
.crossmark__circle {
stroke-dasharray: 166;
stroke-dashoffset: 166;
stroke-width: 2;
stroke-miterlimit: 10;
stroke: #dc3545;
fill: none;
animation: stroke 0.6s cubic-bezier(0.65, 0, 0.45, 1) forwards;
}
.crossmark__cross {
transform-origin: 50% 50%;
stroke-dasharray: 48;
stroke-dashoffset: 48;
stroke: #fff;
animation: stroke 0.3s cubic-bezier(0.65, 0, 0.45, 1) 0.7s forwards;
}
@keyframes stroke {
100% {
stroke-dashoffset: 0;
}
}
@keyframes scale {
0%,
100% {
transform: none;
}
50% {
transform: scale3d(1.1, 1.1, 1);
}
}
@keyframes fill {
100% {
box-shadow: inset 0px 0px 0px 30px #dc3545;
}
}
@keyframes fadeIn {
from {
opacity: 0;
}
to {
opacity: 1;
}
}