You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
168 lines
3.0 KiB
CSS
168 lines
3.0 KiB
CSS
@keyframes loading {
|
|
0% {
|
|
cy: 10;
|
|
}
|
|
25% {
|
|
cy: 3;
|
|
}
|
|
50% {
|
|
cy: 10;
|
|
}
|
|
}
|
|
body {
|
|
-webkit-font-smoothing: antialiased;
|
|
background-color: #f4f7ff;
|
|
}
|
|
|
|
canvas {
|
|
height: 100vh;
|
|
pointer-events: none;
|
|
position: fixed;
|
|
width: 100%;
|
|
z-index: 2;
|
|
}
|
|
|
|
button {
|
|
background: none;
|
|
border: none;
|
|
color: #f4f7ff;
|
|
cursor: pointer;
|
|
font-family: "Quicksand", sans-serif;
|
|
font-size: 14px;
|
|
font-weight: 500;
|
|
height: 40px;
|
|
left: 50%;
|
|
outline: none;
|
|
overflow: hidden;
|
|
padding: 0 10px;
|
|
position: fixed;
|
|
top: 50%;
|
|
transform: translate(-50%, -50%);
|
|
width: 190px;
|
|
-webkit-tap-highlight-color: transparent;
|
|
z-index: 1;
|
|
}
|
|
button::before {
|
|
background: #1f2335;
|
|
border-radius: 50px;
|
|
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.4) inset;
|
|
content: "";
|
|
display: block;
|
|
height: 100%;
|
|
margin: 0 auto;
|
|
position: relative;
|
|
transition: width 0.2s cubic-bezier(0.39, 1.86, 0.64, 1) 0.3s;
|
|
width: 100%;
|
|
}
|
|
|
|
button.ready .submitMessage svg {
|
|
opacity: 1;
|
|
top: 1px;
|
|
transition: top 0.4s ease 600ms, opacity 0.3s linear 600ms;
|
|
}
|
|
button.ready .submitMessage .button-text span {
|
|
top: 0;
|
|
opacity: 1;
|
|
transition: all 0.2s ease calc(var(--dr) + 600ms);
|
|
}
|
|
|
|
button.loading::before {
|
|
transition: width 0.3s ease;
|
|
width: 80%;
|
|
}
|
|
button.loading .loadingMessage {
|
|
opacity: 1;
|
|
}
|
|
button.loading .loadingCircle {
|
|
animation-duration: 1s;
|
|
animation-iteration-count: infinite;
|
|
animation-name: loading;
|
|
cy: 10;
|
|
}
|
|
|
|
button.complete .submitMessage svg {
|
|
top: -30px;
|
|
transition: none;
|
|
}
|
|
button.complete .submitMessage .button-text span {
|
|
top: -8px;
|
|
transition: none;
|
|
}
|
|
button.complete .loadingMessage {
|
|
top: 80px;
|
|
}
|
|
button.complete .successMessage .button-text span {
|
|
left: 0;
|
|
opacity: 1;
|
|
transition: all 0.2s ease calc(var(--d) + 1000ms);
|
|
}
|
|
button.complete .successMessage svg {
|
|
stroke-dashoffset: 0;
|
|
transition: stroke-dashoffset 0.3s ease-in-out 1.4s;
|
|
}
|
|
|
|
.button-text span {
|
|
opacity: 0;
|
|
position: relative;
|
|
}
|
|
|
|
.message {
|
|
left: 50%;
|
|
position: absolute;
|
|
top: 50%;
|
|
transform: translate(-50%, -50%);
|
|
width: 100%;
|
|
}
|
|
|
|
.message svg {
|
|
display: inline-block;
|
|
fill: none;
|
|
margin-right: 5px;
|
|
stroke-linecap: round;
|
|
stroke-linejoin: round;
|
|
stroke-width: 2;
|
|
}
|
|
|
|
.submitMessage .button-text span {
|
|
top: 8px;
|
|
transition: all 0.2s ease var(--d);
|
|
}
|
|
.submitMessage svg {
|
|
color: #5c86ff;
|
|
margin-left: -1px;
|
|
opacity: 0;
|
|
position: relative;
|
|
top: 30px;
|
|
transition: top 0.4s ease, opacity 0.3s linear;
|
|
width: 14px;
|
|
}
|
|
|
|
.loadingMessage {
|
|
opacity: 0;
|
|
transition: opacity 0.3s linear 0.3s, top 0.4s cubic-bezier(0.22, 0, 0.41, -0.57);
|
|
}
|
|
.loadingMessage svg {
|
|
fill: #5c86ff;
|
|
margin: 0;
|
|
width: 22px;
|
|
}
|
|
|
|
.successMessage .button-text span {
|
|
left: 5px;
|
|
transition: all 0.2s ease var(--dr);
|
|
}
|
|
.successMessage svg {
|
|
color: #5cffa1;
|
|
stroke-dasharray: 20;
|
|
stroke-dashoffset: 20;
|
|
transition: stroke-dashoffset 0.3s ease-in-out;
|
|
width: 14px;
|
|
}
|
|
|
|
.loadingCircle:nth-child(2) {
|
|
animation-delay: 0.1s;
|
|
}
|
|
|
|
.loadingCircle:nth-child(3) {
|
|
animation-delay: 0.2s;
|
|
} |