The ribbon keeps its shadow (drop-shadow outlives the mask) and fades later
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
77e6418e8e
commit
54e5db8ea2
1 file changed
+50
-1
+50
-1
@@ -328,6 +328,55 @@ if (location.hostname !== 'splatter-tennis.wuwi.one' && !window.Capacitor?.isNat
|
||||
border: 1px solid var(--line); text-decoration: none; display: block; }
|
||||
#cdBar s { height: 8px; }
|
||||
#cdCareer { display: flex; align-items: center; gap: 8px; }
|
||||
#cdCareer u { font: 700 8px Silkscreen, monospace; color: var(--dim); text-decoration: none;
|
||||
letter-spacing: 1px; }
|
||||
/* the WAY-UP RIBBON, horizontal (Oliver's call after two diagonal cuts — a rotated pixel font
|
||||
was the one anti-aliased thing in the menu): a red band running in from OVER the left border,
|
||||
dissolving rightward through a real PIXEL FADE — an inline-SVG mask of 6px cells thresholded
|
||||
against a Bayer matrix (four density steps), the dither the game's own art would use, never a
|
||||
smooth gradient. The BAND lives on ::before and carries the mask; the HOST carries the text
|
||||
and a drop-shadow FILTER — a filter on the parent shadows the already-masked child, so the
|
||||
shadow survives the mask and follows the dither blocks (a box-shadow on the masked element
|
||||
itself was eaten with it). */
|
||||
.way { position: absolute; top: 12px; left: -8px; z-index: 2; white-space: nowrap;
|
||||
padding: 5px 56px 5px 14px; font: 700 10px Silkscreen, monospace; font-style: normal;
|
||||
color: #fff;
|
||||
text-shadow: 1px 1px 0 rgba(0,0,0,0.55);
|
||||
filter: drop-shadow(0 2px 3px rgba(0,0,0,0.5));
|
||||
letter-spacing: 1px; text-decoration: none; }
|
||||
.way::before { content: ''; position: absolute; inset: 0; z-index: -1; background: var(--red);
|
||||
border-top: 1px solid rgba(255,255,255,0.35); border-bottom: 1px solid #69201c;
|
||||
-webkit-mask-image: url("data:image/svg+xml;utf8,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20200%2024%22%20shape-rendering=%22crispEdges%22%3E%3Cg%20fill=%22%23000%22%3E%3Crect%20x=%220%22%20y=%220%22%20width=%22140%22%20height=%2224%22/%3E%3Crect%20x=%22140%22%20y=%220%22%20width=%226%22%20height=%226%22/%3E%3Crect%20x=%22140%22%20y=%226%22%20width=%226%22%20height=%226%22/%3E%3Crect%20x=%22140%22%20y=%2212%22%20width=%226%22%20height=%226%22/%3E%3Crect%20x=%22140%22%20y=%2218%22%20width=%226%22%20height=%226%22/%3E%3Crect%20x=%22146%22%20y=%220%22%20width=%226%22%20height=%226%22/%3E%3Crect%20x=%22146%22%20y=%2212%22%20width=%226%22%20height=%226%22/%3E%3Crect%20x=%22152%22%20y=%226%22%20width=%226%22%20height=%226%22/%3E%3Crect%20x=%22152%22%20y=%2218%22%20width=%226%22%20height=%226%22/%3E%3Crect%20x=%22158%22%20y=%220%22%20width=%226%22%20height=%226%22/%3E%3Crect%20x=%22158%22%20y=%2212%22%20width=%226%22%20height=%226%22/%3E%3Crect%20x=%22170%22%20y=%220%22%20width=%226%22%20height=%226%22/%3E%3Crect%20x=%22170%22%20y=%2212%22%20width=%226%22%20height=%226%22/%3E%3C/g%3E%3C/svg%3E");
|
||||
-webkit-mask-size: 100% 100%; -webkit-mask-repeat: no-repeat;
|
||||
mask-image: url("data:image/svg+xml;utf8,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20200%2024%22%20shape-rendering=%22crispEdges%22%3E%3Cg%20fill=%22%23000%22%3E%3Crect%20x=%220%22%20y=%220%22%20width=%22140%22%20height=%2224%22/%3E%3Crect%20x=%22140%22%20y=%220%22%20width=%226%22%20height=%226%22/%3E%3Crect%20x=%22140%22%20y=%226%22%20width=%226%22%20height=%226%22/%3E%3Crect%20x=%22140%22%20y=%2212%22%20width=%226%22%20height=%226%22/%3E%3Crect%20x=%22140%22%20y=%2218%22%20width=%226%22%20height=%226%22/%3E%3Crect%20x=%22146%22%20y=%220%22%20width=%226%22%20height=%226%22/%3E%3Crect%20x=%22146%22%20y=%2212%22%20width=%226%22%20height=%226%22/%3E%3Crect%20x=%22152%22%20y=%226%22%20width=%226%22%20height=%226%22/%3E%3Crect%20x=%22152%22%20y=%2218%22%20width=%226%22%20height=%226%22/%3E%3Crect%20x=%22158%22%20y=%220%22%20width=%226%22%20height=%226%22/%3E%3Crect%20x=%22158%22%20y=%2212%22%20width=%226%22%20height=%226%22/%3E%3Crect%20x=%22170%22%20y=%220%22%20width=%226%22%20height=%226%22/%3E%3Crect%20x=%22170%22%20y=%2212%22%20width=%226%22%20height=%226%22/%3E%3C/g%3E%3C/svg%3E");
|
||||
mask-size: 100% 100%; mask-repeat: no-repeat; }
|
||||
/* THE LEVEL STRIP: the one meta number over a thin bar, riding the splash foot. The fill colour
|
||||
is the acid accent for now; the leagues will hand it the skill colour in phase 3. */
|
||||
#xpRow { display: flex; align-items: center; gap: 8px; margin: 0 0 10px; }
|
||||
#xpRow u { font: 700 9px Silkscreen, monospace; color: var(--cream); text-decoration: none;
|
||||
letter-spacing: 1px; white-space: nowrap; }
|
||||
/* THE PLAYER PLAQUE (replaces the bare level strip): ONE button-styled panel — wappen, name,
|
||||
level+league over the bar, and the standing GOAL LINE ("win the X cup to advance"), with a
|
||||
chevron that says it opens. The splash stays two buttons + one plaque; the badge COLLECTION
|
||||
stays on the card, one (now discoverable) tap away. */
|
||||
#plaque { display: flex; align-items: center; gap: 12px; width: 100%; margin: 0 0 10px;
|
||||
padding: 12px 14px; background: var(--solid); border: 2px solid var(--line);
|
||||
border-radius: 8px;
|
||||
cursor: pointer; text-align: left; -webkit-tap-highlight-color: transparent; }
|
||||
#plBadge { height: 34px; flex: none; image-rendering: pixelated; }
|
||||
#plBody { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
|
||||
#plName { font: 700 10px Silkscreen, monospace; color: var(--cream); letter-spacing: 1.5px;
|
||||
white-space: nowrap; overflow: hidden; }
|
||||
#plRow { display: flex; align-items: center; gap: 8px; }
|
||||
#plRow u { font: 700 8px Silkscreen, monospace; color: var(--dim); text-decoration: none;
|
||||
letter-spacing: 1px; white-space: nowrap; }
|
||||
#plGoal { font: 400 8px Silkscreen, monospace; font-style: normal; color: var(--acid);
|
||||
letter-spacing: 1px; }
|
||||
#plaque em { flex: none; font: 700 16px Silkscreen, monospace; font-style: normal; color: var(--acid); }
|
||||
#plRow s, #cdBar s, #cdCareer s { flex: 1; height: 6px; background: rgba(255,255,255,0.10);
|
||||
border: 1px solid var(--line); text-decoration: none; display: block; }
|
||||
#cdBar s { height: 8px; }
|
||||
#cdCareer { display: flex; align-items: center; gap: 8px; }
|
||||
#cdCareer u { font: 700 8px Silkscreen, monospace; color: var(--dim); text-decoration: none;
|
||||
letter-spacing: 1px; }
|
||||
/* the WAY-UP RIBBON, horizontal (Oliver's call after two diagonal cuts — a rotated pixel font
|
||||
@@ -850,6 +899,6 @@ if (location.hostname !== 'splatter-tennis.wuwi.one' && !window.Capacitor?.isNat
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script type="module" src="src/main.js?v=320"></script>
|
||||
<script type="module" src="src/main.js?v=321"></script>
|
||||
</body>
|
||||
</html>
|
||||
Reference in new issue
Block a user