shithub: puzzles

Download patch

ref: 85d2a7da62a5656974643ce345f0962d2634b04d
parent: e98ede7a727e7a193ffec79f31343de6cb5825a7
author: Ben Harris <bjh21@bjh21.me.uk>
date: Fri Oct 7 07:15:32 EDT 2022

Hide some words in top-level menu items on small viewports

In their normal state, most of the top-level menu items are a verb and
an object, like "Undo move".  This is admirably clear, but on a small
screen the menu can take a lot of space.  In each case the verb alone
is sufficient to know what the button does, so use a media query to
suppress the noun is the viewport is very narrow.  "Very narrow" here
is roughly where the menus would overflow onto four lines in my
browser.

--- a/html/jspage.pl
+++ b/html/jspage.pl
@@ -129,6 +129,14 @@
     background: inherit;
 }
 
+\@media (max-width:18em) {
+    /* Suppress some words in top-level menu items when viewport
+     * is very small */
+    .verbiage {
+        display: none;
+    }
+}
+
 #gamemenu ul ul {
     /* Second-level menus and below are not displayed by default */
     display: none;
@@ -211,11 +219,11 @@
 ></ul></li
 ><li>Type...<ul id="gametype"></ul></li
 ><li class="separator"></li
-><li id="new" class="afterseparator">New game</li
-><li id="restart">Restart game</li
-><li id="undo">Undo move</li
-><li id="redo">Redo move</li
-><li id="solve">Solve game</li
+><li id="new" class="afterseparator">New<span class="verbiage"> game</span></li
+><li id="restart">Restart<span class="verbiage"> game</span></li
+><li id="undo">Undo<span class="verbiage"> move</span></li
+><li id="redo">Redo<span class="verbiage"> move</span></li
+><li id="solve">Solve<span class="verbiage"> game</span></li
 ></ul></div>
 <div align=center>
   <div id="resizable" style="position:relative; left:0; top:0">