add main menu
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
224
www/css/menu-scene.css
Normal 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%;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user