From e98ede7a727e7a193ffec79f31343de6cb5825a7 Mon Sep 17 00:00:00 2001 From: Ben Harris Date: Wed, 5 Oct 2022 11:10:44 +0100 Subject: [PATCH] Make JavaScript game controls work better in small viewports In the old design, when they wrapped onto multiple lines, various bad things happened. The lines overlapped one another, the lines got broken within buttons but not between buttons, and if they had got broken between buttons the left button on each line would have lacked a left border. I've made two major changes to fix this. First, I've switched from flow layout to flex layout. This has much better default behaviour, breaking lines in the right places, not overlapping lines, and even arranging line-wrapping within a button when the viewport gets really narrow. Second, I've given each button a border on all four sides and then used negative margins to overlap them. This required changing the borders from transparent black to opaque grey to make them display correctly when overlapping. The result is not quite identical to the old version on a wide viewport, but I think it's as close as I can get while keeping the new CSS pleasant. Ideally, the separator would vanish when it was adjacent to a line break, but I've not worked out how to do that yet. --- html/jspage.pl | 49 +++++++++++++------------------------------------ 1 file changed, 13 insertions(+), 36 deletions(-) diff --git a/html/jspage.pl b/html/jspage.pl index 70d7209..99ec85d 100755 --- a/html/jspage.pl +++ b/html/jspage.pl @@ -76,15 +76,17 @@ EOF