added missing features, time counter, step counter, game instructions and table view for savepoints.

This commit is contained in:
2026-04-04 23:15:36 +02:00
parent 21fe673ab4
commit 59b48683a8
6 changed files with 589 additions and 20 deletions
+189 -1
View File
@@ -94,6 +94,68 @@ body {
text-align: center;
}
.game-card-header {
display: flex;
align-items: center;
justify-content: center;
gap: 12px;
}
.game-card-header h2 {
margin: 0;
}
.info-button {
width: 38px;
height: 38px;
border: none;
border-radius: 999px;
background: #dbeafe;
color: #1d4ed8;
font-size: 20px;
font-weight: bold;
cursor: pointer;
}
.info-button:hover {
background: #bfdbfe;
}
.game-stats {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 12px;
margin: 18px 0 12px;
}
.game-stat-card {
padding: 14px 16px;
border-radius: 12px;
background: #f8fafc;
border: 1px solid #dbe4ee;
text-align: left;
}
.game-stat-label {
margin: 0 0 8px;
font-size: 14px;
color: #64748b;
text-transform: uppercase;
letter-spacing: 0.04em;
}
.game-stat-value {
margin: 0;
font-size: 26px;
font-weight: bold;
color: #1e293b;
font-variant-numeric: tabular-nums;
}
.game-stat-status {
font-size: 20px;
}
#statusMessage {
min-height: 24px;
margin: 0 0 8px;
@@ -478,6 +540,55 @@ body {
margin: 0;
}
.history-header {
display: flex;
justify-content: space-between;
align-items: flex-start;
gap: 12px;
margin-bottom: 14px;
}
.history-header h3 {
margin: 0;
}
.history-subtitle {
margin: 6px 0 0;
color: #64748b;
}
.history-table-wrapper {
overflow-x: auto;
}
.history-table {
width: 100%;
border-collapse: collapse;
min-width: 720px;
}
.history-table th,
.history-table td {
padding: 12px 10px;
border-bottom: 1px solid #e2e8f0;
text-align: left;
}
.history-table th {
color: #334155;
font-size: 14px;
}
.history-table td {
color: #475569;
font-size: 14px;
}
.history-empty {
color: #64748b;
text-align: center !important;
}
.btn.ghost {
background: #e2e8f0;
color: #1e293b;
@@ -502,6 +613,73 @@ body {
pointer-events: auto;
}
.modal-backdrop {
position: fixed;
inset: 0;
background: rgba(15, 23, 42, 0.42);
opacity: 0;
pointer-events: none;
transition: opacity 0.25s ease;
z-index: 40;
}
.modal-backdrop.visible {
opacity: 1;
pointer-events: auto;
}
.modal {
position: fixed;
top: 50%;
left: 50%;
width: min(620px, calc(100vw - 32px));
max-height: min(82vh, 720px);
padding: 24px;
box-sizing: border-box;
background: white;
border-radius: 18px;
box-shadow: 0 20px 60px rgba(15, 23, 42, 0.28);
transform: translate(-50%, -48%);
opacity: 0;
pointer-events: none;
transition: opacity 0.25s ease, transform 0.25s ease;
overflow-y: auto;
z-index: 50;
}
.modal.open {
opacity: 1;
pointer-events: auto;
transform: translate(-50%, -50%);
}
.modal-header {
display: flex;
justify-content: space-between;
align-items: flex-start;
gap: 12px;
}
.modal-header h3 {
margin: 0;
}
.modal-content {
margin-top: 16px;
color: #334155;
text-align: left;
}
.modal-content h4 {
margin: 16px 0 8px;
color: #1e293b;
}
.modal-content p {
margin: 0;
line-height: 1.6;
}
@keyframes solverPulse {
0% {
transform: scale(0.97);
@@ -536,8 +714,18 @@ body {
display: grid;
}
.game-stats {
grid-template-columns: 1fr;
}
.history-header,
.modal-header {
grid-template-columns: 1fr;
display: grid;
}
.solver-step-info,
.solver-speed-value {
justify-self: start;
}
}
}