add main menu

This commit is contained in:
2026-04-13 23:03:16 +02:00
parent 008c75784a
commit a85b37fe80
8 changed files with 538 additions and 6 deletions

View File

@@ -201,6 +201,34 @@ body {
inset 0 1px 0 rgba(255, 255, 255, 0.8);
}
.clock-start-button {
appearance: none;
border: 1px solid rgba(107, 69, 35, 0.34);
border-radius: 999px;
padding: 0.7em 1.8em;
min-width: 170px;
background: linear-gradient(180deg, rgba(252, 242, 226, 0.98), rgba(226, 195, 150, 0.96));
color: #342012;
font-family: "Cinzel", serif;
font-size: clamp(1rem, 1.3vw, 1.35rem);
letter-spacing: 0.08em;
text-transform: uppercase;
cursor: pointer;
box-shadow:
0 8px 18px rgba(93, 57, 25, 0.14),
inset 0 1px 0 rgba(255, 255, 255, 0.8);
transition: transform 0.16s ease, filter 0.16s ease, box-shadow 0.16s ease;
}
.clock-start-button:active {
transform: scale(0.98);
filter: brightness(0.97);
}
.clock-start-button.is-hidden {
display: none;
}
.clock-time {
font-size: clamp(4.8rem, 9vw, 8.4rem);
line-height: 0.95;
@@ -267,3 +295,71 @@ body::before {
min-height: 250px;
}
}
@media (max-width: 600px) {
.clock-shell {
padding: max(14px, env(safe-area-inset-top)) 14px max(18px, env(safe-area-inset-bottom));
gap: 16px;
}
.clock-topbar {
gap: 10px;
}
.clock-status {
font-size: clamp(1.5rem, 7vw, 2.1rem);
}
.clock-mode {
min-width: 0;
width: min(78vw, 280px);
padding: 0.35em 0.9em;
font-size: clamp(1.4rem, 6vw, 2rem);
}
.clock-start-button {
min-width: 0;
width: min(72vw, 240px);
padding: 0.75em 1em;
font-size: clamp(0.95rem, 4vw, 1.1rem);
}
.clock-board {
gap: 14px;
}
.player-zone {
gap: 10px;
}
.player-badge {
min-width: 0;
width: min(58vw, 220px);
padding: 0.5em 1em;
font-size: clamp(1.2rem, 5vw, 1.7rem);
}
.clock-panel {
width: 100%;
min-height: calc((100vh - 210px) / 2);
max-height: 280px;
padding: 18px 16px;
border-radius: 28px;
gap: 10px;
}
.clock-divider {
width: 68%;
height: 6px;
min-height: 6px;
}
.clock-time {
font-size: clamp(3.2rem, 17vw, 5.4rem);
}
.clock-moves {
max-width: 92%;
font-size: clamp(1.5rem, 8vw, 2.5rem);
}
}

View File

@@ -228,3 +228,69 @@
min-height: 260px;
}
}
@media (max-width: 600px) {
.cube-shell {
padding: max(14px, env(safe-area-inset-top)) 14px max(18px, env(safe-area-inset-bottom));
gap: 16px;
}
.cube-topbar {
gap: 10px;
max-width: 100%;
}
.cube-title {
font-size: clamp(1.6rem, 7vw, 2.4rem);
}
#BlockTypeTimer {
min-width: 0;
width: min(78vw, 280px);
padding: 0.35em 0.9em;
font-size: clamp(1.3rem, 5.4vw, 1.9rem);
}
.cube-subtitle {
font-size: clamp(1.05rem, 4.4vw, 1.4rem);
line-height: 1.1;
}
.cube-board {
gap: 14px;
}
.cube-lane {
gap: 10px;
}
.cube-badge {
min-width: 0;
width: min(58vw, 220px);
padding: 0.5em 1em;
font-size: clamp(1.2rem, 5vw, 1.7rem);
}
.cube-divider {
width: 68%;
min-height: 6px;
}
.TimerCube {
width: 100%;
min-height: calc((100vh - 240px) / 2);
max-height: 290px;
padding: 18px 16px;
border-radius: 28px;
gap: 10px;
}
.TimerText {
font-size: clamp(1.6rem, 8vw, 2.6rem);
}
.cube-hint {
font-size: clamp(1.05rem, 4.8vw, 1.45rem);
line-height: 1.05;
}
}

224
www/css/menu-scene.css Normal file
View File

