openvibers/openvibe.games Commits
The game shell's Frame wears the dark theme's ink (#294)
Changes
@@@ -25,6 +25,22 @@#navbar-mount {min-height: 56px;}++ /* The game is a dark surface, so the Frame drawn into it wears the dark theme's ink whatever theme++ the visitor picked (a light theme's page ink on #0b0820 is unreadable). Same block as++ src/ui/styles.css on the play shell: this page links no stylesheet of its own. */++ #navbar-mount,++ #ov-footer {++ --bg-primary: #0a0f1c;++ --bg-secondary: #101828;++ --bg-tertiary: #172238;++ --bg-card: #131c2e;++ --text-primary: #e6edf7;++ --text-secondary: #96a7c2;++ --text-muted: #7386a3;++ --border: #1f2d47;++ --border-light: #2c3d5c;++ color-scheme: dark;++ }.cg {max-width: 480px;margin: 0 auto;@@@ -58,6 +58,30 @@ body {z-index: 30;}++/* ── The Frame inside the shell ────────────────────────────────────++ The stage is a permanently dark surface (html, body above), so the++ Frame drawn into it wears the dark theme's ink whatever theme the++ visitor picked. Without this a light theme hands the navbar its++ page ink — daylight's #1a1a2e — which sits on #0b0e11 at 1.15:1++ (the burger) and 2.32:1 (the search orb) at 390 px on++ openvibe.games/play, below even the 3:1 a UI icon needs. The bars++ are transparent until the page scrolls, so the canvas is what they++ read against. Pinned on the mounts, not on <html>: the theme-loader++ writes its own tokens inline there. */++#navbar-mount,++#ov-footer {++ --bg-primary: #0a0f1c;++ --bg-secondary: #101828;++ --bg-tertiary: #172238;++ --bg-card: #131c2e;++ --text-primary: #e6edf7;++ --text-secondary: #96a7c2;++ --text-muted: #7386a3;++ --border: #1f2d47;++ --border-light: #2c3d5c;++ color-scheme: dark;++}++#stage {position: relative;flex: 1 1 auto;
@@ -25,6 +25,22 @@
@@ -25,6 +25,22 @@
#navbar-mount {
#navbar-mount {
min-height: 56px;
min-height: 56px;
}
}
+ /* The game is a dark surface, so the Frame drawn into it wears the dark theme's ink whatever theme
+ the visitor picked (a light theme's page ink on #0b0820 is unreadable). Same block as
+ src/ui/styles.css on the play shell: this page links no stylesheet of its own. */
+ #navbar-mount,
+ #ov-footer {
+ --bg-primary: #0a0f1c;
+ --bg-secondary: #101828;
+ --bg-tertiary: #172238;
+ --bg-card: #131c2e;
+ --text-primary: #e6edf7;
+ --text-secondary: #96a7c2;
+ --text-muted: #7386a3;
+ --border: #1f2d47;
+ --border-light: #2c3d5c;
+ color-scheme: dark;
+ }
.cg {
.cg {
max-width: 480px;
max-width: 480px;
margin: 0 auto;
margin: 0 auto;
@@ -58,6 +58,30 @@ body {
@@ -58,6 +58,30 @@ body {
z-index: 30;
z-index: 30;
}
}
+/* ── The Frame inside the shell ────────────────────────────────────
+ The stage is a permanently dark surface (html, body above), so the
+ Frame drawn into it wears the dark theme's ink whatever theme the
+ visitor picked. Without this a light theme hands the navbar its
+ page ink — daylight's #1a1a2e — which sits on #0b0e11 at 1.15:1
+ (the burger) and 2.32:1 (the search orb) at 390 px on
+ openvibe.games/play, below even the 3:1 a UI icon needs. The bars
+ are transparent until the page scrolls, so the canvas is what they
+ read against. Pinned on the mounts, not on <html>: the theme-loader
+ writes its own tokens inline there. */
+#navbar-mount,
+#ov-footer {
+ --bg-primary: #0a0f1c;
+ --bg-secondary: #101828;
+ --bg-tertiary: #172238;
+ --bg-card: #131c2e;
+ --text-primary: #e6edf7;
+ --text-secondary: #96a7c2;
+ --text-muted: #7386a3;
+ --border: #1f2d47;
+ --border-light: #2c3d5c;
+ color-scheme: dark;
+}
+
#stage {
#stage {
position: relative;
position: relative;
flex: 1 1 auto;
flex: 1 1 auto;