The draw screen retires: the league cup rolls inside the run, ENTER THE DRAW moves onto the setup button
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
812bea3234
commit
dbfd085493
5 files changed
+34
-130
No files matched your search
+2
-45
@@ -177,7 +177,7 @@ if (location.hostname !== 'splatter-tennis.wuwi.one' && !window.Capacitor?.isNat
|
||||
/* ONE overlay, four panels, swapped by #intro[data-stage]. Keeping the backdrop and the card frame
|
||||
alive across every screen is the point — a screen that unmounts the whole overlay flashes the
|
||||
court through between menus. */
|
||||
#splash, #setup, #stats, #ranks, #newbest, #secret, #bosses, #stmode, #stsub, #bracket, #vs, #train, #player, #promo, #card { display: none; }
|
||||
#splash, #setup, #stats, #ranks, #newbest, #secret, #bosses, #stmode, #stsub, #vs, #train, #player, #promo, #card { display: none; }
|
||||
#intro[data-stage="splash"] #splash { display: flex; flex-direction: column; flex: 1; }
|
||||
/* flex COLUMN, not block: it is what lets the footer's margin-top:auto reach the bottom of a
|
||||
screen whose content does not fill it */
|
||||
@@ -188,7 +188,6 @@ if (location.hostname !== 'splatter-tennis.wuwi.one' && !window.Capacitor?.isNat
|
||||
#intro[data-stage="ranks"] #ranks,
|
||||
#intro[data-stage="secret"] #secret,
|
||||
#intro[data-stage="bosses"] #bosses,
|
||||
#intro[data-stage="bracket"] #bracket,
|
||||
#intro[data-stage="train"] #train,
|
||||
#intro[data-stage="vs"] #vs,
|
||||
#intro[data-stage="player"] #player,
|
||||
@@ -411,35 +410,6 @@ if (location.hostname !== 'splatter-tennis.wuwi.one' && !window.Capacitor?.isNat
|
||||
/* the training picker is 18 rungs deep — the tile carries the HEAD (the same z_*head crop the
|
||||
draw and the walk-on wear), which reads at a third of the boss portrait's height */
|
||||
#trainList img { height: 44px; width: auto; display: block; image-rendering: pixelated; }
|
||||
/* THE DRAW. Four rungs read top-down as a ladder, because that is what the mode is — the bracket
|
||||
shape a real draw is printed in needs width a phone has not got, and half of it would be blank
|
||||
anyway (you only ever play one side of it). The rows spin their portrait and their name while
|
||||
the draw is being made, and .set is what a landed one wears: the placeholder look is on the
|
||||
ROW, so a slot that has stopped is obvious at a glance and START stays out of reach until the
|
||||
last of them lands. The final wears .set from the first frame — it was never in doubt. */
|
||||
#cupRows { display: flex; flex-direction: column; gap: 8px; }
|
||||
.cupRow { display: grid; grid-template-columns: 54px 1fr auto; grid-template-rows: auto auto;
|
||||
align-items: center; column-gap: 10px; row-gap: 2px;
|
||||
padding: 7px 10px; background: var(--panel); border: 2px solid var(--line);
|
||||
/* the connector: every round but the first hangs off the one above it */
|
||||
position: relative; }
|
||||
.cupRow + .cupRow::before { content: ''; position: absolute; left: 35px; top: -10px; width: 2px;
|
||||
height: 10px; background: var(--line); }
|
||||
.cupRow img { grid-column: 1; grid-row: 1 / span 2; width: 54px; height: 54px;
|
||||
object-fit: contain; object-position: center; image-rendering: pixelated;
|
||||
/* mid-spin the faces flicker past unreadable; dimming them says "still rolling"
|
||||
without a second element to keep in sync */
|
||||
opacity: 0.5; filter: grayscale(0.7); }
|
||||
.cupRow u { grid-column: 2; grid-row: 1; font: 400 8px Silkscreen, monospace; color: var(--dim);
|
||||
letter-spacing: 1.5px; text-decoration: none; text-align: left; }
|
||||
.cupRow b { grid-column: 2; grid-row: 2; font: 400 11px Silkscreen, monospace; color: var(--dim);
|
||||
letter-spacing: 0.5px; line-height: 1.35; text-align: left; }
|
||||
.cupRow i { grid-column: 3; grid-row: 1 / span 2; font: 400 8px Silkscreen, monospace;
|
||||
font-style: normal; color: var(--dim); letter-spacing: 1px; white-space: nowrap; }
|
||||
.cupRow.set img { opacity: 1; filter: none; }
|
||||
.cupRow.set b { color: var(--cream); }
|
||||
.cupRow.fin { border-color: var(--red); }
|
||||
.cupRow.fin.set b { color: var(--acid); }
|
||||
/* START is genuinely unreachable until the draw has landed — the wait IS the ceremony */
|
||||
.btn[disabled] { opacity: 0.32; cursor: default; }
|
||||
/* a row, not a stacked tile: three 3:2 tiles stacked fill a phone twice over, and the art still
|
||||
@@ -774,19 +744,6 @@ if (location.hostname !== 'splatter-tennis.wuwi.one' && !window.Capacitor?.isNat
|
||||
<button class="btn sec" id="cdEdit">EDIT PLAYER<i>NAME · TOUR · COLOURS</i></button>
|
||||
</div>
|
||||
</div>
|
||||
<!-- THE DRAW (cup mode only). SERVE UP lands here instead of on a court: the four rounds roll
|
||||
through their own band of the ladder and stop, and what you watched land is what walks on
|
||||
(main.js hands the settled rungs to startMatch). The rows are built in main.js from
|
||||
config.CUP_ROUNDS, so a round added there needs no markup. -->
|
||||
<div id="bracket">
|
||||
<div class="hdr"><button class="chev" id="brBack"><</button><h2>THE DRAW</h2></div>
|
||||
<h3>FOUR ROUNDS<span id="brState">DRAWING…</span></h3>
|
||||
<div id="cupRows"></div>
|
||||
<div class="foot">
|
||||
<p id="brSum"></p>
|
||||
<button class="btn big" id="cupGo" disabled>ENTER THE DRAW</button>
|
||||
</div>
|
||||
</div>
|
||||
<!-- THE TRAINING COURT's opponent picker: the whole ladder face-up, tap a body to drill it.
|
||||
Built in main.js from config's roster (matchFoe/LADDER), so a new rung needs no markup. -->
|
||||
<div id="train">
|
||||
@@ -897,6 +854,6 @@ if (location.hostname !== 'splatter-tennis.wuwi.one' && !window.Capacitor?.isNat
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script type="module" src="src/main.js?v=328"></script>
|
||||
<script type="module" src="src/main.js?v=329"></script>
|
||||
</body>
|
||||
</html>
|
||||
Reference in new issue
Block a user