quatuor/css/common.css
2023-04-22 22:04:27 +02:00

206 lines
4.1 KiB
CSS

:root {
--cell-side: 20px;
}
body {
background: linear-gradient(#111315, #012) fixed;
}
.modal-content {
background-color: rgba(33, 37, 41, 30%);
backdrop-filter: blur(15px);
}
.card {
background-color: rgb(37, 41, 45);
box-shadow: 5px 5px 20px #202020;
}
.minoes-table {
table-layout: fixed;
border-collapse: separate;
border-spacing: 0;
width: min-content;
}
#matrixTable {
margin-top: calc(-1 * var(--no-bordered-rows) * var(--cell-side));
}
@keyframes hard-dropped-table-animation {
from {
transform: translateY(0);
}
25% {
transform: translateY(5px);
}
to {
transform: translateY(0);
}
}
#matrixTable.hard-dropped-table-animation {
animation: hard-dropped-table-animation .2s;
}
tr.no-border td:not(.mino) {
border-width: 0;
padding: 4px;
}
tr.border td:not(.mino) {
border: 1px solid #333;
padding: 3px;
}
td {
overflow: hidden;
width: calc(var(--cell-side) + 4px);
height: calc(var(--cell-side) + 4px);
}
@keyframes hard-drop-animation {
from {
background-color: rgb(206, 255, 255, 40%);
filter: saturate(50%) brightness(300%);
}
to {
background-color: transparent;
}
}
td.hard-drop-animation {
animation: hard-drop-animation ease-out .3s;
}
@keyframes cleared-line-animation {
from {
background-color: rgb(206, 255, 255, 40%);
filter: saturate(50%) brightness(300%);
box-shadow: -200px 0 5px white, 200px 0 5px white;
}
to {
background-color: transparent;
}
}
tr.cleared-line-animation{
animation: cleared-line-animation ease-out .3s;
}
span {
position: absolute;
top: 20%;
left: 50%;
transform: translate(-50%, 0);
color: rgba(255, 255, 255, 0.8);
text-shadow: 1px 1px rgba(0, 0, 0, 0.8);
font-size: 3vmin;
text-align: center;
}
#messagesSpan div {
opacity: 0;
overflow: hidden;
}
@keyframes show-level-animation {
from {
opacity: 0;
transform: translateY(200%);
}
50% {
opacity: 100%;
transform: translateY(0) scaleY(1);
line-height: var(--bs-body-line-height);
}
to {
opacity: 0;
transform: translateY(-100%) scaleY(0);
line-height: 0;
}
}
#messagesSpan div.show-level-animation {
animation: show-level-animation;
animation-timing-function: (0.4, 0, 0.6, 1);
animation-duration: 2s;
}
@keyframes zoom-in-animation {
from {
opacity: 0;
transform: scale3d(0.3, 0.3, 0.3);
line-height: var(--bs-body-line-height);
}
30% {
opacity: 1;
transform: scale3d(1, 1, 1);
}
80% {
opacity: 1;
transform: scale3d(1, 1, 1);
line-height: var(--bs-body-line-height);
}
to {
opacity: 0;
transform: scale3d(1.5, 0, 1);
line-height: 0;
}
}
@keyframes rotate-in-animation {
0% {
opacity:0;
transform:rotate(200deg);
line-height: var(--bs-body-line-height);
}
30% {
opacity:1;
transform:translateZ(0);
transform: scale3d(1, 1, 1);
}
80% {
opacity: 1;
transform: scale3d(1, 1, 1);
line-height: var(--bs-body-line-height);
}
to {
opacity: 0;
transform: scale3d(1.5, 0, 1);
line-height: 0;
}
}
#messagesSpan div.rotate-in-animation {
animation-name: rotate-in-animation;
animation-timing-function: cubic-bezier(.25,.46,.45,.94);
animation-duration: 1s;
}
#messagesSpan div.zoom-in-animation {
animation-name: zoom-in-animation;
animation-timing-function: cubic-bezier(.25,.46,.45,.94);
transform-origin:center;
animation-duration: 1s;
}
@keyframes game-over-animation {
from {
opacity: 0;
transform: translateY(200%);
}
to {
opacity: 100%;
transform: translateY(0) scaleY(1);
line-height: var(--bs-body-line-height);
}
}
#messagesSpan div.game-over-animation {
animation: game-over-animation;
animation-timing-function: (0.4, 0, 0.6, 1);
animation-duration: 2s;
}