shared website header
Some checks failed
ESP-IDF Build / build (esp32c6, release-v5.4) (push) Failing after 7m45s
ESP-IDF Build / build (esp32c6, release-v5.5) (push) Failing after 4m52s
ESP-IDF Build / build (esp32s3, release-v5.4) (push) Failing after 4m35s
ESP-IDF Build / build (esp32s3, release-v5.5) (push) Failing after 4m58s

Signed-off-by: Peter Siegmund <developer@mars3142.org>
This commit is contained in:
2026-01-18 10:59:08 +01:00
parent 1c52f7d679
commit f7cedf24e8
6 changed files with 114 additions and 48 deletions

View File

@@ -114,18 +114,6 @@
updateConnectBtn(); updateConnectBtn();
}); });
// Toggle password visibility
function togglePassword() {
const input = document.getElementById('password');
const btn = document.getElementById('password-btn');
if (input.type === 'password') {
input.type = 'text';
btn.textContent = '🙈';
} else {
input.type = 'password';
btn.textContent = '👁️';
}
}
</script> </script>
</body> </body>

View File

@@ -1,29 +1,57 @@
@media (max-width: 600px) {
.header {
flex-direction: row;
align-items: flex-start;
text-align: left;
}
.header h1 {
flex: 1 1 100%;
text-align: center;
order: 2;
margin-top: 8px;
}
.header-controls {
order: 1;
flex: 1 1 auto;
justify-content: flex-start;
display: flex;
gap: 8px;
}
}
/* Captive Portal CSS - WiFi setup specific styles */ /* Captive Portal CSS - WiFi setup specific styles */
/* Base styles are in shared.css */ /* Base styles are in shared.css */
body { body {
padding: 16px; padding: 12px;
display: flex;
align-items: center;
justify-content: center;
} }
.container { .container {
max-width: 900px;
margin: 0 auto;
width: 100%; width: 100%;
max-width: 400px;
} }
/* Header */ /* Header */
.header { .header {
text-align: center; display: flex;
margin-bottom: 24px; justify-content: space-between;
align-items: center;
margin-bottom: 20px;
flex-wrap: wrap;
gap: 10px;
} }
.header h1 { .header h1 {
font-size: 1.4rem; font-size: 1.5rem;
margin-bottom: 8px; margin: 0;
} }
.header p { .header p {
color: var(--text-muted); color: var(--text-muted);
font-size: 0.9rem; font-size: 0.9rem;
@@ -163,27 +191,6 @@ select {
font-size: 1.1rem; font-size: 1.1rem;
} }
/* Password Toggle */
.password-toggle {
position: relative;
}
.password-toggle input {
padding-right: 50px;
}
.password-toggle button {
position: absolute;
right: 12px;
top: 50%;
transform: translateY(-50%);
background: none;
border: none;
color: var(--text-muted);
font-size: 1.2rem;
cursor: pointer;
padding: 4px;
}
/* Info Box */ /* Info Box */
.info-box { .info-box {

View File

@@ -20,10 +20,6 @@ body {
gap: 10px; gap: 10px;
} }
.header h1 {
font-size: 1.5rem;
margin: 0;
}
.form-group { .form-group {
margin-bottom: 12px; margin-bottom: 12px;

View File

@@ -1,3 +1,60 @@
/* Passwortfeld Toggle (zentral für alle Seiten) */
.password-toggle {
position: relative;
display: flex;
align-items: center;
gap: 0;
}
.password-toggle input {
padding-right: 50px;
flex: 1;
}
.password-toggle button {
position: absolute;
right: 12px;
top: 50%;
transform: translateY(-50%);
background: none;
border: none;
color: var(--text-muted);
font-size: 1.2rem;
cursor: pointer;
padding: 4px;
transition: color 0.2s;
}
.password-toggle button:active {
color: var(--accent);
}
/* Passwortfeld Toggle */
.password-toggle {
display: flex;
align-items: center;
gap: 6px;
}
.password-toggle input[type="password"],
.password-toggle input[type="text"] {
flex: 1;
}
.password-toggle button {
background: none;
border: none;
font-size: 1.2em;
cursor: pointer;
color: var(--text-muted);
padding: 0 6px;
transition: color 0.2s;
}
.password-toggle button:active {
color: var(--accent);
}
/* Shared CSS - Base styles for all pages */ /* Shared CSS - Base styles for all pages */
/* CSS Variables - Dark Mode (default) */ /* CSS Variables - Dark Mode (default) */

View File

@@ -162,8 +162,11 @@
<div class="form-group"> <div class="form-group">
<label for="password" data-i18n="wifi.password">WLAN Passwort</label> <label for="password" data-i18n="wifi.password">WLAN Passwort</label>
<div class="password-toggle">
<input type="password" id="password" data-i18n-placeholder="wifi.password.placeholder" <input type="password" id="password" data-i18n-placeholder="wifi.password.placeholder"
placeholder="Passwort eingeben" autocomplete="off"> placeholder="Passwort eingeben" autocomplete="off">
<button type="button" onclick="togglePassword()" id="password-btn">👁️</button>
</div>
</div> </div>
<div class="form-group"> <div class="form-group">

View File

@@ -1,3 +1,18 @@
/**
* Passwortfeld sichtbar/unsichtbar schalten (shared)
*/
function togglePassword() {
const input = document.getElementById('password');
const btn = document.getElementById('password-btn');
if (!input || !btn) return;
if (input.type === 'password') {
input.type = 'text';
btn.textContent = '🙈';
} else {
input.type = 'password';
btn.textContent = '👁️';
}
}
// Shared WiFi configuration functions // Shared WiFi configuration functions
// Used by both captive.html and index.html // Used by both captive.html and index.html