From 285c5b04e8ce6b2e409568219241c64900f172b1 Mon Sep 17 00:00:00 2001 From: izawartka <59137928+izawartka@users.noreply.github.com> Date: Fri, 15 Aug 2025 21:23:46 +0200 Subject: [PATCH 1/5] Added theme toggle +Added dark-mode and light-mode component icons +Added ThemeToggle in the toolbar +Added ThemeManager and ThemeContext --- src/components/App.js | 25 ++++++++++++++----------- src/components/ThemeManager.js | 20 ++++++++++++++++++++ src/components/toolbar/ThemeToggle.js | 19 +++++++++++++++++++ src/components/toolbar/Toolbar.css | 2 ++ src/components/toolbar/Toolbar.js | 2 ++ src/contexts/ThemeContext.js | 4 ++++ src/icons/index.js | 2 ++ src/icons/toolbar/dark-mode.js | 7 +++++++ src/icons/toolbar/light-mode.js | 18 ++++++++++++++++++ 9 files changed, 88 insertions(+), 11 deletions(-) create mode 100644 src/components/ThemeManager.js create mode 100644 src/components/toolbar/ThemeToggle.js create mode 100644 src/contexts/ThemeContext.js create mode 100644 src/icons/toolbar/dark-mode.js create mode 100644 src/icons/toolbar/light-mode.js diff --git a/src/components/App.js b/src/components/App.js index 19862f9..1f367e9 100644 --- a/src/components/App.js +++ b/src/components/App.js @@ -10,23 +10,26 @@ import DistanceMeterContext from '../contexts/DistanceMeterContext'; import {GradientsManager} from "./GradientsManager"; import SideMenuContext from '../contexts/SideMenuContext'; import SceneryManager from './SceneryManager'; +import ThemeManager from './ThemeManager'; function App() { const [sideMenuOpen, setSideMenuOpen] = useState(false); const [distancePoints, setDistancePoints] = useState(null); return ( - - - - - - - - - - - + + + + + + + + + + + + + ); } diff --git a/src/components/ThemeManager.js b/src/components/ThemeManager.js new file mode 100644 index 0000000..2d98164 --- /dev/null +++ b/src/components/ThemeManager.js @@ -0,0 +1,20 @@ +import { useState } from "react"; +import ThemeContext from "../contexts/ThemeContext"; + +export default function ThemeManager(props) { + const [ lightMode, setLightMode ] = useState(false); + + if(lightMode === true) { + document.body.classList.add('light-mode'); + } else { + document.body.classList.remove('light-mode'); + } + + return ( + + { props.children } + + ); +} diff --git a/src/components/toolbar/ThemeToggle.js b/src/components/toolbar/ThemeToggle.js new file mode 100644 index 0000000..62ad0c6 --- /dev/null +++ b/src/components/toolbar/ThemeToggle.js @@ -0,0 +1,19 @@ +import { useContext } from 'react'; +import { LightModeIcon, DarkModeIcon } from '../../icons'; +import ThemeContext from '../../contexts/ThemeContext'; + +export default function ThemeToggle() { + const { setLightMode, lightMode } = useContext(ThemeContext); + + const toggleLightMode = () => { + setLightMode((prev) => !prev); + } + + return ( +
+ +
+ ); +} \ No newline at end of file diff --git a/src/components/toolbar/Toolbar.css b/src/components/toolbar/Toolbar.css index 0deb054..debf6c7 100644 --- a/src/components/toolbar/Toolbar.css +++ b/src/components/toolbar/Toolbar.css @@ -54,10 +54,12 @@ width: 2rem; } +.theme-toggle g, .side-menu-toggle g { stroke: #aaa; } +.theme-toggle:hover g, .side-menu-toggle:hover g { stroke: #fff; } diff --git a/src/components/toolbar/Toolbar.js b/src/components/toolbar/Toolbar.js index b1a346e..b625437 100644 --- a/src/components/toolbar/Toolbar.js +++ b/src/components/toolbar/Toolbar.js @@ -4,6 +4,7 @@ import CustomFileSelect from './CustomFileSelect'; import SideMenuToggle from './SideMenuToggle'; import SceneryList from './SceneryList'; import ElectrificationStepMode from './ElectrificationStepMode'; +import ThemeToggle from './ThemeToggle'; export default function Toolbar() { return ( @@ -14,6 +15,7 @@ export default function Toolbar() {
+
diff --git a/src/contexts/ThemeContext.js b/src/contexts/ThemeContext.js new file mode 100644 index 0000000..1c69777 --- /dev/null +++ b/src/contexts/ThemeContext.js @@ -0,0 +1,4 @@ +import { createContext } from 'react'; + +const ThemeContext = createContext(); +export default ThemeContext; diff --git a/src/icons/index.js b/src/icons/index.js index a501b68..db5bc9b 100644 --- a/src/icons/index.js +++ b/src/icons/index.js @@ -1,4 +1,6 @@ /* Toolbar Icons */ +export { DarkModeIcon } from "./toolbar/dark-mode"; +export { LightModeIcon } from "./toolbar/light-mode"; export { SideMenuIcon } from "./toolbar/side-menu"; /* TrackHoverInfo Icons */ diff --git a/src/icons/toolbar/dark-mode.js b/src/icons/toolbar/dark-mode.js new file mode 100644 index 0000000..29e2bea --- /dev/null +++ b/src/icons/toolbar/dark-mode.js @@ -0,0 +1,7 @@ +export const DarkModeIcon = ({color = '#aaa', strokeWidth = 9}) => ( + + + + + +); diff --git a/src/icons/toolbar/light-mode.js b/src/icons/toolbar/light-mode.js new file mode 100644 index 0000000..1ab6f8f --- /dev/null +++ b/src/icons/toolbar/light-mode.js @@ -0,0 +1,18 @@ +export const LightModeIcon = ({color = '#aaa', strokeWidth = 10}) => ( + + + + + + + + + + + + + + + + +); \ No newline at end of file From 06f2d2080fbe57aa746d3a4ad089ee825788d57f Mon Sep 17 00:00:00 2001 From: izawartka <59137928+izawartka@users.noreply.github.com> Date: Fri, 15 Aug 2025 21:24:48 +0200 Subject: [PATCH 2/5] Updated css for the light mode *Updated all CSS to work with the new light mode --- src/components/App.css | 38 +++++++------- src/components/App.js | 3 +- src/components/Themes.css | 49 +++++++++++++++++++ src/components/dialog/Dialog.css | 6 +-- src/components/map/Map.css | 22 ++++----- .../map/track-hover-info/TrackHoverInfo.css | 8 +-- .../scenery-info-dialog/SceneryInfoDialog.css | 4 +- .../SceneryParserLogView.css | 8 +-- src/components/sidemenu/SideMenu.css | 6 +-- .../track-color-mode/TrackColorMode.css | 2 +- src/components/toolbar/Toolbar.css | 9 ++-- 11 files changed, 103 insertions(+), 52 deletions(-) create mode 100644 src/components/Themes.css diff --git a/src/components/App.css b/src/components/App.css index b0749d1..97cc391 100644 --- a/src/components/App.css +++ b/src/components/App.css @@ -1,6 +1,6 @@ body { - background-color: #141414; - color: #eee; + background-color: var(--background-color); + color: var(--text-color); font-family: monospace; } @@ -29,10 +29,10 @@ button, select { font-size: inherit; font-family: inherit; - background: #fff2; + background: var(--layer-color); border-radius: 8px; border: none; - color: #eee; + color: var(--text-color); padding-inline: 8px; padding-block: 4px; outline: none; @@ -43,27 +43,27 @@ input[type="file"].non-transparent::file-selector-button, input[type="text"].non-transparent, button.non-transparent, select.non-transparent { - background: #222; - border: 2px solid #444; + background: var(--layer-color-non-transparent); + border: 2px solid var(--layer-color-non-transparent); } input[type="file"]::file-selector-button:hover, button:hover, select:hover { - background: #fff3; + background: var(--layer-color-hover); } input[type="file"].non-transparent::file-selector-button:hover, button.non-transparent:hover, select.non-transparent:hover { - background: #444; + background: var(--layer-color-non-transparent-hover); } input[type="file"]:disabled::file-selector-button, button:disabled, select:disabled { - background: #fff1; - color: #666; + background: var(--layer-color-disabled); + color: var(--text-color-disabled); cursor: not-allowed; } @@ -71,8 +71,8 @@ select:disabled { input[type="file"].non-transparent:disabled::file-selector-button, button.non-transparent:disabled, select.non-transparent:disabled { - background: #222; - color: #666; + background: var(--layer-color-non-transparent-disabled); + color: var(--text-color-disabled); cursor: not-allowed; } @@ -83,17 +83,17 @@ button { } select > option { - background: #141414; - color: #eee; + background: var(--background-color); + color: var(--text-color); } input[type="text"] { background-color: unset; - border: 2px solid #fff2; + border: 2px solid var(--layer-color); } input[type="text"]:focus { - border: 2px solid #fff3; + border: 2px solid var(--layer-color-hover); } .invis-button { @@ -111,17 +111,17 @@ input[type="text"]:focus { } ::-webkit-scrollbar-track { - background-color: #141414; + background-color: var(--background-color); border-radius: 5px; } ::-webkit-scrollbar-thumb { - background-color: #fff2; + background-color: var(--layer-color); border-radius: 5px; } ::-webkit-scrollbar-thumb:hover { - background-color: #fff3; + background-color: var(--layer-color-hover); } ::-webkit-scrollbar { diff --git a/src/components/App.js b/src/components/App.js index 1f367e9..7bfb534 100644 --- a/src/components/App.js +++ b/src/components/App.js @@ -1,7 +1,6 @@ import { useState } from 'react'; import Map from './map/Map'; import Toolbar from './toolbar/Toolbar'; -import './App.css'; import SideMenu from './sidemenu/SideMenu'; import SettingsManager from './SettingsManager'; import LocList from './loclist/LocList'; @@ -11,6 +10,8 @@ import {GradientsManager} from "./GradientsManager"; import SideMenuContext from '../contexts/SideMenuContext'; import SceneryManager from './SceneryManager'; import ThemeManager from './ThemeManager'; +import './Themes.css'; +import './App.css'; function App() { const [sideMenuOpen, setSideMenuOpen] = useState(false); diff --git a/src/components/Themes.css b/src/components/Themes.css new file mode 100644 index 0000000..93c587b --- /dev/null +++ b/src/components/Themes.css @@ -0,0 +1,49 @@ +:root { + --background-color: #141414; + --text-color: #eee; + --layer-color: #fff2; + --layer-color-hover: #fff3; + --layer-color-disabled: #fff1; + --layer-color-non-transparent: #222; + --layer-color-non-transparent-hover: #444; + --layer-color-non-transparent-disabled: #222; + --text-color-disabled: #666; + --border-color: #444; + --text-color-inverted: #141414; + --icon-color: #aaa; + --icon-color-active: #fff; + --map-background-color: #111; + --map-shadow-color: #000; + --map-icon-color: #eee; + --map-text-color: #eee; + --map-platform-color: #444; + --dialog-background-color: #222; + --parser-log-background-color: #0004; + --parser-log-warn-color: #aa4; + --parser-log-error-color: #f44; +} + +.light-mode { + --background-color: #eee; + --text-color: #222; + --layer-color: #0002; + --layer-color-hover: #0003; + --layer-color-disabled: #0001; + --layer-color-non-transparent: #ddd; + --layer-color-non-transparent-hover: #eee; + --layer-color-non-transparent-disabled: #888; + --text-color-disabled: #666; + --border-color: #aaa; + --text-color-inverted: #eee; + --icon-color: #222; + --icon-color-active: #888; + --map-background-color: #fff; + --map-shadow-color: #0008; + --map-icon-color: #444; + --map-text-color: #444; + --map-platform-color: #ccc; + --dialog-background-color: #ddd; + --parser-log-background-color: #fff4; + --parser-log-warn-color: #774; + --parser-log-error-color: #f44; +} diff --git a/src/components/dialog/Dialog.css b/src/components/dialog/Dialog.css index 5234a06..1533da2 100644 --- a/src/components/dialog/Dialog.css +++ b/src/components/dialog/Dialog.css @@ -13,8 +13,8 @@ .dialog { display: block; - background-color: #222; - border: 2px solid #444; + background-color: var(--dialog-background-color); + border: 2px solid var(--border-color); border-radius: 8px; margin: 0 auto; padding: 1em; @@ -34,7 +34,7 @@ .dialog-title { margin-bottom: 2em; - color: #888; + color: var(--text-color-disabled); font-weight: bold; } diff --git a/src/components/map/Map.css b/src/components/map/Map.css index eb0c914..1e94315 100644 --- a/src/components/map/Map.css +++ b/src/components/map/Map.css @@ -3,7 +3,7 @@ display: flex; flex-wrap: wrap; flex-direction: column; - background-color: #111; + background-color: var(--map-background-color); } .map svg path.track { @@ -19,9 +19,9 @@ .map text { font-size: 2px; - fill: #eee; + fill: var(--map-text-color); stroke: none; - text-shadow: 0 0 16px #000; + text-shadow: 0 0 16px var(--map-shadow-color); } .map .switch-name-text { @@ -46,11 +46,11 @@ } .map g.track-object circle { - fill: #eee; + fill: var(--map-icon-color); } .map g.track-object text { - fill: #eee; + fill: var(--map-text-color); display: none; } @@ -59,7 +59,7 @@ } .map g.platform rect { - fill: #444; + fill: var(--map-platform-color); } .map g.map-icon-stroked path, @@ -67,25 +67,25 @@ .map g.map-icon-stroked line, .map g.map-icon-stroked rect { fill: none; - stroke: #eee; + stroke: var(--map-icon-color); } .map g.map-icon path, .map g.map-icon circle, .map g.map-icon line, .map g.map-icon rect { - fill: #eee; + fill: var(--map-icon-color); stroke: none; } .map g.map-icon-stroked .background, .map g.map-icon .background { - fill: #111; + fill: var(--map-background-color); stroke: none; } .map g.map-icon-stroked .with-background, .map g.map-icon .with-background { - fill: #111; - stroke: #eee; + fill: var(--map-background-color); + stroke: var(--map-icon-color); } diff --git a/src/components/map/track-hover-info/TrackHoverInfo.css b/src/components/map/track-hover-info/TrackHoverInfo.css index a2caf03..9b9c979 100644 --- a/src/components/map/track-hover-info/TrackHoverInfo.css +++ b/src/components/map/track-hover-info/TrackHoverInfo.css @@ -6,8 +6,8 @@ } .track-hover-info-popup { - background-color: #222; - border: 2px solid #444; + background-color: var(--layer-color-non-transparent); + border: 2px solid var(--border-color); border-radius: 8px; padding: 1em; } @@ -24,13 +24,13 @@ .track-hover-info-popup th { text-align: start; padding-right: 2em; - color: #888; + color: var(--text-color-disabled); } .track-hover-info-popup__align { margin-top: 1.5em; padding: 2px; - color: #888; + color: var(--text-color-disabled); } .track-hover-info-popup .track-hover-info-popup-label { diff --git a/src/components/scenery-info-dialog/SceneryInfoDialog.css b/src/components/scenery-info-dialog/SceneryInfoDialog.css index 0a2ccc0..0f6ca7e 100644 --- a/src/components/scenery-info-dialog/SceneryInfoDialog.css +++ b/src/components/scenery-info-dialog/SceneryInfoDialog.css @@ -1,12 +1,12 @@ .scenery-info-view td.label { font-weight: bold; - color: #aaa; + color: var(--text-disabled-color); vertical-align: baseline; padding-right: 1em; } .scenery-info-view td.value a { - color: #eee; + color: var(--text-color); text-decoration: none; } diff --git a/src/components/scenery-loaded-dialog/SceneryParserLogView.css b/src/components/scenery-loaded-dialog/SceneryParserLogView.css index baef0ae..52db454 100644 --- a/src/components/scenery-loaded-dialog/SceneryParserLogView.css +++ b/src/components/scenery-loaded-dialog/SceneryParserLogView.css @@ -1,8 +1,8 @@ .scenery-parser-log-view { padding: 1em; border-radius: 8px; - border: 2px solid #444; - background-color: #0004; + border: 2px solid var(--border-color); + background-color: var(--parser-log-background-color); } .scenery-parser-log-view ul { @@ -14,9 +14,9 @@ } .scenery-parser-log-view .log-entry.warn { - color: #aa4; + color: var(--parser-log-warn-color); } .scenery-parser-log-view .log-entry.error { - color: #f44; + color: var(--parser-log-error-color); } \ No newline at end of file diff --git a/src/components/sidemenu/SideMenu.css b/src/components/sidemenu/SideMenu.css index 831072a..feac37b 100644 --- a/src/components/sidemenu/SideMenu.css +++ b/src/components/sidemenu/SideMenu.css @@ -3,13 +3,13 @@ } .side-menu { - border-left: 2px solid #444; + border-left: 2px solid var(--border-color); padding: 1em; position: absolute; right: 0; top: 0; bottom: 0; - background-color: #141414; + background-color: var(--background-color); z-index: 2000; width: max-content; transition: transform 0.2s ease-in-out; @@ -71,7 +71,7 @@ } .info-footer { - color: #888; + color: var(--text-color-disabled); display: flex; flex-direction: column; flex-wrap: nowrap; diff --git a/src/components/sidemenu/track-color-mode/TrackColorMode.css b/src/components/sidemenu/track-color-mode/TrackColorMode.css index 7c97a27..9fedbe2 100644 --- a/src/components/sidemenu/track-color-mode/TrackColorMode.css +++ b/src/components/sidemenu/track-color-mode/TrackColorMode.css @@ -28,7 +28,7 @@ flex-direction: column; gap: 1em; padding: 1em; - background-color: #fff1; + background-color: var(--layer-color); border-radius: 8px; } diff --git a/src/components/toolbar/Toolbar.css b/src/components/toolbar/Toolbar.css index debf6c7..3442268 100644 --- a/src/components/toolbar/Toolbar.css +++ b/src/components/toolbar/Toolbar.css @@ -5,7 +5,7 @@ align-items: center; gap: 10px; padding: 10px; - border-bottom: 2px solid #444; + border-bottom: 2px solid var(--border-color); } .toolbar-spacer { @@ -29,7 +29,7 @@ .loading-indicator { height: fit-content; padding: 4px 8px; - color: #141414; + color: var(--text-color-inverted); text-align: center; opacity: 0; transition: opacity 1s ease-in-out; @@ -48,6 +48,7 @@ animation: fadeOut 1s ease-in-out 2s forwards; /* Start fading out after 2 seconds */ } +.theme-toggle svg, .side-menu-toggle svg { display: block; height: 2rem; @@ -56,10 +57,10 @@ .theme-toggle g, .side-menu-toggle g { - stroke: #aaa; + stroke: var(--icon-color); } .theme-toggle:hover g, .side-menu-toggle:hover g { - stroke: #fff; + stroke: var(--icon-color-active); } From 61026481f85adf5510e5e5b905fa51ed5b353214 Mon Sep 17 00:00:00 2001 From: izawartka <59137928+izawartka@users.noreply.github.com> Date: Sat, 16 Aug 2025 00:07:36 +0200 Subject: [PATCH 3/5] Updated styling colors *Changed color values of some theme variables *Tracks now have different colors depending on the theme *Changed colors of some elements --- src/components/App.css | 2 +- src/components/Themes.css | 22 +++++++++++++------ src/components/dialog/Dialog.css | 4 ++-- .../scenery-info-dialog/SceneryInfoDialog.css | 2 +- .../track-color-mode/TrackColorMode.css | 2 +- src/helpers/constants.js | 8 +++---- 6 files changed, 24 insertions(+), 16 deletions(-) diff --git a/src/components/App.css b/src/components/App.css index 97cc391..65c5628 100644 --- a/src/components/App.css +++ b/src/components/App.css @@ -44,7 +44,7 @@ input[type="text"].non-transparent, button.non-transparent, select.non-transparent { background: var(--layer-color-non-transparent); - border: 2px solid var(--layer-color-non-transparent); + border: 2px solid var(--border-color); } input[type="file"]::file-selector-button:hover, diff --git a/src/components/Themes.css b/src/components/Themes.css index 93c587b..02ca143 100644 --- a/src/components/Themes.css +++ b/src/components/Themes.css @@ -1,13 +1,14 @@ :root { --background-color: #141414; --text-color: #eee; + --half-layer-color: #fff1; --layer-color: #fff2; --layer-color-hover: #fff3; --layer-color-disabled: #fff1; --layer-color-non-transparent: #222; --layer-color-non-transparent-hover: #444; --layer-color-non-transparent-disabled: #222; - --text-color-disabled: #666; + --text-color-disabled: #888; --border-color: #444; --text-color-inverted: #141414; --icon-color: #aaa; @@ -17,6 +18,9 @@ --map-icon-color: #eee; --map-text-color: #eee; --map-platform-color: #444; + --map-track-color: #aaa; + --map-track-color-invisible: #555; + --map-track-color-electrified: #aaf; --dialog-background-color: #222; --parser-log-background-color: #0004; --parser-log-warn-color: #aa4; @@ -27,21 +31,25 @@ --background-color: #eee; --text-color: #222; --layer-color: #0002; + --half-layer-color: #0001; --layer-color-hover: #0003; --layer-color-disabled: #0001; --layer-color-non-transparent: #ddd; - --layer-color-non-transparent-hover: #eee; + --layer-color-non-transparent-hover: #ccc; --layer-color-non-transparent-disabled: #888; - --text-color-disabled: #666; - --border-color: #aaa; + --text-color-disabled: #888; + --border-color: #888; --text-color-inverted: #eee; --icon-color: #222; --icon-color-active: #888; --map-background-color: #fff; --map-shadow-color: #0008; - --map-icon-color: #444; - --map-text-color: #444; - --map-platform-color: #ccc; + --map-icon-color: #111; + --map-text-color: #111; + --map-platform-color: #aaa; + --map-track-color: #555; + --map-track-color-invisible: #999; + --map-track-color-electrified: #33b; --dialog-background-color: #ddd; --parser-log-background-color: #fff4; --parser-log-warn-color: #774; diff --git a/src/components/dialog/Dialog.css b/src/components/dialog/Dialog.css index 1533da2..a6deb98 100644 --- a/src/components/dialog/Dialog.css +++ b/src/components/dialog/Dialog.css @@ -8,12 +8,12 @@ width: 100vw; height: 100vh; z-index: 100; - background-color: rgba(0, 0, 0, 0.25); + background-color: rgba(0, 0, 0, 0.33); } .dialog { display: block; - background-color: var(--dialog-background-color); + background-color: var(--background-color); border: 2px solid var(--border-color); border-radius: 8px; margin: 0 auto; diff --git a/src/components/scenery-info-dialog/SceneryInfoDialog.css b/src/components/scenery-info-dialog/SceneryInfoDialog.css index 0f6ca7e..99f73f1 100644 --- a/src/components/scenery-info-dialog/SceneryInfoDialog.css +++ b/src/components/scenery-info-dialog/SceneryInfoDialog.css @@ -1,6 +1,6 @@ .scenery-info-view td.label { font-weight: bold; - color: var(--text-disabled-color); + color: var(--text-color-disabled); vertical-align: baseline; padding-right: 1em; } diff --git a/src/components/sidemenu/track-color-mode/TrackColorMode.css b/src/components/sidemenu/track-color-mode/TrackColorMode.css index 9fedbe2..e2c571f 100644 --- a/src/components/sidemenu/track-color-mode/TrackColorMode.css +++ b/src/components/sidemenu/track-color-mode/TrackColorMode.css @@ -28,7 +28,7 @@ flex-direction: column; gap: 1em; padding: 1em; - background-color: var(--layer-color); + background-color: var(--half-layer-color); border-radius: 8px; } diff --git a/src/helpers/constants.js b/src/helpers/constants.js index 962e6d2..574dd57 100644 --- a/src/helpers/constants.js +++ b/src/helpers/constants.js @@ -138,16 +138,16 @@ const Constants = { name: 'Standard', optionDefault: 'default', options: { - 'default': ['#aaa', 'Standard track'], - 'invisible': ['#444', 'Invisible track'], + 'default': ['var(--map-track-color)', 'Standard track'], + 'invisible': ['var(--map-track-color-invisible)', 'Invisible track'], } }, 'electrification': { name: 'Electrification', optionDefault: 'conflict', options: { - 'electrified': ['#aaf', 'Electrified'], - 'non-electrified': ['#aaa', 'Non-electrified'], + 'electrified': ['var(--map-track-color-electrified)', 'Electrified'], + 'non-electrified': ['var(--map-track-color)', 'Non-electrified'], 'not-checked': ['#aa4', 'Unknown'], 'conflict': ['#f44', 'Error / Conflict'], } From ff3ab7049f34778bd2d473e6f3f58d932ae8d736 Mon Sep 17 00:00:00 2001 From: izawartka <59137928+izawartka@users.noreply.github.com> Date: Sat, 16 Aug 2025 00:15:09 +0200 Subject: [PATCH 4/5] Fixed more CSS errors *Sign texts no longer have shadow *TrackHoverInfo is now using the standard background color *Fixed z-indexes *Tweaked disabled text color --- src/components/Themes.css | 2 +- src/components/map/Map.css | 4 ++++ src/components/map/object-renderers/SignRenderer.js | 2 +- src/components/map/object-renderers/SignalExtendedRenderer.js | 2 +- src/components/map/track-hover-info/TrackHoverInfo.css | 2 +- src/components/sidemenu/SideMenu.css | 2 +- src/components/toolbar/Toolbar.css | 2 +- 7 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/components/Themes.css b/src/components/Themes.css index 02ca143..533d08c 100644 --- a/src/components/Themes.css +++ b/src/components/Themes.css @@ -37,7 +37,7 @@ --layer-color-non-transparent: #ddd; --layer-color-non-transparent-hover: #ccc; --layer-color-non-transparent-disabled: #888; - --text-color-disabled: #888; + --text-color-disabled: #666; --border-color: #888; --text-color-inverted: #eee; --icon-color: #222; diff --git a/src/components/map/Map.css b/src/components/map/Map.css index 1e94315..f442a23 100644 --- a/src/components/map/Map.css +++ b/src/components/map/Map.css @@ -24,6 +24,10 @@ text-shadow: 0 0 16px var(--map-shadow-color); } +.map .sign-text { + text-shadow: none; +} + .map .switch-name-text { font-size: 3px; } diff --git a/src/components/map/object-renderers/SignRenderer.js b/src/components/map/object-renderers/SignRenderer.js index a9a473b..0882d2d 100644 --- a/src/components/map/object-renderers/SignRenderer.js +++ b/src/components/map/object-renderers/SignRenderer.js @@ -40,7 +40,7 @@ function SignTextRenderer(props) { return ( Date: Sat, 16 Aug 2025 14:16:07 +0200 Subject: [PATCH 5/5] Updated CSS *Updated SceneryParserLogView background color *Updated some light mode color variables --- src/components/Themes.css | 6 +++--- .../scenery-loaded-dialog/SceneryParserLogView.css | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/components/Themes.css b/src/components/Themes.css index 533d08c..6c73490 100644 --- a/src/components/Themes.css +++ b/src/components/Themes.css @@ -28,7 +28,7 @@ } .light-mode { - --background-color: #eee; + --background-color: #f8f8f8; --text-color: #222; --layer-color: #0002; --half-layer-color: #0001; @@ -43,7 +43,7 @@ --icon-color: #222; --icon-color-active: #888; --map-background-color: #fff; - --map-shadow-color: #0008; + --map-shadow-color: #fff8; --map-icon-color: #111; --map-text-color: #111; --map-platform-color: #aaa; @@ -51,7 +51,7 @@ --map-track-color-invisible: #999; --map-track-color-electrified: #33b; --dialog-background-color: #ddd; - --parser-log-background-color: #fff4; + --parser-log-background-color: #0001; --parser-log-warn-color: #774; --parser-log-error-color: #f44; } diff --git a/src/components/scenery-loaded-dialog/SceneryParserLogView.css b/src/components/scenery-loaded-dialog/SceneryParserLogView.css index 52db454..45bf549 100644 --- a/src/components/scenery-loaded-dialog/SceneryParserLogView.css +++ b/src/components/scenery-loaded-dialog/SceneryParserLogView.css @@ -1,8 +1,8 @@ .scenery-parser-log-view { padding: 1em; border-radius: 8px; + background-color: var(--half-layer-color); border: 2px solid var(--border-color); - background-color: var(--parser-log-background-color); } .scenery-parser-log-view ul {