From cf5f9d2f3f2dd0278d154b947d868d0de66b08cb Mon Sep 17 00:00:00 2001
From: s-hadinger <49731213+s-hadinger@users.noreply.github.com>
Date: Tue, 23 Sep 2025 18:44:43 +0200
Subject: [PATCH] Tentative to enrich AI doc for WebUI design and
implementation (#23942)
---
.doc_for_ai/TASMOTA_WEBUI_CODING_GUIDE.md | 947 ++++++++++++++++++++
.doc_for_ai/Tasmota configuration menu.png | Bin 0 -> 75884 bytes
.doc_for_ai/Tasmota configuration other.png | Bin 0 -> 109641 bytes
.doc_for_ai/Tasmota main page.png | Bin 0 -> 91375 bytes
4 files changed, 947 insertions(+)
create mode 100644 .doc_for_ai/TASMOTA_WEBUI_CODING_GUIDE.md
create mode 100644 .doc_for_ai/Tasmota configuration menu.png
create mode 100644 .doc_for_ai/Tasmota configuration other.png
create mode 100644 .doc_for_ai/Tasmota main page.png
diff --git a/.doc_for_ai/TASMOTA_WEBUI_CODING_GUIDE.md b/.doc_for_ai/TASMOTA_WEBUI_CODING_GUIDE.md
new file mode 100644
index 000000000..943cb047d
--- /dev/null
+++ b/.doc_for_ai/TASMOTA_WEBUI_CODING_GUIDE.md
@@ -0,0 +1,947 @@
+# Tasmota WebUI Coding Guide
+
+This guide provides comprehensive instructions for coding WebUI interfaces for Tasmota, based on analysis of the actual Tasmota web interface source code and screenshots.
+
+## Overview
+
+Tasmota's WebUI is a lightweight, embedded web interface designed for ESP8266/ESP32 microcontrollers with severe memory constraints. The interface follows a minimalist design philosophy while providing comprehensive device control and configuration capabilities.
+
+### Visual Design Analysis
+
+Based on the actual Tasmota WebUI screenshots, the interface features:
+
+1. **Main Control Page**:
+ - Large status display showing device state ("OFF")
+ - Color control sliders with visual gradients (hue, saturation, brightness)
+ - Toggle buttons for device control
+ - Clean button layout with consistent spacing
+
+2. **Configuration Pages**:
+ - Nested fieldsets for logical grouping
+ - Form elements with proper labels and placeholders
+ - Consistent button styling with color coding (blue for navigation, green for save, red for dangerous actions)
+ - Mobile-optimized layout with full-width buttons
+
+3. **Navigation Structure**:
+ - Hierarchical menu system
+ - Clear visual separation between sections
+ - Consistent header with device name and Tasmota branding
+
+## Core Design Principles
+
+### 1. Memory Efficiency
+- Minimal HTML/CSS/JavaScript footprint
+- Inline styles and scripts to reduce HTTP requests
+- Compressed and minified code
+- CSS variables for theming without duplication
+
+### 2. Responsive Design
+- Mobile-first approach with `viewport` meta tag
+- Flexible layouts that work on small screens
+- Touch-friendly button sizes and spacing
+- Minimal external dependencies
+
+### 3. Dark Theme by Default
+- Professional dark color scheme
+- High contrast for readability
+- Consistent color variables throughout
+
+### 4. Progressive Enhancement
+- Core functionality works without JavaScript
+- JavaScript enhances user experience
+- Graceful degradation for older browsers
+
+## HTML Structure Pattern
+
+### Basic Page Template
+
+```html
+
+
+
+
+
+
+ Tasmota Configuration
+
+
+
+
+
+
+
+
+
+```
+
+### Key HTML Structure Elements
+
+1. **Container Div**: Main wrapper with consistent styling
+2. **Header Section**: Device name and page title
+3. **Content Area**: Forms, buttons, and configuration options
+4. **Footer**: Version information and links
+
+## CSS Design System
+
+### Color Variables
+
+Tasmota uses CSS custom properties for consistent theming:
+
+```css
+:root {
+ --c_bg: #252525; /* Background color */
+ --c_frm: #4f4f4f; /* Form/fieldset background */
+ --c_ttl: #eaeaea; /* Title text color */
+ --c_txt: #eaeaea; /* Regular text color */
+ --c_txtwrn: #ff5661; /* Warning text color */
+ --c_txtscc: #008000; /* Success text color */
+ --c_btn: #1fa3ec; /* Primary button color */
+ --c_btnoff: #08405e; /* Disabled button color */
+ --c_btntxt: #faffff; /* Button text color */
+ --c_btnhvr: #0e70a4; /* Button hover color */
+ --c_btnrst: #d43535; /* Reset/danger button color */
+ --c_btnrsthvr: #931f1f; /* Reset button hover */
+ --c_btnsv: #47c266; /* Save button color */
+ --c_btnsvhvr: #5aaf6f; /* Save button hover */
+ --c_in: #dddddd; /* Input background */
+ --c_intxt: #000000; /* Input text color */
+ --c_csl: #1f1f1f; /* Console background */
+ --c_csltxt: #65c115; /* Console text color */
+ --c_tab: #999999; /* Tab color */
+ --c_tabtxt: #faffff; /* Tab text color */
+}
+```
+
+### Typography and Layout
+
+```css
+body {
+ text-align: center;
+ font-family: verdana, sans-serif;
+ background: var(--c_bg);
+}
+
+div, fieldset, input, select {
+ padding: 5px;
+ font-size: 1em;
+}
+
+fieldset {
+ background: var(--c_frm);
+}
+
+p {
+ margin: 0.5em 0;
+}
+```
+
+### Input Styling
+
+```css
+input {
+ width: 100%;
+ box-sizing: border-box;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ background: var(--c_in);
+ color: var(--c_intxt);
+}
+
+input[type=checkbox], input[type=radio] {
+ width: 1em;
+ margin-right: 6px;
+ vertical-align: -1px;
+}
+
+input[type=range] {
+ width: 99%;
+}
+
+select {
+ width: 100%;
+ background: var(--c_in);
+ color: var(--c_intxt);
+}
+```
+
+### Button System
+
+```css
+button {
+ border: 0;
+ border-radius: 0.3rem;
+ background: var(--c_btn);
+ color: var(--c_btntxt);
+ line-height: 2.4rem;
+ font-size: 1.2rem;
+ width: 100%;
+ -webkit-transition-duration: 0.4s;
+ transition-duration: 0.4s;
+ cursor: pointer;
+}
+
+button:hover {
+ background: var(--c_btnhvr);
+}
+
+.bred {
+ background: var(--c_btnrst);
+}
+
+.bred:hover {
+ background: var(--c_btnrsthvr);
+}
+
+.bgrn {
+ background: var(--c_btnsv);
+}
+
+.bgrn:hover {
+ background: var(--c_btnsvhvr);
+}
+```
+
+## JavaScript Patterns
+
+### Core Utility Functions
+
+```javascript
+// Element selection shortcuts
+var eb = s => document.getElementById(s);
+var qs = s => document.querySelector(s);
+
+// Password visibility toggle
+var sp = i => eb(i).type = (eb(i).type === 'text' ? 'password' : 'text');
+
+// Window load event handler
+var wl = f => window.addEventListener('load', f);
+
+// Auto-assign names to form elements
+function jd() {
+ var t = 0, i = document.querySelectorAll('input,button,textarea,select');
+ while (i.length >= t) {
+ if (i[t]) {
+ i[t]['name'] = (i[t].hasAttribute('id') && (!i[t].hasAttribute('name')))
+ ? i[t]['id'] : i[t]['name'];
+ }
+ t++;
+ }
+}
+
+// Show/hide elements with class 'hf'
+function sf(s) {
+ var t = 0, i = document.querySelectorAll('.hf');
+ while (i.length >= t) {
+ if (i[t]) {
+ i[t].style.display = s ? 'block' : 'none';
+ }
+ t++;
+ }
+}
+
+wl(jd); // Auto-assign names on load
+```
+
+### AJAX Communication
+
+```javascript
+var x = null, lt, to, tp, pc = '';
+
+// Load data with AJAX
+function la(p) {
+ a = p || '';
+ clearTimeout(ft);
+ clearTimeout(lt);
+ if (x != null) { x.abort(); }
+
+ x = new XMLHttpRequest();
+ x.onreadystatechange = () => {
+ if (x.readyState == 4 && x.status == 200) {
+ var s = x.responseText
+ .replace(/{t}/g, "")
+ .replace(/{s}/g, "")
+ .replace(/{m}/g, " ")
+ .replace(/{e}/g, " ");
+ eb('l1').innerHTML = s;
+ clearTimeout(ft);
+ clearTimeout(lt);
+ lt = setTimeout(la, 400); // Auto-refresh every 400ms
+ }
+ };
+ x.open('GET', '.?m=1' + a, true);
+ x.send();
+ ft = setTimeout(la, 2e4); // Fallback timeout 20 seconds
+}
+
+// Control function for sliders and buttons
+function lc(v, i, p) {
+ if (eb('s')) {
+ if (v == 'h' || v == 'd') {
+ var sl = eb('sl4').value;
+ eb('s').style.background = 'linear-gradient(to right,rgb(' + sl + '%,' + sl + '%,' + sl + '%),hsl(' + eb('sl2').value + ',100%,50%))';
+ }
+ }
+ la('&' + v + i + '=' + p);
+}
+```
+
+### Form Handling
+
+```javascript
+// Submit form with UI feedback
+function su(t) {
+ eb('f3').style.display = 'none';
+ eb('f2').style.display = 'block';
+ t.form.submit();
+}
+
+// File upload with validation
+function upl(t) {
+ var sl = t.form['u2'].files[0].slice(0, 1);
+ var rd = new FileReader();
+ rd.onload = () => {
+ var bb = new Uint8Array(rd.result);
+ if (bb.length == 1 && bb[0] == 0xE9) {
+ fct(t); // Factory reset check
+ } else {
+ t.form.submit();
+ }
+ };
+ rd.readAsArrayBuffer(sl);
+ return false;
+}
+
+// Factory reset confirmation
+function fct(t) {
+ var x = new XMLHttpRequest();
+ x.open('GET', '/u4?u4=fct&api=', true);
+ x.onreadystatechange = () => {
+ if (x.readyState == 4 && x.status == 200) {
+ var s = x.responseText;
+ if (s == 'false') setTimeout(() => { fct(t); }, 6000);
+ if (s == 'true') setTimeout(() => { su(t); }, 1000);
+ } else if (x.readyState == 4 && x.status == 0) {
+ setTimeout(() => { fct(t); }, 2000);
+ }
+ };
+ x.send();
+}
+```
+
+## Page Layout Patterns
+
+### Configuration Menu Layout
+
+Based on the Tasmota configuration menu, here's the standard layout pattern:
+
+```html
+
+
+
+ To use Tasmota, please enable JavaScript
+
ESP32-DevKit
+ Tasmota
+
+
+
+
+
Configuration
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+### Configuration Form Layout
+
+For configuration pages with forms:
+
+```html
+
+ Other parameters
+
+
+```
+
+### Main Page with Controls
+
+The main control page features a prominent status display and interactive controls. Based on the screenshot analysis:
+
+```html
+
+
+
+
+
+
+
+
+
+
+
+ OFF
+
+
+
+
+```
+
+## Advanced UI Components
+
+### Status Display
+
+The main page features a large, prominent status display:
+
+```css
+.status-display {
+ text-align: center;
+ font-size: 4em;
+ font-weight: bold;
+ color: var(--c_txt);
+ padding: 20px;
+ margin: 10px 0;
+}
+```
+
+```html
+OFF
+```
+
+### Color Control Sliders
+
+The interface includes sophisticated color control with visual feedback:
+
+```html
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+### Button Layout Patterns
+
+Based on the screenshots, buttons follow specific layout patterns:
+
+```css
+/* Full-width buttons with consistent spacing */
+.btn-full {
+ width: 100%;
+ margin: 2px 0;
+ padding: 12px;
+ border-radius: 4px;
+}
+
+/* Button color variations */
+.btn-primary { background: var(--c_btn); } /* Blue - Navigation */
+.btn-success { background: var(--c_btnsv); } /* Green - Save */
+.btn-danger { background: var(--c_btnrst); } /* Red - Reset/Restart */
+.btn-secondary { background: var(--c_btnoff); } /* Gray - Disabled */
+```
+
+## Advanced UI Components
+
+### Range Sliders with Visual Feedback
+
+```css
+.r {
+ border-radius: 0.3em;
+ padding: 2px;
+ margin: 4px 2px;
+}
+```
+
+### Textarea for Console/Logs
+
+```css
+textarea {
+ resize: vertical;
+ width: 98%;
+ height: 318px;
+ padding: 5px;
+ overflow: auto;
+ background: var(--c_bg);
+ color: var(--c_csltxt);
+}
+```
+
+### Hidden Elements
+
+```css
+.hf {
+ display: none;
+}
+```
+
+### Utility Classes
+
+```css
+.p {
+ float: left;
+ text-align: left;
+}
+
+.q {
+ float: right;
+ text-align: right;
+}
+
+a {
+ color: var(--c_btn);
+ text-decoration: none;
+}
+
+td {
+ padding: 0px;
+}
+```
+
+## Best Practices
+
+### 1. Memory Optimization
+- Use inline styles for unique elements
+- Minimize JavaScript object creation
+- Reuse DOM elements where possible
+- Use CSS variables for consistent theming
+
+### 2. User Experience
+- Provide immediate visual feedback for actions
+- Use consistent button sizing and spacing
+- Implement proper form validation
+- Show loading states during operations
+
+### 3. Accessibility
+- Use semantic HTML elements
+- Provide proper labels for form controls
+- Ensure sufficient color contrast
+- Support keyboard navigation
+
+### 4. Performance
+- Minimize HTTP requests
+- Use efficient DOM manipulation
+- Implement proper error handling
+- Cache frequently accessed elements
+
+### 5. Responsive Design
+- Use flexible layouts
+- Test on various screen sizes
+- Ensure touch-friendly interface
+- Provide appropriate viewport settings
+
+## Integration with Tasmota Backend
+
+### Command Execution Pattern
+
+```javascript
+// Execute Tasmota command via AJAX
+function executeCommand(cmd, params) {
+ var url = '/?m=1&' + cmd;
+ if (params) url += '=' + encodeURIComponent(params);
+
+ var xhr = new XMLHttpRequest();
+ xhr.open('GET', url, true);
+ xhr.onreadystatechange = function() {
+ if (xhr.readyState === 4 && xhr.status === 200) {
+ // Handle response
+ updateUI(xhr.responseText);
+ }
+ };
+ xhr.send();
+}
+```
+
+### Status Updates
+
+```javascript
+// Auto-refresh status every 400ms
+function refreshStatus() {
+ la(); // Calls the main load function
+}
+
+setInterval(refreshStatus, 400);
+```
+
+### Form Submission
+
+```javascript
+// Handle form submission with confirmation
+function submitForm(formId, confirmMsg) {
+ if (confirmMsg && !confirm(confirmMsg)) {
+ return false;
+ }
+ document.getElementById(formId).submit();
+ return true;
+}
+```
+
+## Visual Design Specifications
+
+### Layout Dimensions
+
+Based on the screenshots, the interface uses these key dimensions:
+
+- **Minimum width**: 340px (as specified in CSS)
+- **Button height**: Approximately 48px for touch-friendly interaction
+- **Spacing**: 2-4px between elements, larger gaps between sections
+- **Border radius**: 4px for buttons and form elements
+
+### Typography Hierarchy
+
+```css
+/* Device name header */
+h3 {
+ font-size: 1.2em;
+ color: var(--c_ttl);
+ margin: 10px 0;
+}
+
+/* Main title */
+h2 {
+ font-size: 1.8em;
+ color: var(--c_ttl);
+ margin: 5px 0;
+}
+
+/* Status display */
+.status {
+ font-size: 4em;
+ font-weight: bold;
+ text-align: center;
+}
+
+/* Section headers */
+legend {
+ font-weight: bold;
+ padding: 0 10px;
+}
+```
+
+### Form Element Styling
+
+The screenshots show consistent form styling:
+
+```css
+/* Text inputs with proper spacing */
+input[type="text"], input[type="password"] {
+ padding: 8px;
+ margin: 4px 0;
+ border: 1px solid #666;
+ border-radius: 4px;
+ background: var(--c_in);
+ color: var(--c_intxt);
+}
+
+/* Checkboxes with labels */
+input[type="checkbox"] {
+ margin-right: 8px;
+ transform: scale(1.2);
+}
+
+/* Radio buttons in groups */
+input[type="radio"] {
+ margin-right: 8px;
+ margin-left: 0;
+}
+```
+
+### Matter Protocol Integration
+
+The screenshots show Matter protocol support with a distinctive icon:
+
+```html
+
+
+
+
+ Matter
+
+```
+
+## Common UI Patterns
+
+### 1. Toggle Buttons
+```html
+Toggle 1
+
+```
+
+### 2. Configuration Sections
+```html
+
+ Section Title
+
+
+```
+
+### 3. Input with Label
+```html
+Setting Name (default)
+
+
+```
+
+### 4. Checkbox with Label
+```html
+
+
+ Option Description
+
+```
+
+### 5. Radio Button Group
+```html
+
+ Emulation
+
+
+
+ None
+
+
+
+
+ Hue Bridge multi device
+
+
+
+```
+
+### 6. Password Field with Toggle
+```html
+
+ Web Admin Password
+
+
+
+
+```
+
+### 7. Template Configuration
+```html
+
+ Template
+
+
+
+
+
+
+ Activate
+
+
+
+```
+
+### 8. Status Display with Dynamic Updates
+```html
+
+ OFF
+
+
+
+```
+
+### 9. Color Picker Sliders
+```html
+
+
+```
+
+## Mobile Optimization
+
+Based on the screenshots, the interface is optimized for mobile devices:
+
+### Touch-Friendly Design
+- **Button height**: Minimum 44px for easy touch interaction
+- **Slider handles**: Large enough for finger control
+- **Spacing**: Adequate gaps between interactive elements
+- **Text size**: Readable on small screens
+
+### Responsive Layout
+```css
+@media (max-width: 480px) {
+ .container {
+ min-width: 320px;
+ padding: 10px;
+ }
+
+ button {
+ min-height: 44px;
+ font-size: 16px; /* Prevents zoom on iOS */
+ }
+
+ input[type="range"] {
+ height: 44px;
+ }
+}
+```
+
+This guide provides the foundation for creating Tasmota-compatible WebUI interfaces that are efficient, user-friendly, and consistent with the existing design system. The visual specifications are based on actual Tasmota WebUI screenshots showing the main control page, configuration forms, and navigation menus.
\ No newline at end of file
diff --git a/.doc_for_ai/Tasmota configuration menu.png b/.doc_for_ai/Tasmota configuration menu.png
new file mode 100644
index 0000000000000000000000000000000000000000..c2bd7674e53d54d8952f328e21eedacd768f94a6
GIT binary patch
literal 75884
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