fix(frontend): restore Ref document and control contracts

Ref's `.bg0/.bg1/.bg2` set only a background image and `html, body` centre the
texture with vertical tiling, so the extra background colours and the default
tiling are removed. Two ranking views declared unscoped `body` rules that leaked
a 500px min-width and a 21px line-height onto every screen; each page now owns
its own contract. Controls that Ref renders with the Bootstrap/Lumen family get
the shared modifier so the bottom edge moves on hover and while pressed.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-08-04 07:22:15 +00:00
co-authored by Claude Opus 5
parent f0fa55245b
commit 80fb1d118b
16 changed files with 174 additions and 63 deletions
+23 -4
View File
@@ -14,19 +14,36 @@ html {
color-scheme: dark;
}
/*
* Ref's `html, body` contract: the page texture is centred and only tiles
* vertically, so a wide screen keeps one column of the texture.
*/
body {
min-width: 320px;
margin: 0;
background: #000;
background-position: center;
background-repeat: repeat-y;
color: #fff;
font-family: var(--sammo-font-sans);
font-size: 14px;
line-height: 1.3;
}
/*
* Ref's in-game document never narrows below its 500px mobile column, so the
* app root keeps that floor. Previously this came from an unscoped `body` rule
* inside two ranking views, which also leaked their line-height everywhere.
*/
#app {
min-width: 500px;
}
body:has(.battle-page),
body:has(.chief-page),
body:has(.global-page) {
body:has(.global-page),
body:has(.main-page),
body:has(.yearbook-page) {
line-height: 1.5;
}
@@ -37,17 +54,19 @@ textarea {
font: inherit;
}
/*
* Ref's `.bg0/.bg1/.bg2` set a background image and nothing else, so the
* element stays transparent where the texture does not cover it. Adding a
* background colour here paints over whatever the parent shows through.
*/
.legacy-bg0 {
background-color: #302016;
background-image: var(--sammo-texture-walnut);
}
.legacy-bg1 {
background-color: #14241b;
background-image: var(--sammo-texture-green);
}
.legacy-bg2 {
background-color: #172a52;
background-image: var(--sammo-texture-blue);
}
@@ -48,6 +48,26 @@
cursor: pointer;
}
/*
* Ref renders the dashboard reload control with the Lumen navigation family:
* the bottom edge shortens on hover and again while pressed.
*/
.game-shell__action--navigation {
border-color: var(--sammo-button-navigation-border);
border-width: 0 1px 4px;
background: var(--sammo-button-navigation-bg);
}
.game-shell__action--navigation:not(:disabled):hover {
margin-top: 1px;
border-bottom-width: 3px;
}
.game-shell__action--navigation:not(:disabled):active {
margin-top: 2px;
border-bottom-width: 2px;
}
.game-feedback--error {
color: var(--sammo-color-error);
font-size: 0.85rem;