@@ -0,0 +1,224 @@
.scene-menu {
position: relative;
overflow: auto;
min-height: 100vh;
background:
radial-gradient(circle at top center, rgba(255, 232, 192, 0.34), transparent 24%),
linear-gradient(180deg, rgba(255, 255, 255, 0.08), rgba(70, 42, 20, 0.18)),
repeating-linear-gradient(
0deg,
#d7b084 0,
#d7b084 2px,
#c69d71 2px,
#c69d71 5px,
#b88760 5px,
#b88760 7px
);
}
.menu-shell {
box-sizing: border-box;
min-height: 100vh;
padding: 5vh 5vw 6vh;
display: grid;
grid-template-columns: minmax(280px, 420px) minmax(320px, 1fr);
gap: clamp(20px, 4vw, 48px);
align-items: start;
}
.menu-hero,
.menu-settings-card {
border-radius: 34px;
box-sizing: border-box;
backdrop-filter: blur(4px);
}
.menu-hero {
padding: clamp(26px, 5vh, 42px);
background: linear-gradient(180deg, rgba(61, 38, 23, 0.94), rgba(38, 24, 15, 0.98));
color: #f7ead7;
box-shadow:
0 18px 32px rgba(38, 23, 12, 0.28),
inset 0 0 0 1px rgba(255, 255, 255, 0.08);
}
.menu-kicker {
margin: 0 0 8px;
font-family: "Cinzel", serif;
font-size: 0.95rem;
letter-spacing: 0.24em;
text-transform: uppercase;
color: rgba(245, 217, 178, 0.8);
}
.menu-title {
margin: 0;
font-family: "Cinzel", serif;
font-size: clamp(2rem, 3vw, 3.8rem);
line-height: 0.98;
letter-spacing: 0.03em;
}
.menu-subtitle {
margin: 18px 0 0;
font-family: "Cormorant Garamond", serif;
font-size: clamp(1.35rem, 1.8vw, 2rem);
line-height: 1.1;
color: rgba(247, 234, 215, 0.86);
}
.menu-actions {
margin-top: 28px;
display: flex;
flex-wrap: wrap;
gap: 12px;
}
.menu-primary-button,
.menu-link-button {
appearance: none;
border-radius: 999px;
padding: 0.85em 1.45em;
font-family: "Cinzel", serif;
font-size: 1rem;
letter-spacing: 0.08em;
text-transform: uppercase;
text-decoration: none;
text-align: center;
transition: transform 0.16s ease, filter 0.16s ease, box-shadow 0.16s ease;
}
.menu-primary-button {
border: 1px solid rgba(243, 210, 160, 0.28);
background: linear-gradient(180deg, rgba(255, 245, 227, 0.98), rgba(235, 205, 168, 0.95));
color: #342012;
cursor: pointer;
box-shadow:
0 8px 20px rgba(18, 10, 4, 0.18),
inset 0 1px 0 rgba(255, 255, 255, 0.84);
}
.menu-link-button {
border: 1px solid rgba(244, 220, 186, 0.22);
background: rgba(255, 255, 255, 0.06);
color: #f7ead7;
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
}
.menu-primary-button:active,
.menu-link-button:active {
transform: scale(0.985);
filter: brightness(0.98);
}
.menu-settings-card {
padding: clamp(24px, 4vh, 38px);
background: linear-gradient(180deg, rgba(255, 247, 233, 0.96), rgba(240, 218, 185, 0.94));
box-shadow:
0 18px 30px rgba(85, 52, 23, 0.16),
inset 0 0 0 1px rgba(255, 255, 255, 0.34);
}
.menu-settings-head {
margin-bottom: 20px;
}
.menu-section-title {
margin: 0;
font-family: "Cinzel", serif;
font-size: clamp(1.7rem, 2.2vw, 2.8rem);
color: #2f1c12;
}
.menu-section-copy {
margin: 10px 0 0;
font-family: "Cormorant Garamond", serif;
font-size: clamp(1.2rem, 1.5vw, 1.7rem);
color: rgba(58, 36, 22, 0.8);
}
.menu-settings-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 16px;
}
.menu-field {
display: flex;
flex-direction: column;
gap: 8px;
}
.menu-field-inline {
justify-content: center;
}
.menu-label {
font-family: "Cinzel", serif;
font-size: 0.92rem;
letter-spacing: 0.08em;
text-transform: uppercase;
color: #412719;
}
.menu-input {
box-sizing: border-box;
width: 100%;
border: 1px solid rgba(116, 75, 38, 0.24);
border-radius: 16px;
padding: 0.85em 1em;
background: rgba(255, 252, 245, 0.82);
color: #28180f;
font-family: "Cormorant Garamond", serif;
font-size: 1.35rem;
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.74);
}
.menu-select {
appearance: none;
}
.menu-checkbox {
width: 24px;
height: 24px;
accent-color: #5f3920;
}
.menu-help {
font-family: "Cormorant Garamond", serif;
font-size: 1.05rem;
color: rgba(66, 42, 26, 0.74);
}
@media (max-width: 980px) {
.menu-shell {
grid-template-columns: 1fr;
}
}
@media (max-width: 640px) {
.menu-shell {
padding: max(14px, env(safe-area-inset-top)) 14px max(18px, env(safe-area-inset-bottom));
gap: 16px;
}
.menu-hero,
.menu-settings-card {
border-radius: 26px;
padding: 18px;
}
.menu-settings-grid {
grid-template-columns: 1fr;
gap: 14px;
}
.menu-actions {
flex-direction: column;
}
.menu-primary-button,
.menu-link-button {
width: 100%;
}
}