luc-github/ESP3D-WEBUI
A Web UI for ESP8266 or ESP32 based boards connected to 3D printers / CNC
π¦ π Table of Contents
- [π New Features](#new-features)
- [ - HTTPS and WSS Protocol Support](#https-and-wss-protocol-support)
- [ - Language and Theme Pack Manifests](#language-and-theme-pack-manifests)
- [ - Configurable Content Visibility](#configurable-content-visibility)
- [ - Brotli Compression Support](#brotli-compression-support)
- [ - Theme Support for Custom Fonts and JavaScript](#theme-support-for-custom-fonts-and-javascript)
- [ - New settings for panels size](#panels-size)
- [ - Screening for extensions](#screening-extensions)
- + 5 more
β¨ π New Features
- <a id="https-and-wss-protocol-support"></a>
π¦ HTTPS and WSS Protocol Support
- <a id="language-and-theme-pack-manifests"></a>
π¦ Language and Theme Pack Manifests
- Implemented manifest system for language packs and theme packs, enabling better organization and management of multi-language support and custom UI themes.
- <a id="configurable-content-visibility"></a>
π¦ Configurable Content Visibility
- Added ability to select visibility on startup for each extra content item individually, providing more granular control over the interface layout on first load.
- <a id="brotli-compression-support"></a>
π¦ Brotli Compression Support
- Integrated brotli compression support into the build toolchain for more efficient package compression, reducing the size of web assets delivered to the pendant.
- <a id="theme-support-for-custom-fonts-and-javascript"></a>
π¦ Theme Support for Custom Fonts and JavaScript
- <a id="bug-fixes"></a>
π π Bug Fixes
- WebSocket Connection Without Port Specification: Fixed an issue where WebSocket connections would fail when no explicit port was provided. The pendant now correctly handles default port assignment.
- <a id="improvements"></a>
π¦ πͺ Improvements
- Package Size Calculation: Updated size calculation logic to account for brotli-compressed packages, providing more accurate estimates of web asset sizes during the build process.
- CI/CD Pipeline Updates: Updated build CI workflow to support the new compression and manifest systems.
- More individual panels: Allows to move extra content panels individualy, for easier positionning.
- Drag & Drop panels: Allows to move panels by drag and drop in dashboard, for easier organization.
- Extensions directory: Allows to store extensions in extensions sub directory or root but not both.
- Languages packs directory: Allows to store language packs in languages sub directory or root but not both.
- Themes packs directory: Allows to store themes in themes sub directory or root but not both.
- Test server refactoring: Refactoring of the test server for esier maintainability.
- + 10 more
π π Other Changes
- Documentation Cleanup: Removed working documentation files as part of repository maintenance.
- Package Rebuild: Rebuilt packages to include the latest secure protocol support.
- Theme Documentation (`docs/themes.md`): Complete documentation covering the new bundle format and all theme capabilities, with application examples:
- *Example 1 β Custom font* (offline base64, online via `@import`, multi-format self-hosted fallback)
- *Example 2 β Variables and JS coupled: dynamic accent colour* (declarative variables, runtime JS, CDN animation library via `scripts`)
- *Example 3 β Replace the ESP3D logo* (CSS-only colour override, full SVG replacement via JS with `MutationObserver`)
- *CSS-only legacy theme* and *full bundle theme* reference examples
- Language Pack Documentation (`docs/languagepack.md`): Documentation updated to cover the new `_manifest` fields, including custom font loading for scripts requiring specific typefaces (Arabic, CJK, etc.) and RTL reading direction mode (`rtl: true` sets `dir="rtl"` on `<html>` and propagates into extension iframes automatically), with application examples:
- + 5 more
[v3.1.0 - Public RC1](https://github.com/luc-github/ESP3D-WEBUI/releases/tag/v3.1.0RC1) Pre-release This release is bug fix and last planned before finale release π Bug Fixes Fix fallback for manifest not included in extension is not working πͺ Improvements Add more documentation for manifest extensions
π¦ π Table of Contents
- [π New Features](#new-features)
- [ - HTTPS and WSS Protocol Support](#https-and-wss-protocol-support)
- [ - Language and Theme Pack Manifests](#language-and-theme-pack-manifests)
- [ - Configurable Content Visibility](#configurable-content-visibility)
- [ - Brotli Compression Support](#brotli-compression-support)
- [ - Theme Support for Custom Fonts and JavaScript](#theme-support-for-custom-fonts-and-javascript)
- [π Bug Fixes](#bug-fixes)
- [πͺ Improvements](#improvements)
- + 2 more
β¨ π New Features
- <a id="https-and-wss-protocol-support"></a>
π¦ HTTPS and WSS Protocol Support
- <a id="language-and-theme-pack-manifests"></a>
π¦ Language and Theme Pack Manifests
- Implemented manifest system for language packs and theme packs, enabling better organization and management of multi-language support and custom UI themes.
- <a id="configurable-content-visibility"></a>
π¦ Configurable Content Visibility
- Added ability to select visibility on startup for each extra content item individually, providing more granular control over the interface layout on first load.
- <a id="brotli-compression-support"></a>
π¦ Brotli Compression Support
- Integrated brotli compression support into the build toolchain for more efficient package compression, reducing the size of web assets delivered to the pendant.
- <a id="theme-support-for-custom-fonts-and-javascript"></a>
π¦ Theme Support for Custom Fonts and JavaScript
- <a id="bug-fixes"></a>
π π Bug Fixes
- WebSocket Connection Without Port Specification: Fixed an issue where WebSocket connections would fail when no explicit port was provided. The pendant now correctly handles default port assignment.
- <a id="improvements"></a>
π¦ πͺ Improvements
- Package Size Calculation: Updated size calculation logic to account for brotli-compressed packages, providing more accurate estimates of web asset sizes during the build process.
- CI/CD Pipeline Updates: Updated build CI workflow to support the new compression and manifest systems.
- <a id="other-changes"></a>
π π Other Changes
- Documentation Cleanup: Removed working documentation files as part of repository maintenance.
- Package Rebuild: Rebuilt packages to include the latest secure protocol support.
- Theme Documentation (`docs/themes.md`): Complete documentation covering the new bundle format and all theme capabilities, with application examples:
- *Example 1 β Custom font* (offline base64, online via `@import`, multi-format self-hosted fallback)
- *Example 2 β Variables and JS coupled: dynamic accent colour* (declarative variables, runtime JS, CDN animation library via `scripts`)
- *Example 3 β Replace the ESP3D logo* (CSS-only colour override, full SVG replacement via JS with `MutationObserver`)
- *CSS-only legacy theme* and *full bundle theme* reference examples
- Language Pack Documentation (`docs/languagepack.md`): Documentation updated to cover the new `_manifest` fields, including custom font loading for scripts requiring specific typefaces (Arabic, CJK, etc.) and RTL reading direction mode (`rtl: true` sets `dir="rtl"` on `<html>` and propagates into extension iframes automatically), with application examples:
- + 6 more
π¦ π Table of Contents
- [π New Features](#new-features)
- [ New settings for panels size](#panels-size)
- [Screening for extensions](#screening-extensions)
- [Extensions scan and auto-configuration](#extension-scan)
- [πͺ Improvements](#improvements)
- [π Other Changes](#other-changes)
- <a id="new-features"></a>
β¨ π New Features
- <a id="panels-size"></a>
β¨ New settings for panels size
- User can now change the panels size to adjust better it's screenresolutions and preferences
- <a id="screening-extensions"></a>
π¦ Screening for extensions
- Each extensions need to have a manifest to be checked if they are suitable for used version, protecting user from incorrect usage.
- <a id="extension-scan"></a>
π¦ Extensions scan and extensions auto-configuration
- <a id="improvements"></a>
π¦ πͺ Improvements
- More individual panels: Allows to move extra content panels individualy, for easier positionning.
- Drag & Drop panels: Allows to move panels by drag and drop in dashboard, for easier organization.
- Extensions directory: Allows to store extensions in extensions sub directory or root but not both.
- Languages packs directory: Allows to store language packs in languages sub directory or root but not both.
- Themes packs directory: Allows to store themes in themes sub directory or root but not both.
- Test server refactoring: Refactoring of the test server for esier maintainability.
- Packing process improvement: Improve packing process to decrease final package size
- Remove unnecessary icons: Remove some icons that seems not useful in webui context to decrease final package.
- + 8 more
π π Other Changes
- Version Update: The firmware version has been updated to 3.1.0 beta 1.
- ---
- *Generated by Release Agent on 2026-03-17 17:09*
π¦ Packages Sizes
- Sizes for 3.1.0 (+2.2KB~4.5KB vs 3.0) still under 100KB π₯
- | Target | Subtarget | Size | Bytes | Path |
- |--------|-----------|------|-------|------|
- | CNC | GRBL | 91.1 KB | 93315 | CNC\GRBL\index.html.gz |
- | CNC | GRBLHal | 95.8 KB | 98058 | CNC\GRBLHal\index.html.gz |
- | Printer3D | Marlin | 97.1 KB | 99428 | Printer3D\Marlin\index.html.gz |
- | Printer3D | Marlin-embedded | 96.5 KB | 98835 | Printer3D\Marlin-embedded\index.html.gz |
- | Printer3D | Repetier | 95.9 KB | 98201 | Printer3D\Repetier\index.html.gz |
- + 2 more
π¦ Supported Languages
- | Code | Name |
- |------|------|
- | de | Deutsch |
- | es | EspaΓ±ol |
- | fr | FranΓ§ais |
- | hu | Magyar |
- | id | Bahasa Indonesia |
- | it | Italiano |
- + 10 more
π¦ v3.0.1 Maintenance Release
- This release includes a fix for the navbar clipping issue on mobile devices.
π¦ π Table of Contents
- [π Bug Fixes](#bug-fixes)
- [π Other Changes](#other-changes)
- [π₯ Contributors](#contributors)
- [π Statistics](#statistics)
- <a id="bug-fixes"></a>
π π Bug Fixes
- Navbar clipping issue on mobile: Fixed an issue where the navbar was clipping outside of the viewport on mobile devices. ([`f021a1c`](https://github.com/luc-github/esp3d-webui/commit/f021a1c))
- <a id="other-changes"></a>
π π Other Changes
- Documentation updates: Updated the README.md file with additional information.
- <a id="contributors"></a>
π¦ π₯ Contributors
- Thanks to all contributors who made this release possible!
- [@luc-github](https://github.com/luc-github/luc-github) (2 commits, +2/-2)
- [@1001Rem](https://github.com/luc-github/1001Rem) (1 commit, +9/-0)
- <a id="statistics"></a>
π¦ π Statistics
- Commits: 3
- π₯ Contributors: 2
- Lines changed: +11 / -2
- ---
- *Generated by Release Agent on 2025-12-16 10:56*
π What's Changed compare to 2.X
- Lower footprint
- Theme support
- Extensions API for better customization
- Language packs support
- More target platforms support
- Check features: https://esp3d.io/ESP3D-WebUI/Version_3.X/features/
- Full Changelog: https://github.com/luc-github/ESP3D-WEBUI/compare/v3.0.0-beta1...V3.0.0
π What's Changed
- Fix recognition of 100% M73 print status update by @MonoAnji in https://github.com/luc-github/ESP3D-WEBUI/pull/302
- Add support for various Marlin message types by @MonoAnji in https://github.com/luc-github/ESP3D-WEBUI/pull/293
- Longer T1 token for Home Assistant notifications by @dbuezas in https://github.com/luc-github/ESP3D-WEBUI/pull/373
- Dbuezas/dont show print status in terminal by @dbuezas in https://github.com/luc-github/ESP3D-WEBUI/pull/374
- Fix Persistent toasts by @dbuezas in https://github.com/luc-github/ESP3D-WEBUI/pull/375
- Persistent terminal history by @dbuezas in https://github.com/luc-github/ESP3D-WEBUI/pull/378
- 3.0 keyboard shortcut mapping by @luc-github and @aaronse in https://github.com/luc-github/ESP3D-WEBUI/pull/288
- Better Tft support and command extraction by @luc-github in https://github.com/luc-github/ESP3D-WEBUI/pull/383
- + 11 more
β¨ New Contributors
- @dbuezas
- @MonoAnji
- @aaronse
- Documentation: https://esp3d.io/ESP3D-WebUI/Version_3.X/
- Configurator: https://luc-github.github.io/
- The ESP3D-WebUI is now ready for translation: https://esp3d.io/ESP3D-WebUI/Version_3.X/documentation/translation/
- Full Changelog: https://github.com/luc-github/ESP3D-WEBUI/compare/v3.0.0-alpha3...v3.0.0-beta1
π What's Changed
- Add invert X / invert_Y / Invert_Z and swap x y
- Update readme
- Move Wiki to https://esp3d.io
- Full Changelog: https://github.com/luc-github/ESP3D-WEBUI/compare/v2.1.1...v2.1.3
π What's Changed
- Change to hard code WebSocket sub protocol
- Use ISO_8601 date time format for ESP800
- Add more log in case of disconnection
- Fix Reveal password control position is incorrect
- Fix missing space handler in [ESP401] value thanks @TheRedstoneGuy for pointing this out
- Workaround Marlin cannot handle spaces in file names / directory names
- Add WebSocket SubProtocol per @terjeio suggestion
- Add spindle panel features
- + 47 more
π¦ Limitations
- Wizard is not implemented yet
- Works with ESP3D 3.0- alpha-3 - no backward compatibility
- Language packs are not ready to be translated yet as UI is not finished
π¦ Discussion / status
- [Topic](https://github.com/luc-github/ESP3D-WEBUI/issues/157)
- [Discussion](https://github.com/luc-github/ESP3D-WEBUI/discussions/94)
- Full Changelog: https://github.com/luc-github/ESP3D-WEBUI/compare/V3.0-alpha1...V3.0-alpha2re/v3.0-alpha2...v3.0-alpha3
π What's Changed
- Complete refactoring using spectre.css and correct Preact API per @alexblog suggestion
- Smaller footprint
- Add support for extensions/pluggins
- Add theme support by using external css
- Remove banner as unnecessary
- Remove information bar and put information to separate page and respective panel
- Add audio and haptic feedback
- Add Repetier / ESP3DLib V2 / Smoothieware / GRBL support
- + 1 more
π¦ Limitations
- CNC / Sand Table specific UI is still not defined
- Wizard is not implemented yet
- Works with ESP3D 3.0- alpha-2 - no backward compatibility
- Language packs are not ready to be translated yet as UI is not finished
π¦ Discussion / status
- [Topic](https://github.com/luc-github/ESP3D-WEBUI/issues/157)
- [Discussion](https://github.com/luc-github/ESP3D-WEBUI/discussions/94)
β¨ New Contributors
- @alexblog made several contributions like https://github.com/luc-github/ESP3D-WEBUI/pull/236
- Full Changelog: https://github.com/luc-github/ESP3D-WEBUI/compare/V3.0-alpha1...V3.0-alpha2
π What's Changed
- Fix wrong source show in file panel
- Fix SSID with ' not properly transfered from dialog box to control
- Fix macro panel overload UI on some resolutions
- Fix moving buttons in grbl
- Fix SD icon and create dir displayed on GRBL thanks @Wesie
- Fix Abort button for marlin-embedded and marlinkimbra thanks @GerogeFu
- Fix always need to save preferences even no change
- Fix display glitch
- + 23 more
π What's Changed
- Complete rewrite of WebUI using Bootstrap 4 and Preact per @aganov suggestion
- Add ESP32Cam support
- Add mobile view support
- Add mixed extruders support
- Add multiple beds support
- Add print status support
- Add inline Macro support (no file)
- Add ESP3D additional sensors display
- + 8 more
π¦ Limitations
- Limited to Marlin FW support as proof of concept (POC)
- Wizard is not working
- Works with ESP3D 3.0- alpha-1 - no backward compatibility
π¦ Discussion / status
- [Discussion](https://github.com/luc-github/ESP3D-WEBUI/discussions/94)
β¨ New Contributors
- @royfocker19 made their first contribution in https://github.com/luc-github/ESP3D-WEBUI/pull/115
- Full Changelog: https://github.com/luc-github/ESP3D-WEBUI/compare/v2.1-RC1...V3.0-alpha1
UI interface for ESP3D 2.1 used for Repetier, Marlin, GRBL, Smoothieware, also for ESP3DLIB 1.0 used by Marlin_ESP32 and for GRBL_ESP32.
UI interface for ESP3D used for Repetier, Marlin, GRBL, Smoothieware, also for Marlin_ESP32 and GRBL_ESP32.
UI interface for ESP3D used for Repetier, Marlin, GRBL, Smoothieware, also for Marlin_ESP32 and GRBL_ESP32.
UI Interface for ESP3D using ESP8266/ESP32 on Repetier, Marlin and Smoothieware firmware 3D printer
