The way-up ribbon, final form: horizontal over the border, dissolving through a Bayer pixel fade

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
wuwiandClaude Fable 5 committed 2026-08-29 16:03:26 +02:00
1 parent 3ba3d9dac0
commit 77e6418e8e
2 files changed
+23 -16

No files matched your search

+9 -6
View File
@@ -499,12 +499,15 @@ Oliver's retest ("schon viel besser") with five polish items, all built:
screen (his "an vielen Stellen"). All `.chev` buttons and the plaque's arrow use Silkscreen's
straight ASCII `<`/`>` instead — the announcement face keeps its job, arrows stop leaning.
- **The plaque wears rounded corners (8px) and real padding** (12/14 against 8/10).
- **THE WAY-UP RIBBON**: the tag became a banderole — red field, thick white Silkscreen with a
light shadow, rotated -45° over the poster's top-left corner, and (Oliver's follow-up) hanging
PAST the border on both sides rather than being clipped inside it — sized so the overhang stays
out of the neighbouring poster (120px band; the first cut at 148px lay across the poster above).
It shows on BOTH picker levels: the top-level ZOMBIE TENNIS poster carries it too (`tag` on the
MENU row), so the click path to the promotion is marked from the first screen.
- **THE WAY-UP RIBBON**: settled after four cuts as a HORIZONTAL band (Oliver's call) — red
field, thick white Silkscreen with a light shadow, running in from OVER the left border and
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 (and never a rotated pixel font, which was the diagonal version's sin: the one
anti-aliased thing in the menu; the diagonal also hid a text-WRAP bug that made the band a red
block). The mask eats band, bevel and shadow together. It shows on BOTH picker levels: the
top-level ZOMBIE TENNIS poster carries it too (`tag` on the MENU row), so the click path to the
promotion is marked from the first screen.
- **Poster captions grew**: titles 12 → 15 bold, sub lines 9 → 10 and a brighter grey — "viel
Text in sehr kleiner Schrift" was true of every banner.
- **The card performs its entrance**: earned badges and the current crest BREATHE a subtle gold
+14 -10
View File
@@ -330,17 +330,21 @@ if (location.hostname !== 'splatter-tennis.wuwi.one' && !window.Capacitor?.isNat
#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: the standing answer to "how do I advance", worn as a banderole laid OVER
the poster's corner — deliberately hanging past the border on both sides (Oliver), so it
reads as wrapped around the button rather than printed on it. z-index above the border,
no clipping anywhere on the path. */
.way { position: absolute; top: 20px; left: -24px; width: 108px; transform: rotate(-45deg);
z-index: 2; white-space: nowrap;
padding: 5px 0; font: 700 10px Silkscreen, monospace; font-style: normal;
text-align: center; color: #fff; background: var(--red);
/* 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 mask eats the band, its bevel lines and its shadow together. */
.way { position: absolute; top: 12px; left: -8px; z-index: 2; white-space: nowrap;
padding: 5px 52px 5px 14px; font: 700 10px Silkscreen, monospace; font-style: normal;
color: #fff; background: var(--red);
border-top: 1px solid rgba(255,255,255,0.35); border-bottom: 1px solid #69201c;
text-shadow: 1px 1px 0 rgba(0,0,0,0.55); box-shadow: 0 2px 6px rgba(0,0,0,0.45);
letter-spacing: 1px; text-decoration: none; }
letter-spacing: 1px; text-decoration: none;
-webkit-mask-image: url("data:image/svg+xml;utf8,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20180%2024%22%20shape-rendering=%22crispEdges%22%3E%3Cg%20fill=%22%23000%22%3E%3Crect%20x=%220%22%20y=%220%22%20width=%22120%22%20height=%2224%22/%3E%3Crect%20x=%22120%22%20y=%220%22%20width=%226%22%20height=%226%22/%3E%3Crect%20x=%22120%22%20y=%2212%22%20width=%226%22%20height=%226%22/%3E%3Crect%20x=%22126%22%20y=%220%22%20width=%226%22%20height=%226%22/%3E%3Crect%20x=%22126%22%20y=%226%22%20width=%226%22%20height=%226%22/%3E%3Crect%20x=%22126%22%20y=%2212%22%20width=%226%22%20height=%226%22/%3E%3Crect%20x=%22126%22%20y=%2218%22%20width=%226%22%20height=%226%22/%3E%3Crect%20x=%22132%22%20y=%220%22%20width=%226%22%20height=%226%22/%3E%3Crect%20x=%22132%22%20y=%2212%22%20width=%226%22%20height=%226%22/%3E%3Crect%20x=%22138%22%20y=%226%22%20width=%226%22%20height=%226%22/%3E%3Crect%20x=%22138%22%20y=%2218%22%20width=%226%22%20height=%226%22/%3E%3Crect%20x=%22144%22%20y=%220%22%20width=%226%22%20height=%226%22/%3E%3Crect%20x=%22144%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%20180%2024%22%20shape-rendering=%22crispEdges%22%3E%3Cg%20fill=%22%23000%22%3E%3Crect%20x=%220%22%20y=%220%22%20width=%22120%22%20height=%2224%22/%3E%3Crect%20x=%22120%22%20y=%220%22%20width=%226%22%20height=%226%22/%3E%3Crect%20x=%22120%22%20y=%2212%22%20width=%226%22%20height=%226%22/%3E%3Crect%20x=%22126%22%20y=%220%22%20width=%226%22%20height=%226%22/%3E%3Crect%20x=%22126%22%20y=%226%22%20width=%226%22%20height=%226%22/%3E%3Crect%20x=%22126%22%20y=%2212%22%20width=%226%22%20height=%226%22/%3E%3Crect%20x=%22126%22%20y=%2218%22%20width=%226%22%20height=%226%22/%3E%3Crect%20x=%22132%22%20y=%220%22%20width=%226%22%20height=%226%22/%3E%3Crect%20x=%22132%22%20y=%2212%22%20width=%226%22%20height=%226%22/%3E%3Crect%20x=%22138%22%20y=%226%22%20width=%226%22%20height=%226%22/%3E%3Crect%20x=%22138%22%20y=%2218%22%20width=%226%22%20height=%226%22/%3E%3Crect%20x=%22144%22%20y=%220%22%20width=%226%22%20height=%226%22/%3E%3Crect%20x=%22144%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; }
#plRow s i, #cdBar s i, #cdCareer s i { display: block; height: 100%; width: 0%;
background: linear-gradient(90deg, #3f9560, var(--acid) 55%, #e8b23a);
transition: width 0.4s ease; }
@@ -846,6 +850,6 @@ if (location.hostname !== 'splatter-tennis.wuwi.one' && !window.Capacitor?.isNat
</div>
</div>
</div>
<script type="module" src="src/main.js?v=319"></script>
<script type="module" src="src/main.js?v=320"></script>
</body>
</html>