Releases: luc-github/ESP3D-WEBUI
Release list
ESP3D-WEBUI 3.1.0
ESP3D-WEBUI
v3.1.0 Release
This release includes some new features and several improvements, enhances web connectivity with secure protocol support, improves resource management through compression, and adds flexibility for language and theme customization.
📋 Table of Contents
- 🚀 New Features
- - HTTPS and WSS Protocol Support
- - Language and Theme Pack Manifests
- - Configurable Content Visibility
- - Brotli Compression Support
- - Theme Support for Custom Fonts and JavaScript
- - New settings for panels size
- - Screening for extensions
- - Extensions scan and auto-configuration
- 🐛 Bug Fixes
- 💪 Improvements
- 📝 Other Changes
🚀 New Features
HTTPS and WSS Protocol Support
Added automatic detection and support for secure HTTPS and WebSocket Secure (WSS) connections when available. The webui now seamlessly switches to encrypted communication protocols for enhanced security.
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.
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.
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.
Theme Support for Custom Fonts and JavaScript
Themes can now include custom fonts and JavaScript, allowing much richer visual and behavioral customization. All theme assets and exports are made available to extensions, so extension developers can rely on the active theme's fonts, styles, and scripts without bundling them separately.
🐛 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.
💪 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.
- 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.
- Shrinking preferences.json: Save in preferences.json only differences from default values, decreasing final size to the minimum size, use export for all settings.
- Minify preferences.json: Minify preferences.json to decrease file size, not applied to expor.
- CSS cleaning and refactoring: Update severals styles for UI consistency and remove unused modules
- Translations up to date: Update all translations packs.
- Translations tools improvment: Add several tools for easier language update including tools to detect missing translations/ automate translations / update missing translations
- Smoothie library stripping: Remove smoothie package to use a stripped version to decrease final package size.
- Browser lists update and modules updates: Update browser list and key modules, no changes on tools modules not integrated.
📝 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
- Example 1 — Custom font (offline base64, online via
- Language Pack Documentation (
docs/languagepack.md): Documentation updated to cover the new_manifestfields, including custom font loading for scripts requiring specific typefaces (Arabic, CJK, etc.) and RTL reading direction mode (rtl: truesetsdir="rtl"on<html>and propagates into extension iframes automatically), with application examples:- Example 1 — RTL language (Arabic) with online font
- Example 2 — CJK language (Japanese) with offline font
- Example 3 — Standard LTR language (no font needed)
- Extension Developer Documentation (
docs/extensions.md): New complete reference guide for creating extensions, covering: file format and naming, manifest fields (target, icons, version filtering),postMessagecommunication, sending GCode/ESP commands, HTTP requests (query/upload/download) through the WebUI, UI helpers (toast, sound, modal), WebUI information (capabilities, translation, icon), persistent settings, inter-extension communication, and using WebUI CSS components inside an extension.
v3.1.0 - Public RC 1
v3.1.0 - Public RC1 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
v3.1.0 - Public Beta 2
This release enhances web connectivity with secure protocol support, improves resource management through compression, and adds flexibility for language and theme customization.
📋 Table of Contents
- 🚀 New Features
- - HTTPS and WSS Protocol Support
- - Language and Theme Pack Manifests
- - Configurable Content Visibility
- - Brotli Compression Support
- - Theme Support for Custom Fonts and JavaScript
- 🐛 Bug Fixes
- 💪 Improvements
- 📝 Other Changes
🚀 New Features
HTTPS and WSS Protocol Support
Added automatic detection and support for secure HTTPS and WebSocket Secure (WSS) connections when available. The webui now seamlessly switches to encrypted communication protocols for enhanced security.
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.
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.
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.
Theme Support for Custom Fonts and JavaScript
Themes can now include custom fonts and JavaScript, allowing much richer visual and behavioral customization. All theme assets and exports are made available to extensions, so extension developers can rely on the active theme's fonts, styles, and scripts without bundling them separately.
🐛 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.
💪 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.
📝 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
- Example 1 — Custom font (offline base64, online via
- Language Pack Documentation (
docs/languagepack.md): Documentation updated to cover the new_manifestfields, including custom font loading for scripts requiring specific typefaces (Arabic, CJK, etc.) and RTL reading direction mode (rtl: truesetsdir="rtl"on<html>and propagates into extension iframes automatically), with application examples:- Example 1 — RTL language (Arabic) with online font
- Example 2 — CJK language (Japanese) with offline font
- Example 3 — Standard LTR language (no font needed)
- Extension Developer Documentation (
docs/extensions.md): New complete reference guide for creating extensions, covering: file format and naming, manifest fields (target, icons, version filtering),postMessagecommunication, sending GCode/ESP commands, HTTP requests (query/upload/download) through the WebUI, UI helpers (toast, sound, modal), WebUI information (capabilities, translation, icon), persistent settings, inter-extension communication, and using WebUI CSS components inside an extension.
Generated by Release Agent on 2026-04-24 12:01
v3.1.0 - Public Beta
This release includes some new features and several improvements
📋 Table of Contents
🚀 New Features
New settings for panels size
User can now change the panels size to adjust better it's screenresolutions and preferences
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.
Extensions scan and extensions auto-configuration
Because now extensions have embedded manifest, a scan to display is available directly in settings, unsupported and already installed extensions is possible, a list is generate helping user to select the ones he wants, the extensions are automaticaly added and configured according this manifest, making the installation and configuration in 3 clicks.
💪 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.
- Shrinking preferences.json: Save in preferences.json only differences from default values, decreasing final size to the minimum size, use export for all settings.
- Minify preferences.json: Minify preferences.json to decrease file size, not applied to expor.
- CSS cleaning and refactoring: Update severals styles for UI consistency and remove unused modules
- Translations up to date: Update all translations packs.
- Translations tools improvment: Add several tools for easier language update including tools to detect missing translations/ automate translations / update missing translations
- Smoothie library stripping: Remove smoothie package to use a stripped version to decrease final package size.
- Browser lists update and modules updates: Update browser list and key modules, no changes on tools modules not integrated.
📝 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 |
| Printer3D | Smoothieware | 95.5 KB | 97826 | Printer3D\Smoothieware\index.html.gz |
| SandTable | GRBL | 83.3 KB | 85348 | SandTable\GRBL\index.html.gz |
Supported Languages
| Code | Name |
|---|---|
| de | Deutsch |
| es | Español |
| fr | Français |
| hu | Magyar |
| id | Bahasa Indonesia |
| it | Italiano |
| ja | 日本語 |
| ko | 한국어 |
| pl | Polski |
| ptbr | Brasileiro |
| ru | Русский |
| th | แบบไทย |
| tr | Türkçe |
| uk | українська |
| zhcn | 简体中文 |
| zhtw | 繁體中文 |
ESP3D-WEBUI 3.0.1 Maintenance Release
v3.0.1 Maintenance Release
This release includes a fix for the navbar clipping issue on mobile devices.
📋 Table of Contents
🐛 Bug Fixes
- Navbar clipping issue on mobile: Fixed an issue where the navbar was clipping outside of the viewport on mobile devices. (
f021a1c)
📝 Other Changes
- Documentation updates: Updated the README.md file with additional information.
👥 Contributors
Thanks to all contributors who made this release possible!
- @luc-github (2 commits, +2/-2)
- @1001Rem (1 commit, +9/-0)
📊 Statistics
- Commits: 3
- 👥 Contributors: 2
- Lines changed: +11 / -2
Generated by Release Agent on 2025-12-16 10:56
v3.0.0
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: v3.0.0-beta1...V3.0.0
V3.0.0-beta1 ESP3D-WEBUI for ESP3D/ESP3DLib/grblHAL
What's Changed
- Fix recognition of 100% M73 print status update by @MonoAnji in #302
- Add support for various Marlin message types by @MonoAnji in #293
- Longer T1 token for Home Assistant notifications by @dbuezas in #373
- Dbuezas/dont show print status in terminal by @dbuezas in #374
- Fix Persistent toasts by @dbuezas in #375
- Persistent terminal history by @dbuezas in #378
- 3.0 keyboard shortcut mapping by @luc-github and @aaronse in #288
- Better Tft support and command extraction by @luc-github in #383
- New settings by @luc-github in #396
- Make extra Content persistent by @luc-github in #398
- Improve contextual display in settings/interface
- Improve extensions features
- Add link to esp3d.io documentation
- Add GCodeViewer and Click2Go as sample extensions
- Improve validation flow for settings
- Several typos fixes
- Several minors bug fixes
- Add new axis settings: invert X / invert_Y / Invert_Z and swap x y
- Update Readme with references links and badges with status
New Contributors
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: v3.0.0-alpha3...v3.0.0-beta1
v2.1.3
What's Changed
- Add invert X / invert_Y / Invert_Z and swap x y
- Update readme
- Move Wiki to https://esp3d.io
Full Changelog: v2.1.1...v2.1.3
V3.0.0-alpha3 ESP3D-WEBUI for ESP3D/ESP3DLib
V3.0.0-alpha3 ESP3D-WEBUI for ESP3D/ESP3DLib
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
- Add G59.1|G59.2|G59.3| filter for #$ in grblHal
- Add extra GC modes for grblHal
- Allow to hide Features tab if not needed by FW
- Fix bug with autoload FS if no FS is defined
- Allow to show/hide Flash FS like others filesystem in Files panel
- Add Helper to manipulate bit masks
- Fix some issue with some tool tips with too long text
- Add spindle panel features
- Fix some issue with some tool tips with too long text
- Add laserPanel
- Fix disable button not always working
- Add new control Slider that fallback to input in mobile view
- Fix ButtonImg without icon to show text even in mobile view
- Add state in information of Spindle area
- Fix some Css glitches
- Fix typo with status and states for feedrate and spindle speed
- Make replaceVariables consistent accros usages
- Allow to change only printable with replaceVariables to show replaced variable if it is a value in terminal
- Add some variables in table
- Add variableList documentation for reference
- Add SD stream support for GRBL
- Add ESP701 response for CNC/GRBL test server
- Add M31 support for Marlin
- Add buttons to control stream status (Pause / Resume / Abort / Clear error)
- Show Flash only if FileSystem is not none in grblHal
- Fix Marlin temperatures are not updated when heating, thanks to Konsequ3nce for raising the issue
- Add code base for grblHal
- Code base for CNC status / laser / probe / spindle panels
- Add missing test color in notifications
- Allow to customize notification color when using [ESP600]
- Add extraction of message from [MSG: string
- Code base to extract ? and $G output
- Add alarm/error/version/options/gcode parameters capture support from stream
- Add $# $I output to test server
- Allow to disable sensor dispatch on test server
- Fix test server ESP600 not sending answer
- Fix latest library update break progressbar display
- Fix CNC emergency button not working
- Fix multiple commands cannot mixed GCODE with ESP commands
- Add missing tooltip helper for emergency command setting
- Fix missing variable conversion in terminal commands
- Add SD ext if SDConnection is not none
- Factorize the depend and put functions in helper (boolean/input)
- Fix the multiple depend not always working (json)
- Add And / Or depend conditions
- Fix download direct sd from sub directory is not working
- Fix ESP800 does not set time manually
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
Full Changelog: https://github.com/luc-github/ESP3D-WEBUI/compare/V3.0-alpha1...V3.0-alpha2re/v3.0-alpha2...v3.0-alpha3
V3.0-alpha2 ESP3D-WEBUI for ESP3D
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
- Split code for 3DPrinter / CNC / Sand Table
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
New Contributors
@alexblog made several contributions like #236
Full Changelog: V3.0-alpha1...V3.0-alpha2