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>
80 lines
3.2 KiB
HTML
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>
|