v1.0.3 Proton2025 - Elegant Theme for LuCI
Changelog 1.0.3
Fixes
- Fixed Load Average widget disappearing in Chinese and other languages
- Fixed table header border-radius (rounding now only on the first and last th)
- Fixed table style conflicts with custom packages
- Fixed table width measurement with overflow:hidden/text-overflow:ellipsis
- Removed 35 incorrect CSS selectors
body[data-page=""]that did not match real pages - Fixed Overview page detection logic in services-widget.js (removed fallbacks to empty data-page)
- Fixed Overview style application — they no longer affect the Realtime Graphs page (/admin/status)
- Removed invalid CSS selector
:contains()from cascade.css (not standard CSS) - Removed 7
console.logcalls from production code (settings-sync.js, custom-pages.js) - Added explanatory comments to 7 empty catch blocks in services-widget.js
- Fixed duplicated event listeners in dropdown menus (WiFi, Interfaces, Devices)
- Fixed dropdown positioning for Devices (top: 100% instead of 65%)
- Fixed action button lookup in Devices dropdown — now works with different DOM structures
Improvements
- Rewrote Load Average lookup: now by position (9th row) with value pattern validation instead of 29 keywords
- Optimized custom-pages.js: replaced setTimeout chains with a debounced MutationObserver
- Added automatic custom page detection (custom-pages.js)
- Applied Bootstrap-compatible table styles for custom pages
- Dynamically expands the container to the right if content is wider than 990px
- Reduced table font-size on custom pages (12px)
- Synchronized page width (990px) between header.ut and cascade.css
- Added L.poll subscription to restore the widget after data updates
- Unified styles for #tabmenu and .cbi-tabmenu (same look for navigation tabs)
- Disabled custom-page styles on mobile screens (< 800px)
- Improved measurement of the table "natural" width (temporarily removing CSS constraints)
New Features
- Added a dropdown (⋮) for action buttons on the Network → Devices page
- Works only on desktop (≥800px); on mobile it uses regular buttons
- Styling matches the WiFi and Interfaces dropdown
- Created a single global handler
setupGlobalDropdownHandlers()for all dropdown menus - Added initialization flags to prevent duplicated event handlers
New Files
custom-pages.js— automatic detection and styling for custom pages
📦 Packages
.ipk— для OpenWrt с opkg (версии до 24.x).apk— для OpenWrt с apk (версии 24.10+)
🔧 Установка
opkg (IPK):
opkg install luci-theme-proton2025_*.ipkapk (APK):
apk add --allow-untrusted luci-theme-proton2025_*.apk