From b5fdfb3fb8f965df42553d1b47ff813f42bcf44c Mon Sep 17 00:00:00 2001 From: Pyro Nicampt <81565698+PyroNicampt@users.noreply.github.com> Date: Tue, 31 Dec 2024 19:20:55 -0600 Subject: [PATCH] Improve legend display on mobile --- index.html | 25 ++++++++++++----------- legend.js | 7 ++++--- style.css | 60 ++++++++++++++++++++++++++++++++++-------------------- 3 files changed, 55 insertions(+), 37 deletions(-) diff --git a/index.html b/index.html index 002730e..d61ef76 100644 --- a/index.html +++ b/index.html @@ -10,6 +10,7 @@ + @@ -208,20 +209,28 @@ +
+
+ Map v0.4 alpha +
+ Updated for Game Build 99.3 +
+ This tool is a fan work, Derail Valley owned by Altfuture +
DV Community Map
-
-
+
+
Welcome to the WIP community map of Derail Valley, a resource for documenting and displaying all tracks and points of interest.
Hover over tracks and objects for detailed information.
-
+

Key


@@ -236,16 +245,8 @@ DV Wiki
-
+
- diff --git a/legend.js b/legend.js index de2a562..6b4b8fb 100644 --- a/legend.js +++ b/legend.js @@ -75,12 +75,13 @@ document.addEventListener('DOMContentLoaded', async () => { addSettingEntry(thisSetting, settingsPanel); } const legend = document.getElementById('legend'); + const legendContents = document.getElementById('legendContents'); const legendButton = document.getElementById('legendButton'); const legendArrow = legendButton.children[0]; let legendState = true; let legendButtonEvent = e => { - legendArrow.style.transform = `rotate(${legendState ? 180 : 0}deg) translateY(${legendState ? -3 : 3}px)`; - legend.style.transform = `translateX(${legendState ? 0 : legendButton.clientWidth-legend.clientWidth}px)`; + legendArrow.style.transform = `rotate(${legendState ? 180 : 0}deg) translateY(${legendState ? -0 : 0}px)`; + legend.style.transform = `translateX(${legendState ? 0 : -legendContents.clientWidth}px)`; legendState = !legendState; }; legendButton.addEventListener('click', legendButtonEvent); @@ -90,8 +91,8 @@ document.addEventListener('DOMContentLoaded', async () => { function addSettingEntry(thisSetting, parent, indent=0){ thisSetting.divContainer = document.createElement('div'); - thisSetting.divContainer.innerHTML = ' '.repeat(indent); thisSetting.inputElement = document.createElement('input'); + thisSetting.inputElement.style.margin = `0 0.5em 0 ${indent}em`; thisSetting.labelElement = document.createElement('label'); parent.appendChild(thisSetting.divContainer); thisSetting.divContainer.appendChild(thisSetting.inputElement); diff --git a/style.css b/style.css index 65360c4..68db1dd 100644 --- a/style.css +++ b/style.css @@ -11,9 +11,11 @@ --cullThreshold_state_6: none; --absScale: 1; + --legendButtonSize: 50px; } -html, body, #map, #mapContainer, h1, h2, h3, h4, h5{ +html *{ + box-sizing: border-box; padding: 0px; margin: 0px; } @@ -24,6 +26,8 @@ html, body{ font-family: "Noto Sans"; font-variation-settings: "wght" 400; color: #e9e9e9; + font-size: 14px; + overflow:hidden; } a{ @@ -37,51 +41,63 @@ a:visited{ color: #e79830; } -#topleft{ - position:fixed; - top: 0px; - left: 0px; - pointer-events: none; -} - .panel{ - width: fit-content; border: 2px solid #b3b3b396; background: linear-gradient(120deg, #2c3f58, #191e2e); text-shadow: 2px 2px 5px #0003; margin: 5px; padding: 8px 13px; - border-radius: 10px; + border-radius: 5px; pointer-events: all; } +#topleft{ + position:fixed; + top: 0px; + left: 0px; + pointer-events: none; + height: 100vh; + overflow: hidden; + max-width: min(500px,100vw); + display: flex; + flex-direction: column; +} + #headerbar{ background: linear-gradient(120deg, #3d5779, #121522); - font-size: 30px; + font-size: 2em; border-left: 0px; font-variation-settings: "wght" 500; padding: 10px 30px 10px 30px; margin: 10px 0px; border-radius: 0px 10px 10px 0px; + max-width: fit-content; } #legendButton{ cursor: pointer; user-select: none; + padding: 8px; + height: var(--legendButtonSize); + width: var(--legendButtonSize); + >*{ + transition: transform 200ms ease; + height: 100%; + } } #legend{ transition: transform 400ms cubic-bezier(0.445, 0.050, 0.550, 0.950); -} -#legendButton>*{ - transition: transform 200ms ease; -} - -#legendKey{ - font-size: 15px; display: flex; - flex-flow: column wrap; - max-height: 310px; + flex-direction: row; + flex-shrink: 1; + min-height: 0px; +} +#legendContents{ + overflow-y: auto; + scrollbar-width: thin; + scrollbar-color: #62778a #1c1e2d; + pointer-events: all; } #settingsPanel{ @@ -91,12 +107,12 @@ a:visited{ } } -#footer{ +#stats{ position: fixed; width: fit-content; right: 10px; bottom: 5px; - font-size: 12px; + font-size: 0.8em; text-align: right; }