From 5abfc1190ae6904ca2d1f6eb3516aecf900f3321 Mon Sep 17 00:00:00 2001 From: Ivan Mironov Date: Wed, 19 Aug 2026 22:43:35 +0200 Subject: [PATCH 1/3] Replace "%%" with single '%' in `html_onstep_header_begin` This string is not formatted --- src/pages/Page.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/Page.h b/src/pages/Page.h index 83ccf757..0c2f51af 100644 --- a/src/pages/Page.h +++ b/src/pages/Page.h @@ -15,7 +15,7 @@ void pageHeader(int selected); -const char html_onstep_header_begin[] PROGMEM = "
"; +const char html_onstep_header_begin[] PROGMEM = "
"; const char html_onstep_header_title[] PROGMEM = "Smart Web Server "; const char html_onstep_header_links[] PROGMEM = ")
"; const char html_onstep_header_end[] PROGMEM = "
\n"; From bad9deb66fb2d5d2533d4d2c6db9e8301c56a38b Mon Sep 17 00:00:00 2001 From: Ivan Mironov Date: Wed, 19 Aug 2026 22:47:00 +0200 Subject: [PATCH 2/3] Add a space between "OnStep" and version string --- src/pages/Page.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/Page.cpp b/src/pages/Page.cpp index 08d70280..1c47850e 100644 --- a/src/pages/Page.cpp +++ b/src/pages/Page.cpp @@ -13,7 +13,7 @@ void pageHeader(int selected) { if (strlen(status.configName) > 0) data.concat(status.configName); else data.concat(F("OnStep")); data.concat(FPSTR(html_onstep_header_title)); data.concat(firmwareVersion.str); - data.concat(F(" (OnStep")); + data.concat(F(" (OnStep ")); if (status.getVersionStr(temp)) data.concat(temp); else data.concat("?"); www.sendContentAndClear(data); From f2a1f0ad53e4c22f802bfd2d4817567803c2798e Mon Sep 17 00:00:00 2001 From: Ivan Mironov Date: Wed, 19 Aug 2026 22:50:48 +0200 Subject: [PATCH 3/3] Add mobile browser support This adds CSS overrides for narrow screens. Appearance in desktop browsers is unchanged (unless you squeeze browser window too much). LLM usage disclosure: CSS change was implemented by gpt-5.6-sol/xhigh. I tested the result in both desktop Linux versions and Android versions of Firefox and Chrome. --- src/pages/htmlHeaders.h | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/pages/htmlHeaders.h b/src/pages/htmlHeaders.h index 1f301d1b..02f89aee 100644 --- a/src/pages/htmlHeaders.h +++ b/src/pages/htmlHeaders.h @@ -123,7 +123,16 @@ const char html_main_css_buttons[] PROGMEM = const char html_main_css_control[] PROGMEM = ".b1 { float: left; border: 2px solid " COLOR_BORDER "; background-color: " COLOR_CONTROL_BACKGROUND "; text-align: center; margin: 5px; padding: 15px; padding-top: 3px; }" ".gb { font-weight: bold; font-size: 150%; font-family: 'Times New Roman', Times, serif; width: 60px; height: 50px; padding: 0px; touch-action: none; -webkit-touch-callout: none; }" -".bb { font-weight: bold; font-size: 105%; } .bbh { font-weight: bold; font-size: 100%; height: 2.1em; touch-action: none; -webkit-touch-callout: none; }"; +".bb { font-weight: bold; font-size: 105%; } .bbh { font-weight: bold; font-size: 100%; height: 2.1em; touch-action: none; -webkit-touch-callout: none; }" +"@media (max-width: 42em) {" +"body { margin: 0; }" +".t, .b { min-width: 0; margin-left: 0; margin-right: 0; }" +".b { padding: 5px; }" +".b1 { box-sizing: border-box; max-width: calc(100% - 10px); padding-left: 6px; padding-right: 6px; }" +".t table { width: 100%; table-layout: fixed; }" +".t td { overflow-wrap: anywhere; }" +"canvas, textarea { box-sizing: border-box; max-width: 100%; height: auto; }" +"}"; const char html_main_css_collapse[] PROGMEM = ".collapsible { background-color: " COLOR_COLLAPSIBLE_BACKGROUND "; color: " COLOR_COLLAPSIBLE "; cursor: pointer; padding: 7px; width: 80%; border: none; text-align: left; outline: none; font-size: 14px; }"