ijsbreker/editor.html
Frank Meeuwsen 7b181a5f12 feat: Sessie IJsbreker - interactief workshop spel
Browser-based interactief spel voor workshops waarbij deelnemers fysiek
kiezen tussen twee stellingen die op een beamer worden getoond.

Features:
- Presentatie modus met visuele timer rondom scherm
- Timer animatie loopt synchroon rond in opgegeven tijd
- Geluidssignaal bij einde timer
- Overlay met stellingen na timer (grayed out)
- Keyboard shortcuts (spatiebalk voor volgende)
- Direct eindscherm bij laatste stelling

- Web-based stellingen editor
- Flask backend voor config management
- Real-time CRUD operaties op stellingen
- Kleurenpicker voor achtergronden
- Validatie en filtering van lege stellingen
- Volledig offline werkend

Tech stack:
- Frontend: Pure HTML/CSS/JavaScript
- Backend: Python Flask + flask-cors
- Config driven via JSON

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-03 16:23:11 +01:00

80 lines
3.2 KiB
HTML

<!DOCTYPE html>
<html lang="nl">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Stellingen Editor - IJsbreker</title>
<link rel="stylesheet" href="editor.css">
</head>
<body>
<div class="container">
<header>
<h1>🎯 Sessie IJsbreker - Stellingen Editor</h1>
<div class="header-actions">
<a href="/" class="btn btn-secondary">← Terug naar Spel</a>
</div>
</header>
<main>
<!-- Basis instellingen -->
<section class="settings-section">
<h2>⚙️ Instellingen</h2>
<div class="settings-grid">
<div class="setting-item">
<label for="timer">Timer (seconden):</label>
<input type="number" id="timer" min="5" max="300" value="30">
</div>
<div class="setting-item">
<label for="fontSize">Font grootte:</label>
<input type="text" id="fontSize" value="3rem" placeholder="3rem">
</div>
<div class="setting-item">
<label for="buttonText">Knop tekst:</label>
<input type="text" id="buttonText" value="Volgende Stelling">
</div>
<div class="setting-item">
<label for="finishText">Eind tekst:</label>
<input type="text" id="finishText" value="Sessie Afgelopen!">
</div>
<div class="setting-item">
<label for="colorLeft">Kleur links:</label>
<input type="color" id="colorLeft" value="#3B82F6">
<input type="text" id="colorLeftText" value="#3B82F6">
</div>
<div class="setting-item">
<label for="colorRight">Kleur rechts:</label>
<input type="color" id="colorRight" value="#EF4444">
<input type="text" id="colorRightText" value="#EF4444">
</div>
</div>
</section>
<!-- Stellingen -->
<section class="statements-section">
<div class="section-header">
<h2>📝 Stellingen</h2>
<span id="statementCount" class="count-badge">0 stellingen</span>
</div>
<div id="statementsList" class="statements-list">
<!-- Stellingen worden hier dynamisch toegevoegd -->
</div>
<button id="addStatement" class="btn btn-add">
+ Nieuwe Stelling
</button>
</section>
<!-- Opslaan -->
<section class="actions-section">
<button id="saveConfig" class="btn btn-primary">
💾 Opslaan naar Config
</button>
<div id="statusMessage" class="status-message"></div>
</section>
</main>
</div>
<script src="editor.js"></script>
</body>
</html>