round
This commit is contained in:
@@ -11,7 +11,7 @@ body {
|
|||||||
|
|
||||||
@supports (backdrop-filter: blur()) {
|
@supports (backdrop-filter: blur()) {
|
||||||
.modal::before {
|
.modal::before {
|
||||||
content: "";
|
content: '';
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 0;
|
top: 0;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
@@ -31,7 +31,7 @@ body {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#matrixCard {
|
#matrixCard {
|
||||||
background-image: radial-gradient(#222, #25292d)
|
background-image: radial-gradient(#222, #25292d);
|
||||||
}
|
}
|
||||||
|
|
||||||
.card-header {
|
.card-header {
|
||||||
@@ -54,7 +54,7 @@ td#timeCell {
|
|||||||
|
|
||||||
.minoes-table {
|
.minoes-table {
|
||||||
--piece-column: 0;
|
--piece-column: 0;
|
||||||
--piece-row : 0;
|
--piece-row: 0;
|
||||||
table-layout: fixed;
|
table-layout: fixed;
|
||||||
border-collapse: separate;
|
border-collapse: separate;
|
||||||
border-spacing: 0;
|
border-spacing: 0;
|
||||||
@@ -71,7 +71,7 @@ td#timeCell {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
.hard-dropped-table-animation {
|
.hard-dropped-table-animation {
|
||||||
animation: hard-dropped-table-animation ease-in-out .2s;
|
animation: hard-dropped-table-animation ease-in-out 0.2s;
|
||||||
}
|
}
|
||||||
|
|
||||||
tr.buffer-zone td:not(.mino) {
|
tr.buffer-zone td:not(.mino) {
|
||||||
@@ -79,9 +79,9 @@ tr.buffer-zone td:not(.mino) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
tr.matrix td:not(.mino) {
|
tr.matrix td:not(.mino) {
|
||||||
border-left : 1px solid #333;
|
border-left: 1px solid #333;
|
||||||
border-right : 1px solid #333;
|
border-right: 1px solid #333;
|
||||||
border-top : 1px solid #303030;
|
border-top: 1px solid #303030;
|
||||||
border-bottom: 1px solid #303030;
|
border-bottom: 1px solid #303030;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -113,26 +113,32 @@ td {
|
|||||||
}
|
}
|
||||||
|
|
||||||
td.trail-animation {
|
td.trail-animation {
|
||||||
animation: trail-animation ease-out .3s;
|
animation: trail-animation ease-out 0.3s;
|
||||||
}
|
}
|
||||||
|
|
||||||
@keyframes cleared-line-animation {
|
@keyframes cleared-line-animation {
|
||||||
from {
|
from {
|
||||||
background-color: white;
|
background-color: white;
|
||||||
filter: saturate(50%) brightness(300%);
|
filter: saturate(50%) brightness(300%);
|
||||||
box-shadow: 0 0 0 #adb5bd, 0 0 0 #adb5bd;
|
box-shadow:
|
||||||
|
0 0 0 #adb5bd,
|
||||||
|
0 0 0 #adb5bd;
|
||||||
}
|
}
|
||||||
60% {
|
60% {
|
||||||
box-shadow: -60px 0 2px #adb5bd66, 60px 0 2px #adb5bd66;
|
box-shadow:
|
||||||
|
-60px 0 2px #adb5bd66,
|
||||||
|
60px 0 2px #adb5bd66;
|
||||||
}
|
}
|
||||||
to {
|
to {
|
||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
box-shadow: -100px 0 5px transparent, 100px 0 5px transparent;
|
box-shadow:
|
||||||
|
-100px 0 5px transparent,
|
||||||
|
100px 0 5px transparent;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
tr.cleared-line-animation {
|
tr.cleared-line-animation {
|
||||||
animation: cleared-line-animation ease-out .3s;
|
animation: cleared-line-animation ease-out 0.3s;
|
||||||
}
|
}
|
||||||
|
|
||||||
#holdTable .J,
|
#holdTable .J,
|
||||||
@@ -193,7 +199,6 @@ tr.cleared-line-animation {
|
|||||||
opacity: 0;
|
opacity: 0;
|
||||||
transform: scale3d(0.3, 0.3, 0.3);
|
transform: scale3d(0.3, 0.3, 0.3);
|
||||||
line-height: var(--bs-body-line-height);
|
line-height: var(--bs-body-line-height);
|
||||||
|
|
||||||
}
|
}
|
||||||
30% {
|
30% {
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
@@ -213,13 +218,13 @@ tr.cleared-line-animation {
|
|||||||
|
|
||||||
@keyframes rotate-in-animation {
|
@keyframes rotate-in-animation {
|
||||||
0% {
|
0% {
|
||||||
opacity:0;
|
opacity: 0;
|
||||||
transform:rotate(200deg);
|
transform: rotate(200deg);
|
||||||
line-height: var(--bs-body-line-height);
|
line-height: var(--bs-body-line-height);
|
||||||
}
|
}
|
||||||
30% {
|
30% {
|
||||||
opacity:1;
|
opacity: 1;
|
||||||
transform:translateZ(0);
|
transform: translateZ(0);
|
||||||
transform: scale3d(1, 1, 1);
|
transform: scale3d(1, 1, 1);
|
||||||
}
|
}
|
||||||
80% {
|
80% {
|
||||||
@@ -236,14 +241,14 @@ tr.cleared-line-animation {
|
|||||||
|
|
||||||
#messagesSpan div.rotate-in-animation {
|
#messagesSpan div.rotate-in-animation {
|
||||||
animation-name: rotate-in-animation;
|
animation-name: rotate-in-animation;
|
||||||
animation-timing-function: cubic-bezier(.25,.46,.45,.94);
|
animation-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
|
||||||
animation-duration: 1s;
|
animation-duration: 1s;
|
||||||
}
|
}
|
||||||
|
|
||||||
#messagesSpan div.zoom-in-animation {
|
#messagesSpan div.zoom-in-animation {
|
||||||
animation-name: zoom-in-animation;
|
animation-name: zoom-in-animation;
|
||||||
animation-timing-function: cubic-bezier(.25,.46,.45,.94);
|
animation-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
|
||||||
transform-origin:center;
|
transform-origin: center;
|
||||||
animation-duration: 1s;
|
animation-duration: 1s;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
body {
|
body {
|
||||||
background-image: url("electro/bg.jpg");
|
background-image: url('electro/bg.jpg');
|
||||||
background-size: cover;
|
background-size: cover;
|
||||||
}
|
}
|
||||||
|
|
||||||
body[data-bs-theme="dark"] {
|
body[data-bs-theme='dark'] {
|
||||||
--bs-body-bg: #2125296b;
|
--bs-body-bg: #2125296b;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -16,7 +16,7 @@ body[data-bs-theme="dark"] {
|
|||||||
}
|
}
|
||||||
|
|
||||||
tr.matrix td:not(.mino) {
|
tr.matrix td:not(.mino) {
|
||||||
border-left : none;
|
border-left: none;
|
||||||
border-bottom: none;
|
border-bottom: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -30,19 +30,20 @@ tr.matrix td:not(.mino) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.mino:not(.ghost):not(.locking):before {
|
.mino:not(.ghost):not(.locking):before {
|
||||||
content: "";
|
content: '';
|
||||||
position: absolute;
|
position: absolute;
|
||||||
z-index: -1;
|
z-index: -1;
|
||||||
inset: 0;
|
inset: 0;
|
||||||
margin: 1px 1px 0px 0px;
|
margin: 1px 1px 0px 0px;
|
||||||
padding: 2px;
|
padding: 2px;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
--glint-x: calc(50% + 50% * (var(--piece-column) - var(--column))/10);
|
--glint-x: calc(50% + 50% * (var(--piece-column) - var(--column)) / 10);
|
||||||
--glint-y: calc(50% + 50% * (var(--piece-row) - var(--row))/25);
|
--glint-y: calc(50% + 50% * (var(--piece-row) - var(--row)) / 25);
|
||||||
background: radial-gradient(
|
background: radial-gradient(
|
||||||
at var(--glint-x) var(--glint-y),
|
at var(--glint-x) var(--glint-y),
|
||||||
rgba(204, 238, 247, 0.9) 0%,
|
rgba(204, 238, 247, 0.9) 0%,
|
||||||
rgba(10, 159, 218, 0.9) 150%);
|
rgba(10, 159, 218, 0.9) 150%
|
||||||
|
);
|
||||||
mask:
|
mask:
|
||||||
linear-gradient(#666 0 0) content-box,
|
linear-gradient(#666 0 0) content-box,
|
||||||
linear-gradient(#fff 0 0);
|
linear-gradient(#fff 0 0);
|
||||||
@@ -52,7 +53,7 @@ tr.matrix td:not(.mino) {
|
|||||||
|
|
||||||
.ghost.mino {
|
.ghost.mino {
|
||||||
background: rgba(242, 255, 255, 10%);
|
background: rgba(242, 255, 255, 10%);
|
||||||
border : 2px solid rgba(255, 255, 255, 0.3);
|
border: 2px solid rgba(255, 255, 255, 0.3);
|
||||||
border-radius: 3px;
|
border-radius: 3px;
|
||||||
box-shadow: 0px 0px 10px rgba(242, 255, 255, 75%);
|
box-shadow: 0px 0px 10px rgba(242, 255, 255, 75%);
|
||||||
}
|
}
|
||||||
|
|||||||
52
css/jazz.css
52
css/jazz.css
@@ -7,7 +7,7 @@ body {
|
|||||||
gap: 0 !important;
|
gap: 0 !important;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
text-transform: uppercase;
|
text-transform: uppercase;
|
||||||
letter-spacing: .1em;
|
letter-spacing: 0.1em;
|
||||||
}
|
}
|
||||||
|
|
||||||
#screenRow {
|
#screenRow {
|
||||||
@@ -26,7 +26,7 @@ body {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.card-header,
|
.card-header,
|
||||||
.card-header th{
|
.card-header th {
|
||||||
background: transparent;
|
background: transparent;
|
||||||
font-weight: 400 !important;
|
font-weight: 400 !important;
|
||||||
font-size: 1.3em;
|
font-size: 1.3em;
|
||||||
@@ -40,12 +40,8 @@ body {
|
|||||||
.minoes-table {
|
.minoes-table {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
filter:
|
filter: drop-shadow(-2px 0 0 white) drop-shadow(2px 0 0 white) drop-shadow(0 -2px 0 white)
|
||||||
drop-shadow(-2px 0 0 white)
|
drop-shadow(0 2px 0 white) drop-shadow(5px 8px 0 rgba(9, 9, 9, 22%));
|
||||||
drop-shadow(2px 0 0 white)
|
|
||||||
drop-shadow(0 -2px 0 white)
|
|
||||||
drop-shadow(0 2px 0 white)
|
|
||||||
drop-shadow(5px 8px 0 rgba(9, 9, 9, 22%));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.minoes-table tr {
|
.minoes-table tr {
|
||||||
@@ -128,45 +124,45 @@ tr.matrix td:not(.mino) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.I.mino {
|
.I.mino {
|
||||||
background-color: #42AFE1;
|
background-color: #42afe1;
|
||||||
border-color: #6CEAFF;
|
border-color: #6ceaff;
|
||||||
--box-shadow-color: #6CEAFF;
|
--box-shadow-color: #6ceaff;
|
||||||
}
|
}
|
||||||
|
|
||||||
.J.mino {
|
.J.mino {
|
||||||
background-color: #1165B5;
|
background-color: #1165b5;
|
||||||
border-color: #339BFF;
|
border-color: #339bff;
|
||||||
--box-shadow-color: #339BFF;
|
--box-shadow-color: #339bff;
|
||||||
}
|
}
|
||||||
|
|
||||||
.L.mino {
|
.L.mino {
|
||||||
background-color: #F38927;
|
background-color: #f38927;
|
||||||
border-color: #FFBA59;
|
border-color: #ffba59;
|
||||||
--box-shadow-color: #FFBA59;
|
--box-shadow-color: #ffba59;
|
||||||
}
|
}
|
||||||
|
|
||||||
.O.mino {
|
.O.mino {
|
||||||
background-color: #F6D03C;
|
background-color: #f6d03c;
|
||||||
border-color: #FFFF7F;
|
border-color: #ffff7f;
|
||||||
--box-shadow-color: #FFFF7F;
|
--box-shadow-color: #ffff7f;
|
||||||
}
|
}
|
||||||
|
|
||||||
.S.mino {
|
.S.mino {
|
||||||
background-color: #32ee3e;
|
background-color: #32ee3e;
|
||||||
border-color: #84F880;
|
border-color: #84f880;
|
||||||
--box-shadow-color: #84F880;
|
--box-shadow-color: #84f880;
|
||||||
}
|
}
|
||||||
|
|
||||||
.T.mino {
|
.T.mino {
|
||||||
background-color: #9739A2;
|
background-color: #9739a2;
|
||||||
border-color: #D958E9;
|
border-color: #d958e9;
|
||||||
--box-shadow-color: #D958E9;
|
--box-shadow-color: #d958e9;
|
||||||
}
|
}
|
||||||
|
|
||||||
.Z.mino {
|
.Z.mino {
|
||||||
background-color: #EB4F65;
|
background-color: #eb4f65;
|
||||||
border-color: #FF7F79;
|
border-color: #ff7f79;
|
||||||
--box-shadow-color: #FF7F79;
|
--box-shadow-color: #ff7f79;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ghost.mino {
|
.ghost.mino {
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ tr.matrix td:not(.mino) {
|
|||||||
|
|
||||||
.L.mino {
|
.L.mino {
|
||||||
background-color: #fa9b23;
|
background-color: #fa9b23;
|
||||||
--box-shadow-color: #FFBA59;
|
--box-shadow-color: #ffba59;
|
||||||
}
|
}
|
||||||
|
|
||||||
.O.mino {
|
.O.mino {
|
||||||
@@ -56,7 +56,7 @@ tr.matrix td:not(.mino) {
|
|||||||
|
|
||||||
.S.mino {
|
.S.mino {
|
||||||
background-color: #01a493;
|
background-color: #01a493;
|
||||||
--box-shadow-color: #03e7d3;;
|
--box-shadow-color: #03e7d3;
|
||||||
}
|
}
|
||||||
|
|
||||||
.T.mino {
|
.T.mino {
|
||||||
@@ -66,7 +66,7 @@ tr.matrix td:not(.mino) {
|
|||||||
|
|
||||||
.Z.mino {
|
.Z.mino {
|
||||||
background-color: #ee2b58;
|
background-color: #ee2b58;
|
||||||
--box-shadow-color: #fd4487;;
|
--box-shadow-color: #fd4487;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ghost.mino {
|
.ghost.mino {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
:root {
|
:root {
|
||||||
--cell-size: 24px;
|
--cell-size: 24px;
|
||||||
--sprite-size: calc(100% / 8);
|
--sprite-size: round(100% / 8, 1px);
|
||||||
--skin-url: url(https://i.imgur.com/HqGYC5G.png);
|
--skin-url: url(https://i.imgur.com/HqGYC5G.png);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -75,21 +75,7 @@ tr.matrix td:not(.mino) {
|
|||||||
box-shadow: 4px 4px 10px #0002;
|
box-shadow: 4px 4px 10px #0002;
|
||||||
}
|
}
|
||||||
|
|
||||||
.option {
|
.preview {
|
||||||
display: inline-block;
|
--cell-size: 24px;
|
||||||
height: var(--cell-size);
|
height: var(--cell-size);
|
||||||
}
|
}
|
||||||
|
|
||||||
.result {
|
|
||||||
--nb-sprites: 9;
|
|
||||||
}
|
|
||||||
|
|
||||||
.select2-container:not(.select2-container--disabled) .selection {
|
|
||||||
--nb-sprites: 4;
|
|
||||||
--sprite-pos: 4;
|
|
||||||
width: calc(var(--nb-sprites) * var(--cell-size));
|
|
||||||
background-position-x: calc(-1 * var(--sprite-pos) * var(--cell-size));
|
|
||||||
background-image: var(--skin-url);
|
|
||||||
background-size: cover;
|
|
||||||
background-repeat: no-repeat;
|
|
||||||
}
|
|
||||||
@@ -5,12 +5,8 @@
|
|||||||
.minoes-table {
|
.minoes-table {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
filter:
|
filter: drop-shadow(-2px 0 0 white) drop-shadow(2px 0 0 white) drop-shadow(0 -2px 0 white)
|
||||||
drop-shadow(-2px 0 0 white)
|
drop-shadow(0 2px 0 white) drop-shadow(5px 8px 0 rgba(9, 9, 9, 22%));
|
||||||
drop-shadow(2px 0 0 white)
|
|
||||||
drop-shadow(0 -2px 0 white)
|
|
||||||
drop-shadow(0 2px 0 white)
|
|
||||||
drop-shadow(5px 8px 0 rgba(9, 9, 9, 22%));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.minoes-table tr {
|
.minoes-table tr {
|
||||||
@@ -41,38 +37,38 @@ tr.matrix td:not(.mino) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.I.mino {
|
.I.mino {
|
||||||
--background-color: #42AFE1;
|
--background-color: #42afe1;
|
||||||
--box-shadow-color: #6CEAFF;
|
--box-shadow-color: #6ceaff;
|
||||||
}
|
}
|
||||||
|
|
||||||
.J.mino {
|
.J.mino {
|
||||||
--background-color: #1165B5;
|
--background-color: #1165b5;
|
||||||
--box-shadow-color: #339BFF;
|
--box-shadow-color: #339bff;
|
||||||
}
|
}
|
||||||
|
|
||||||
.L.mino {
|
.L.mino {
|
||||||
--background-color: #F38927;
|
--background-color: #f38927;
|
||||||
--box-shadow-color: #FFBA59;
|
--box-shadow-color: #ffba59;
|
||||||
}
|
}
|
||||||
|
|
||||||
.O.mino {
|
.O.mino {
|
||||||
--background-color: #F6D03C;
|
--background-color: #f6d03c;
|
||||||
--box-shadow-color: #FFFF7F;
|
--box-shadow-color: #ffff7f;
|
||||||
}
|
}
|
||||||
|
|
||||||
.S.mino {
|
.S.mino {
|
||||||
--background-color: #51B84D;
|
--background-color: #51b84d;
|
||||||
--box-shadow-color: #84F880;
|
--box-shadow-color: #84f880;
|
||||||
}
|
}
|
||||||
|
|
||||||
.T.mino {
|
.T.mino {
|
||||||
--background-color: #9739A2;
|
--background-color: #9739a2;
|
||||||
--box-shadow-color: #D958E9;
|
--box-shadow-color: #d958e9;
|
||||||
}
|
}
|
||||||
|
|
||||||
.Z.mino {
|
.Z.mino {
|
||||||
--background-color: #EB4F65;
|
--background-color: #eb4f65;
|
||||||
--box-shadow-color: #FF7F79;
|
--box-shadow-color: #ff7f79;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ghost.mino {
|
.ghost.mino {
|
||||||
@@ -87,7 +83,7 @@ tr.matrix td:not(.mino) {
|
|||||||
|
|
||||||
.locking.mino {
|
.locking.mino {
|
||||||
--background-color: white;
|
--background-color: white;
|
||||||
--box-shadow-color: #DDD;
|
--box-shadow-color: #ddd;
|
||||||
}
|
}
|
||||||
|
|
||||||
.locked.mino {
|
.locked.mino {
|
||||||
|
|||||||
@@ -4,12 +4,12 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: "Early GameBoy";
|
font-family: 'Early GameBoy';
|
||||||
src: url("old-school/Early GameBoy.ttf");
|
src: url('old-school/Early GameBoy.ttf');
|
||||||
}
|
}
|
||||||
|
|
||||||
#screenRow {
|
#screenRow {
|
||||||
background-image: url("old-school/bg.png");
|
background-image: url('old-school/bg.png');
|
||||||
background-size: 10px;
|
background-size: 10px;
|
||||||
padding: 40px 20px;
|
padding: 40px 20px;
|
||||||
border: 3px inset black;
|
border: 3px inset black;
|
||||||
@@ -21,9 +21,9 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.card {
|
.card {
|
||||||
background: #8D8E04;
|
background: #8d8e04;
|
||||||
border-radius: 0;
|
border-radius: 0;
|
||||||
border-image-source: url("old-school/border-sm.png");
|
border-image-source: url('old-school/border-sm.png');
|
||||||
border-image-slice: 25;
|
border-image-slice: 25;
|
||||||
border-image-width: 13px;
|
border-image-width: 13px;
|
||||||
border-image-repeat: repeat;
|
border-image-repeat: repeat;
|
||||||
@@ -33,12 +33,12 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.card-header {
|
.card-header {
|
||||||
background: #8D8E04;
|
background: #8d8e04;
|
||||||
}
|
}
|
||||||
|
|
||||||
#matrixCard {
|
#matrixCard {
|
||||||
background: #808302;
|
background: #808302;
|
||||||
border-image-source: url("old-school/border-lg.png");
|
border-image-source: url('old-school/border-lg.png');
|
||||||
border-image-slice: 30;
|
border-image-slice: 30;
|
||||||
border-image-width: 15px;
|
border-image-width: 15px;
|
||||||
border-image-outset: 15px;
|
border-image-outset: 15px;
|
||||||
@@ -48,16 +48,18 @@
|
|||||||
.card,
|
.card,
|
||||||
.card-header,
|
.card-header,
|
||||||
#messagesSpan div {
|
#messagesSpan div {
|
||||||
font-family: "Early GameBoy", monospace;
|
font-family: 'Early GameBoy', monospace;
|
||||||
font-smooth: never;
|
font-smooth: never;
|
||||||
-webkit-font-smoothing: none;
|
-webkit-font-smoothing: none;
|
||||||
color: #254806;
|
color: #254806;
|
||||||
text-shadow: -1px -1px 3px rgba(0, 0, 0, 40%), 1px 1px 1px rgba(0, 0, 0, 40%);
|
text-shadow:
|
||||||
|
-1px -1px 3px rgba(0, 0, 0, 40%),
|
||||||
|
1px 1px 1px rgba(0, 0, 0, 40%);
|
||||||
}
|
}
|
||||||
|
|
||||||
#statsTable {
|
#statsTable {
|
||||||
font-size: .7em;
|
font-size: 0.7em;
|
||||||
letter-spacing: -.1em;
|
letter-spacing: -0.1em;
|
||||||
}
|
}
|
||||||
|
|
||||||
#statsTable tr {
|
#statsTable tr {
|
||||||
@@ -68,7 +70,7 @@
|
|||||||
#statsTable th,
|
#statsTable th,
|
||||||
#statsTable td {
|
#statsTable td {
|
||||||
border: 0;
|
border: 0;
|
||||||
padding: 0 .2rem;
|
padding: 0 0.2rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
#statsTable td {
|
#statsTable td {
|
||||||
@@ -77,7 +79,11 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
#messagesSpan {
|
#messagesSpan {
|
||||||
text-shadow: -2px -2px #808302, -2px 2px #808302, 2px -2px #808302, 2px 2px #808302;
|
text-shadow:
|
||||||
|
-2px -2px #808302,
|
||||||
|
-2px 2px #808302,
|
||||||
|
2px -2px #808302,
|
||||||
|
2px 2px #808302;
|
||||||
}
|
}
|
||||||
|
|
||||||
.minoes-table td {
|
.minoes-table td {
|
||||||
@@ -85,9 +91,11 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.mino {
|
.mino {
|
||||||
box-shadow: -2px -2px 5px rgba(0, 0, 0, 40%), 1px 1px 2px rgba(0, 0, 0, 40%);
|
box-shadow:
|
||||||
|
-2px -2px 5px rgba(0, 0, 0, 40%),
|
||||||
|
1px 1px 2px rgba(0, 0, 0, 40%);
|
||||||
background-size: cover;
|
background-size: cover;
|
||||||
background-image: url("old-school/sprites.png");
|
background-image: url('old-school/sprites.png');
|
||||||
background-position: calc(var(--sprite-pos) * var(--sprite-size)) 0px;
|
background-position: calc(var(--sprite-pos) * var(--sprite-size)) 0px;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -139,18 +147,25 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.hard-dropped-table-animation {
|
.hard-dropped-table-animation {
|
||||||
animation: hard-dropped-table-animation steps(1) .2s;
|
animation: hard-dropped-table-animation steps(1) 0.2s;
|
||||||
}
|
}
|
||||||
|
|
||||||
@keyframes cleared-line-animation {
|
@keyframes cleared-line-animation {
|
||||||
10%, 30%, 50%, 70%, 90% {
|
10%,
|
||||||
|
30%,
|
||||||
|
50%,
|
||||||
|
70%,
|
||||||
|
90% {
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
}
|
}
|
||||||
20%, 40%, 60%, 80% {
|
20%,
|
||||||
|
40%,
|
||||||
|
60%,
|
||||||
|
80% {
|
||||||
opacity: 100%;
|
opacity: 100%;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
tr.cleared-line-animation {
|
tr.cleared-line-animation {
|
||||||
animation: cleared-line-animation ease-out .4s;
|
animation: cleared-line-animation ease-out 0.4s;
|
||||||
}
|
}
|
||||||
@@ -7,7 +7,7 @@ body {
|
|||||||
gap: 0 !important;
|
gap: 0 !important;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
text-transform: uppercase;
|
text-transform: uppercase;
|
||||||
letter-spacing: .1em;
|
letter-spacing: 0.1em;
|
||||||
}
|
}
|
||||||
|
|
||||||
#screenRow {
|
#screenRow {
|
||||||
@@ -22,7 +22,7 @@ body {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.card-header,
|
.card-header,
|
||||||
.card-header th{
|
.card-header th {
|
||||||
background: transparent;
|
background: transparent;
|
||||||
font-weight: 400 !important;
|
font-weight: 400 !important;
|
||||||
font-size: 1.3em;
|
font-size: 1.3em;
|
||||||
@@ -95,38 +95,38 @@ td#timeCell {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.I.mino {
|
.I.mino {
|
||||||
background-color: #42AFE1;
|
background-color: #42afe1;
|
||||||
border-color: #6CEAFF;
|
border-color: #6ceaff;
|
||||||
}
|
}
|
||||||
|
|
||||||
.J.mino {
|
.J.mino {
|
||||||
background-color: #1165B5;
|
background-color: #1165b5;
|
||||||
border-color: #339BFF;
|
border-color: #339bff;
|
||||||
}
|
}
|
||||||
|
|
||||||
.L.mino {
|
.L.mino {
|
||||||
background-color: #F38927;
|
background-color: #f38927;
|
||||||
border-color: #FFBA59;
|
border-color: #ffba59;
|
||||||
}
|
}
|
||||||
|
|
||||||
.O.mino {
|
.O.mino {
|
||||||
background-color: #F6D03C;
|
background-color: #f6d03c;
|
||||||
border-color: #FFFF7F;
|
border-color: #ffff7f;
|
||||||
}
|
}
|
||||||
|
|
||||||
.S.mino {
|
.S.mino {
|
||||||
background-color: #32ee3e;
|
background-color: #32ee3e;
|
||||||
border-color: #84F880;
|
border-color: #84f880;
|
||||||
}
|
}
|
||||||
|
|
||||||
.T.mino {
|
.T.mino {
|
||||||
background-color: #9739A2;
|
background-color: #9739a2;
|
||||||
border-color: #D958E9;
|
border-color: #d958e9;
|
||||||
}
|
}
|
||||||
|
|
||||||
.Z.mino {
|
.Z.mino {
|
||||||
background-color: #EB4F65;
|
background-color: #eb4f65;
|
||||||
border-color: #FF7F79;
|
border-color: #ff7f79;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ghost.mino {
|
.ghost.mino {
|
||||||
|
|||||||
136
css/stereo.css
136
css/stereo.css
@@ -6,8 +6,10 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
body {
|
body {
|
||||||
background-image: url(stereo/bg.jpg),
|
background-image:
|
||||||
radial-gradient(circle at center,
|
url(stereo/bg.jpg),
|
||||||
|
radial-gradient(
|
||||||
|
circle at center,
|
||||||
#39444f 0%,
|
#39444f 0%,
|
||||||
#2c323b 25%,
|
#2c323b 25%,
|
||||||
#293036 28%,
|
#293036 28%,
|
||||||
@@ -18,7 +20,8 @@ body {
|
|||||||
#151519 63%,
|
#151519 63%,
|
||||||
#141418 65%,
|
#141418 65%,
|
||||||
#0f0f12 74%,
|
#0f0f12 74%,
|
||||||
#0a0c0d 100%);
|
#0a0c0d 100%
|
||||||
|
);
|
||||||
background-repeat: space;
|
background-repeat: space;
|
||||||
background-position: center;
|
background-position: center;
|
||||||
background-size: cover;
|
background-size: cover;
|
||||||
@@ -37,7 +40,8 @@ body {
|
|||||||
--light-rX: calc(-1 * var(--rY) / 30);
|
--light-rX: calc(-1 * var(--rY) / 30);
|
||||||
--light-rY: calc(var(--rX) / 20);
|
--light-rY: calc(var(--rX) / 20);
|
||||||
display: block;
|
display: block;
|
||||||
transform: translateZ(var(--tZ)) rotateX(calc((var(--rX)) * 1deg)) rotateY(calc((var(--rY)) * 1deg));
|
transform: translateZ(var(--tZ)) rotateX(calc((var(--rX)) * 1deg))
|
||||||
|
rotateY(calc((var(--rY)) * 1deg));
|
||||||
}
|
}
|
||||||
|
|
||||||
#sceneDiv,
|
#sceneDiv,
|
||||||
@@ -68,7 +72,7 @@ body {
|
|||||||
background-image: none;
|
background-image: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
#screenRow .card>* {
|
#screenRow .card > * {
|
||||||
transform: translateZ(var(--cell-size));
|
transform: translateZ(var(--cell-size));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -79,8 +83,7 @@ body {
|
|||||||
|
|
||||||
.card,
|
.card,
|
||||||
.card-header {
|
.card-header {
|
||||||
text-shadow:
|
text-shadow: calc(-0.3px * var(--rY)) calc(0.4px * var(--rX)) 5px #0008;
|
||||||
calc(-0.3px * var(--rY)) calc(0.4px * var(--rX)) 5px #0008;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#holdTable .mino {
|
#holdTable .mino {
|
||||||
@@ -160,11 +163,7 @@ tr.cleared-line-animation td::after {
|
|||||||
/* Front face */
|
/* Front face */
|
||||||
.mino,
|
.mino,
|
||||||
td.trail-animation {
|
td.trail-animation {
|
||||||
--light: calc(
|
--light: calc(1 + (var(--light-y) * 0.3) + (var(--light-x) * 0.2));
|
||||||
1
|
|
||||||
+ (var(--light-y) * 0.3)
|
|
||||||
+ (var(--light-x) * 0.2)
|
|
||||||
);
|
|
||||||
--center-x: calc(35% + var(--light-x) * 10%);
|
--center-x: calc(35% + var(--light-x) * 10%);
|
||||||
--center-y: calc(35% + var(--light-y) * 10%);
|
--center-y: calc(35% + var(--light-y) * 10%);
|
||||||
background: radial-gradient(
|
background: radial-gradient(
|
||||||
@@ -182,11 +181,7 @@ td.trail-animation {
|
|||||||
td.trail-animation::before,
|
td.trail-animation::before,
|
||||||
tr.cleared-line-animation td::before,
|
tr.cleared-line-animation td::before,
|
||||||
.mino + .mino::before {
|
.mino + .mino::before {
|
||||||
--light: calc(
|
--light: calc(1.1 + (var(--light-x) * -0.2) + (var(--light-y) * 0.15));
|
||||||
1.1
|
|
||||||
+ (var(--light-x) * -0.2)
|
|
||||||
+ (var(--light-y) * 0.15)
|
|
||||||
);
|
|
||||||
transform: var(--t3d) rotateY(-90deg);
|
transform: var(--t3d) rotateY(-90deg);
|
||||||
transform-origin: left;
|
transform-origin: left;
|
||||||
}
|
}
|
||||||
@@ -196,11 +191,7 @@ tr.cleared-line-animation td::before,
|
|||||||
.right .mino + .mino::before,
|
.right .mino + .mino::before,
|
||||||
.right td.trail-animation::before,
|
.right td.trail-animation::before,
|
||||||
.right tr.cleared-line-animation td::before {
|
.right tr.cleared-line-animation td::before {
|
||||||
--light: calc(
|
--light: calc(0.85 + (var(--light-x) * -0.2) + (var(--light-y) * -0.15));
|
||||||
0.85
|
|
||||||
+ (var(--light-x) * -0.2)
|
|
||||||
+ (var(--light-y) * -0.15)
|
|
||||||
);
|
|
||||||
--center-x: calc(65% + var(--light-x) * 10%);
|
--center-x: calc(65% + var(--light-x) * 10%);
|
||||||
--center-y: calc(35% + var(--light-y) * 10%);
|
--center-y: calc(35% + var(--light-y) * 10%);
|
||||||
filter: saturate(0.95);
|
filter: saturate(0.95);
|
||||||
@@ -217,10 +208,7 @@ tr.cleared-line-animation td::before,
|
|||||||
.mino::after,
|
.mino::after,
|
||||||
td.trail-animation::after,
|
td.trail-animation::after,
|
||||||
tr.cleared-line-animation td::after {
|
tr.cleared-line-animation td::after {
|
||||||
--light: calc(
|
--light: calc(1.5 + (var(--light-y) * 0.2));
|
||||||
1.5
|
|
||||||
+ (var(--light-y) * 0.2)
|
|
||||||
);
|
|
||||||
transform: var(--t3d) rotateX(90deg);
|
transform: var(--t3d) rotateX(90deg);
|
||||||
transform-origin: top;
|
transform-origin: top;
|
||||||
}
|
}
|
||||||
@@ -229,10 +217,7 @@ tr.cleared-line-animation td::after {
|
|||||||
.bottom .mino::after,
|
.bottom .mino::after,
|
||||||
.bottom td.trail-animation::after,
|
.bottom td.trail-animation::after,
|
||||||
.bottom tr.cleared-line-animation td::after {
|
.bottom tr.cleared-line-animation td::after {
|
||||||
--light: calc(
|
--light: calc(1.1 + (var(--light-y) * -0.3));
|
||||||
1.1
|
|
||||||
+ (var(--light-y) * -0.3)
|
|
||||||
);
|
|
||||||
--center-x: calc(65% + var(--light-x) * 10%);
|
--center-x: calc(65% + var(--light-x) * 10%);
|
||||||
--center-y: calc(65% + var(--light-y) * 10%);
|
--center-y: calc(65% + var(--light-y) * 10%);
|
||||||
filter: saturate(0.95);
|
filter: saturate(0.95);
|
||||||
@@ -240,17 +225,77 @@ tr.cleared-line-animation td::after {
|
|||||||
transform-origin: bottom;
|
transform-origin: bottom;
|
||||||
}
|
}
|
||||||
|
|
||||||
.J, .J + :not(.mino) { --h: 210deg; --s: 78%; --l: 52%; --a: 0.75; }
|
.J,
|
||||||
.L, .L + :not(.mino) { --h: 28deg; --s: 85%; --l: 52%; --a: 0.75; }
|
.J + :not(.mino) {
|
||||||
.O, .O + :not(.mino) { --h: 48deg; --s: 88%; --l: 52%; --a: 0.75; }
|
--h: 210deg;
|
||||||
.I, .I + :not(.mino) { --h: 200deg; --s: 70%; --l: 52%; --a: 0.75; }
|
--s: 78%;
|
||||||
.S, .S + :not(.mino) { --h: 118deg; --s: 45%; --l: 52%; --a: 0.75; }
|
--l: 52%;
|
||||||
.T, .T + :not(.mino) { --h: 293deg; --s: 48%; --l: 52%; --a: 0.75; }
|
--a: 0.75;
|
||||||
.Z, .Z + :not(.mino) { --h: 352deg; --s: 75%; --l: 52%; --a: 0.75; }
|
}
|
||||||
|
.L,
|
||||||
|
.L + :not(.mino) {
|
||||||
|
--h: 28deg;
|
||||||
|
--s: 85%;
|
||||||
|
--l: 52%;
|
||||||
|
--a: 0.75;
|
||||||
|
}
|
||||||
|
.O,
|
||||||
|
.O + :not(.mino) {
|
||||||
|
--h: 48deg;
|
||||||
|
--s: 88%;
|
||||||
|
--l: 52%;
|
||||||
|
--a: 0.75;
|
||||||
|
}
|
||||||
|
.I,
|
||||||
|
.I + :not(.mino) {
|
||||||
|
--h: 200deg;
|
||||||
|
--s: 70%;
|
||||||
|
--l: 52%;
|
||||||
|
--a: 0.75;
|
||||||
|
}
|
||||||
|
.S,
|
||||||
|
.S + :not(.mino) {
|
||||||
|
--h: 118deg;
|
||||||
|
--s: 45%;
|
||||||
|
--l: 52%;
|
||||||
|
--a: 0.75;
|
||||||
|
}
|
||||||
|
.T,
|
||||||
|
.T + :not(.mino) {
|
||||||
|
--h: 293deg;
|
||||||
|
--s: 48%;
|
||||||
|
--l: 52%;
|
||||||
|
--a: 0.75;
|
||||||
|
}
|
||||||
|
.Z,
|
||||||
|
.Z + :not(.mino) {
|
||||||
|
--h: 352deg;
|
||||||
|
--s: 75%;
|
||||||
|
--l: 52%;
|
||||||
|
--a: 0.75;
|
||||||
|
}
|
||||||
|
|
||||||
.ghost.mino, .ghost.mino + :not(.mino) { --h: 0deg; --s: 0%; --l: 55%; --a: 0.40; }
|
.ghost.mino,
|
||||||
.locking.mino, .locking.mino + :not(.mino) { --h: 0deg; --s: 0%; --l: 92%; --a: 0.72; }
|
.ghost.mino + :not(.mino) {
|
||||||
.disabled.mino, .disabled.mino + :not(.mino) { --h: 0deg; --s: 0%; --l: 45%; --a: 0.72; }
|
--h: 0deg;
|
||||||
|
--s: 0%;
|
||||||
|
--l: 55%;
|
||||||
|
--a: 0.4;
|
||||||
|
}
|
||||||
|
.locking.mino,
|
||||||
|
.locking.mino + :not(.mino) {
|
||||||
|
--h: 0deg;
|
||||||
|
--s: 0%;
|
||||||
|
--l: 92%;
|
||||||
|
--a: 0.72;
|
||||||
|
}
|
||||||
|
.disabled.mino,
|
||||||
|
.disabled.mino + :not(.mino) {
|
||||||
|
--h: 0deg;
|
||||||
|
--s: 0%;
|
||||||
|
--l: 45%;
|
||||||
|
--a: 0.72;
|
||||||
|
}
|
||||||
|
|
||||||
#holdTable .J + :not(.mino),
|
#holdTable .J + :not(.mino),
|
||||||
#holdTable .L + :not(.mino),
|
#holdTable .L + :not(.mino),
|
||||||
@@ -278,12 +323,15 @@ tr.cleared-line-animation td::after {
|
|||||||
|
|
||||||
td.trail-animation::before,
|
td.trail-animation::before,
|
||||||
td.trail-animation::after {
|
td.trail-animation::after {
|
||||||
animation: trail-animation ease-out .3s;
|
animation: trail-animation ease-out 0.3s;
|
||||||
}
|
}
|
||||||
|
|
||||||
@keyframes locked-animation {
|
@keyframes locked-animation {
|
||||||
from {
|
from {
|
||||||
--h: 0deg; --s: 0%; --l: 100%; --a: 1;
|
--h: 0deg;
|
||||||
|
--s: 0%;
|
||||||
|
--l: 100%;
|
||||||
|
--a: 1;
|
||||||
box-shadow: 0 0 10px hsla(180, 100%, 100%, 0.2);
|
box-shadow: 0 0 10px hsla(180, 100%, 100%, 0.2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -291,7 +339,7 @@ td.trail-animation::after {
|
|||||||
.locked.mino::before,
|
.locked.mino::before,
|
||||||
.locked.mino::after {
|
.locked.mino::after {
|
||||||
animation: locked-animation;
|
animation: locked-animation;
|
||||||
animation-duration: .2s;
|
animation-duration: 0.2s;
|
||||||
}
|
}
|
||||||
|
|
||||||
@keyframes cleared-line-animation {
|
@keyframes cleared-line-animation {
|
||||||
@@ -307,7 +355,7 @@ td.trail-animation::after {
|
|||||||
|
|
||||||
tr.cleared-line-animation td::before,
|
tr.cleared-line-animation td::before,
|
||||||
tr.cleared-line-animation td::after {
|
tr.cleared-line-animation td::after {
|
||||||
animation: cleared-line-animation ease-out .3s;
|
animation: cleared-line-animation ease-out 0.3s;
|
||||||
}
|
}
|
||||||
|
|
||||||
@keyframes show-level-animation {
|
@keyframes show-level-animation {
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ body {
|
|||||||
background-size: cover;
|
background-size: cover;
|
||||||
}
|
}
|
||||||
|
|
||||||
body[data-bs-theme="dark"] {
|
body[data-bs-theme='dark'] {
|
||||||
--bs-body-bg: #2125296b;
|
--bs-body-bg: #2125296b;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -79,8 +79,8 @@ body[data-bs-theme="dark"] {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.Z {
|
.Z {
|
||||||
--color: #E67D8666;
|
--color: #e67d8666;
|
||||||
--border: #E67D86;
|
--border: #e67d86;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ghost {
|
.ghost {
|
||||||
|
|||||||
@@ -62,23 +62,7 @@ tr.matrix td:not(.mino) {
|
|||||||
box-shadow: 4px 4px 10px #0002;
|
box-shadow: 4px 4px 10px #0002;
|
||||||
}
|
}
|
||||||
|
|
||||||
.option {
|
.preview {
|
||||||
--cell-size: 24px;
|
--cell-size: 24px;
|
||||||
display: inline-block;
|
|
||||||
height: var(--cell-size);
|
height: var(--cell-size);
|
||||||
}
|
}
|
||||||
|
|
||||||
.result {
|
|
||||||
--nb-sprites: 9;
|
|
||||||
}
|
|
||||||
|
|
||||||
.select2-container:not(.select2-container--disabled) .selection {
|
|
||||||
--padded-cell-size: calc(var(--cell-size) + 1px);
|
|
||||||
--nb-sprites: 4;
|
|
||||||
--sprite-pos: 2;
|
|
||||||
width: calc(var(--nb-sprites) * var(--padded-cell-size) - 1px);
|
|
||||||
background-position-x: calc(-1 * var(--sprite-pos) * var(--padded-cell-size));
|
|
||||||
background-image: var(--skin-url);
|
|
||||||
background-size: cover;
|
|
||||||
background-repeat: no-repeat;
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -93,7 +93,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="col-4">
|
<div class="col-4">
|
||||||
<select name="skinURL" id="skinURLSelect" class="form-select"
|
<select name="skinURL" id="skinURLSelect" class="form-select"
|
||||||
oninput="document.documentElement.style.setProperty('--skin-url', `url(${encodeURI(this.value)})`)">
|
oninput="document.documentElement.style.setProperty('--skin-url', `url(${this.value})`)">
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<label for="skinURLSelect" class="col-2 col-form-label">Sample</label>
|
<label for="skinURLSelect" class="col-2 col-form-label">Sample</label>
|
||||||
|
|||||||
20
js/app.js
20
js/app.js
@@ -318,14 +318,19 @@ sceneDiv.onwheel = function (event) {
|
|||||||
screenRow.style.setProperty('--tZ', tZ + 'px');
|
screenRow.style.setProperty('--tZ', tZ + 'px');
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const ImageURLPattern = /^(https?:\/\/.*\.(?:png|jpg|jpeg|gif|bmp|webp|svg))$/i
|
||||||
$.fn.select2.defaults.set("templateResult", (state) =>
|
$.fn.select2.defaults.set("templateResult", (state) =>
|
||||||
state.id
|
state.id
|
||||||
? $(`<img class="option result" src="${state.id}" title="${state.text}" loading="lazy"/>`)
|
? $(`<img class="preview" src="${state.id}" title="${state.text}" loading="lazy"/>`)
|
||||||
: state.text
|
: state.text
|
||||||
)
|
)
|
||||||
$.fn.select2.defaults.set("templateSelection", (state) =>
|
$.fn.select2.defaults.set("templateSelection", (state) =>
|
||||||
state.id
|
state.id
|
||||||
? $(`<span class="option selection" style="--skin-url: url(${state.id})" title="${state.text}" alt="${state.id}" loading="lazy"></span>`)
|
? $(`
|
||||||
|
<table class="minoes-table preview" style="--skin-url: url(${state.id});">
|
||||||
|
<tr><td class="Z mino"></td><td class="O mino"></td><td class="T mino"></td><td class="I mino"></td></tr>
|
||||||
|
</table>
|
||||||
|
`)
|
||||||
: state.text
|
: state.text
|
||||||
)
|
)
|
||||||
$.fn.select2.defaults.set("theme", "bootstrap-5")
|
$.fn.select2.defaults.set("theme", "bootstrap-5")
|
||||||
@@ -336,7 +341,7 @@ $.fn.select2.defaults.set("placeholder", "URL de l'image")
|
|||||||
$.fn.select2.defaults.set("tags", true)
|
$.fn.select2.defaults.set("tags", true)
|
||||||
$.fn.select2.defaults.set("createTag", function (params) {
|
$.fn.select2.defaults.set("createTag", function (params) {
|
||||||
const url = encodeURI(params.term);
|
const url = encodeURI(params.term);
|
||||||
if (/^(https?:\/\/.*\.(?:png|jpg|jpeg|gif|bmp|webp|svg))$/i.test(url)) {
|
if (ImageURLPattern.test(url)) {
|
||||||
return {
|
return {
|
||||||
id: url,
|
id: url,
|
||||||
text: 'Source externe',
|
text: 'Source externe',
|
||||||
@@ -349,6 +354,7 @@ stylesheetSelect.oninput = function (event) {
|
|||||||
selectedStyleSheet.href = this.value;
|
selectedStyleSheet.href = this.value;
|
||||||
|
|
||||||
$("#skinURLSelect").empty();
|
$("#skinURLSelect").empty();
|
||||||
|
|
||||||
switch (this.value) {
|
switch (this.value) {
|
||||||
case 'css/jstris-skin.css':
|
case 'css/jstris-skin.css':
|
||||||
skinURLSelect.disabled = false;
|
skinURLSelect.disabled = false;
|
||||||
@@ -362,7 +368,7 @@ stylesheetSelect.oninput = function (event) {
|
|||||||
text: group,
|
text: group,
|
||||||
children: json[group].map(skin => ({
|
children: json[group].map(skin => ({
|
||||||
id: skin.link,
|
id: skin.link,
|
||||||
text: `${skin.name} (${skin.author})\n${skin.description}`,
|
text: `${skin.name} (${skin.author})`,
|
||||||
})),
|
})),
|
||||||
};
|
};
|
||||||
data.push(groupData);
|
data.push(groupData);
|
||||||
@@ -371,6 +377,7 @@ stylesheetSelect.oninput = function (event) {
|
|||||||
$('#skinURLSelect').select2({data: data});
|
$('#skinURLSelect').select2({data: data});
|
||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'css/tetrio-skin.css':
|
case 'css/tetrio-skin.css':
|
||||||
skinURLSelect.disabled = false;
|
skinURLSelect.disabled = false;
|
||||||
|
|
||||||
@@ -381,10 +388,11 @@ stylesheetSelect.oninput = function (event) {
|
|||||||
.filter((item) => (item.type == "skin" && item.format == "tetrioraster"))
|
.filter((item) => (item.type == "skin" && item.format == "tetrioraster"))
|
||||||
.map((skin) => {
|
.map((skin) => {
|
||||||
return {
|
return {
|
||||||
id: `https://you.have.fail/tetrioplus/data/${skin.path}`,
|
id: encodeURI(`https://you.have.fail/tetrioplus/data/${skin.path}`),
|
||||||
text:`${skin.name} (${skin.author})`
|
text:`${skin.name} (${skin.author})\n${skin.description}`
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
.filter((option) => ImageURLPattern.test(option.id))
|
||||||
$('#skinURLSelect').select2({data: data});
|
$('#skinURLSelect').select2({data: data});
|
||||||
})
|
})
|
||||||
break;
|
break;
|
||||||
|
|||||||
Reference in New Issue
Block a user