index.html
index.html
files/schema.json
<!DOCTYPE html> <html lang="fr"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Heure Telephone</title> <script src="libs/fullscreen.js"></script> <style> * { margin: 0; padding: 0; box-sizing: border-box; } body { width: 100vw; height: 100vh; background: linear-gradient(135deg, #1a1a2e 0%, #16213e 50%, #0f3460 100%); display: flex; justify-content: center; align-items: center; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif; overflow: hidden; } .phone-screen { width: 100%; height: 100%; display: flex; flex-direction: column; justify-content: center; align-items: center; } .time-display { font-size: 20vw; font-weight: 200; color: #ffffff; letter-spacing: 0.05em; text-shadow: 0 0 30px rgba(255, 255, 255, 0.3); } .status-bar { position: absolute; top: 20px; left: 0; right: 0; display: flex; justify-content: space-between; padding: 0 30px; color: rgba(255, 255, 255, 0.7); font-size: 14px; } .battery { display: flex; align-items: center; gap: 5px; } .battery-icon { width: 25px; height: 12px; border: 1px solid rgba(255, 255, 255, 0.7); border-radius: 2px; position: relative; } .battery-icon::after { content: ''; position: absolute; right: -4px; top: 50%; transform: translateY(-50%); width: 2px; height: 6px; background: rgba(255, 255, 255, 0.7); border-radius: 0 1px 1px 0; } .battery-level { height: 100%; width: 80%; background: rgba(255, 255, 255, 0.7); border-radius: 1px; } .unlock-container { position: absolute; bottom: 80px; left: 50%; transform: translateX(-50%); display: flex; flex-direction: column; align-items: center; gap: 15px; } .unlock-button { width: 60px; height: 60px; border-radius: 50%; background: rgba(255, 255, 255, 0.15); border: 2px solid rgba(255, 255, 255, 0.4); display: flex; justify-content: center; align-items: center; cursor: pointer; transition: all 0.3s ease; backdrop-filter: blur(10px); } .unlock-button:hover { background: rgba(255, 255, 255, 0.25); transform: scale(1.05); } .unlock-button:active { transform: scale(0.95); } .lock-icon { width: 24px; height: 24px; fill: none; stroke: rgba(255, 255, 255, 0.9); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; } .unlock-text { color: rgba(255, 255, 255, 0.6); font-size: 14px; font-weight: 300; letter-spacing: 0.1em; animation: pulse 2s ease-in-out infinite; } @keyframes pulse { 0%, 100% { opacity: 0.6; } 50% { opacity: 1; } } .unlocked .unlock-container { opacity: 0; transform: translateX(-50%) translateY(20px); transition: all 0.5s ease; pointer-events: none; } .unlocked .phone-screen { animation: fadeUp 0.5s ease forwards; } @keyframes fadeUp { from { transform: translateY(0); } to { transform: translateY(-30px); } } </style> </head> <body> <script src="data.js"></script> <div class="status-bar"> <span class="carrier">Carrier</span> <div class="battery"> <span>100%</span> <div class="battery-icon"> <div class="battery-level"></div> </div> </div> </div> <div class="phone-screen"> <div class="time-display" id="time"></div> </div> <div class="unlock-container"> <div class="unlock-button" id="unlockBtn"> <svg class="lock-icon" viewBox="0 0 24 24"> <rect x="3" y="11" width="18" height="11" rx="2" ry="2"></rect> <path d="M7 11V7a5 5 0 0 1 10 0v4"></path> </svg> </div> <span class="unlock-text">Appuyer pour déverrouiller</span> </div> <script> document.getElementById('time').textContent = cc_data.time || '00:00'; document.getElementById('unlockBtn').addEventListener('click', function() { document.body.classList.add('unlocked'); // Change lock icon to unlocked this.innerHTML = ` <svg class="lock-icon" viewBox="0 0 24 24"> <rect x="3" y="11" width="18" height="11" rx="2" ry="2"></rect> <path d="M7 11V7a5 5 0 0 1 9.9-1"></path> </svg> `; }); </script> </body> </html>
{ "type": "object", "title": "Configuration Heure Telephone", "properties": { "time": { "type": "string", "title": "Heure affichée", "description": "Format HH:MM (ex: 14:30)", "default": "14:30" } } }

Glisser-déposer des fichiers ou dossiers ici

ou utiliser les boutons ci-dessous

Nom Taille Statut Actions