Skip to content

ESP3D-WEBUI 3.1.0

Latest

Choose a tag to compare

@luc-github luc-github released this 25 May 06:52

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

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
  • 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:
    • 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), postMessage communication, 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.