diff --git a/app/static/style.css b/app/static/style.css index 1db5be1..378a25f 100644 --- a/app/static/style.css +++ b/app/static/style.css @@ -1,209 +1,165 @@ :root { --primary: #007bff; + --accent: #ff9800; --success: #28a745; --danger: #dc3545; - --warning: #ffc107; - --secondary: #6c757d; --bg: #f4f4f9; - --card-bg: #ffffff; - --text: #333; } body { - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; - background-color: var(--bg); - color: var(--text); + font-family: sans-serif; + background: var(--bg); margin: 0; display: flex; flex-direction: column; - min-height: 100vh; + height: 100vh; } .container { flex: 1; - display: flex; - flex-direction: column; - align-items: center; - padding: 20px; max-width: 600px; margin: 0 auto; + padding: 20px; width: 100%; box-sizing: border-box; -} - -h1 { - font-size: 1.8rem; - margin-bottom: 30px; - text-align: center; - color: #444; -} - -.card { - background: var(--card-bg); - padding: 25px; - border-radius: 12px; - box-shadow: 0 4px 12px rgba(0,0,0,0.08); - width: 100%; - margin-bottom: 20px; - box-sizing: border-box; - text-align: center; -} - -.label { - font-size: 0.9rem; - color: #888; - margin-bottom: 5px; - text-transform: uppercase; - letter-spacing: 1px; -} - -.question { - font-size: 1.8rem; - font-weight: bold; - margin-bottom: 25px; - color: #222; -} - -input[type="text"] { - width: 100%; - padding: 14px; - font-size: 1.1rem; - border: 2px solid #ddd; - border-radius: 8px; - outline: none; - transition: border-color 0.2s; - box-sizing: border-box; - text-align: center; - margin-bottom: 10px; -} - -input[type="text"]:focus { - border-color: var(--primary); -} - -/* BUTTONS */ -.action-btn, .mode-select button { - width: 100%; - padding: 16px; - font-size: 1.1rem; - border: none; - border-radius: 8px; - cursor: pointer; - background: var(--success); - color: white; - font-weight: bold; - transition: background 0.2s, transform 0.1s; - margin-bottom: 15px; /* Abstand nach unten */ - display: block; /* Erzwingt neue Zeile */ -} - -.action-btn:active, .mode-select button:active { transform: scale(0.98); } -.action-btn.primary { background: var(--primary); } -.action-btn.secondary { background: var(--secondary); } -.action-btn.danger { background: var(--danger); } - -/* Modus Auswahl Container - Buttons untereinander */ -.mode-select { - width: 100%; display: flex; flex-direction: column; - gap: 0; /* Abstand wird über margin-bottom geregelt */ } -/* Normale Buttons in der Modus-Auswahl */ -.mode-select button { - background: white; +h1 { text-align: center; color: #333; } + +/* SETUP SCREEN */ +.section-title { + font-weight: bold; + margin: 20px 0 10px; color: #555; - border: 2px solid #ddd; - text-align: center; + text-transform: uppercase; + font-size: 0.9rem; } -/* Aktiver Button */ -.mode-select button.active { +.button-group { + display: flex; + flex-direction: column; + gap: 10px; +} + +button { + padding: 15px; + border: 2px solid #ddd; + border-radius: 8px; + background: white; + font-size: 1rem; + cursor: pointer; + font-weight: 600; + width: 100%; + transition: all 0.2s; +} + +button:hover { background: #f0f0f0; } + +/* Active States */ +button.active { border-color: var(--primary); background: #e3f2fd; color: var(--primary); } -/* Spezialbutton für Verben */ -#btn-irregular { - border-color: #ff9800 !important; - color: #e65100 !important; -} -#btn-irregular.active { - background: #fff3e0 !important; +.special-btn.active { + border-color: var(--accent); + background: #fff3e0; + color: #e65100; } -/* --- OVERLAY --- */ -.overlay { - display: none; - position: fixed; - top: 0; left: 0; - width: 100%; height: 100%; - background: rgba(0,0,0,0.5); - z-index: 1000; - justify-content: center; - align-items: center; - padding: 20px; - box-sizing: border-box; +/* Action Buttons */ +.action-btn { + border: none; + color: white; + margin-top: 10px; } +.primary { background: var(--primary); } +.secondary { background: #6c757d; } +.danger { background: var(--danger); } +button:disabled { opacity: 0.5; cursor: not-allowed; } -.overlay-content { +/* QUIZ CARD */ +.card { background: white; padding: 20px; border-radius: 12px; + box-shadow: 0 4px 10px rgba(0,0,0,0.1); + text-align: center; + margin-bottom: 20px; +} + +.question { font-size: 1.8rem; font-weight: bold; margin: 15px 0; } +.hint { color: #888; font-style: italic; margin-bottom: 15px; } + +input { + width: 100%; + padding: 12px; + margin-bottom: 10px; + border: 2px solid #ddd; + border-radius: 6px; + font-size: 1.1rem; + box-sizing: border-box; + text-align: center; +} +input:focus { border-color: var(--primary); outline: none; } + +#verb-inputs { + display: flex; + flex-direction: column; + gap: 5px; +} + +/* FEEDBACK */ +.feedback { font-weight: bold; min-height: 20px; } +.correct { color: var(--success); } +.wrong { color: var(--danger); } +.typo { color: var(--accent); } + +/* OVERLAY */ +.overlay { + display: none; + position: fixed; + top:0; left:0; right:0; bottom:0; + background: rgba(0,0,0,0.5); + z-index: 99; + align-items: center; + justify-content: center; + padding: 20px; +} +.overlay-content { + background: white; + padding: 20px; + border-radius: 10px; width: 100%; max-width: 400px; max-height: 80vh; display: flex; flex-direction: column; } - .page-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(60px, 1fr)); - gap: 10px; - margin: 20px 0; + gap: 8px; overflow-y: auto; - flex: 1; + margin: 15px 0; } - -.page-item input[type="checkbox"] { display: none; } /* Checkbox verstecken, Label stylen */ - .page-item label { display: block; - padding: 12px; - background: #f0f0f0; - border-radius: 6px; + padding: 10px; + background: #eee; text-align: center; - font-weight: bold; - color: #555; + border-radius: 5px; cursor: pointer; - border: 2px solid transparent; } - +.page-item input { display: none; } .page-item input:checked + label { - background: #e3f2fd; - border-color: var(--primary); - color: var(--primary); + background: var(--primary); + color: white; } -/* FEEDBACK MESSAGES */ -#feedback-msg { margin-top: 15px; font-weight: bold; text-align: center; } -.msg-correct { color: var(--success); } -.msg-wrong { color: var(--danger); } -.msg-typo { color: var(--warning); } - -/* Progress Bar */ -.progress-container { - background: #fff; - border-top: 1px solid #eee; - padding: 15px 20px; - width: 100%; - box-sizing: border-box; - position: sticky; - bottom: 0; -} -.progress-text { text-align: center; margin-bottom: 8px; font-size: 0.9rem; color: #666; } -.progress-bar-bg { width: 100%; height: 8px; background: #eee; border-radius: 4px; overflow: hidden; } -.progress-bar-fill { height: 100%; width: 0%; background: var(--success); transition: width 0.3s; } \ No newline at end of file +/* PROGRESS */ +.progress-bar-bg { height: 6px; background: #ddd; width: 100%; } +.progress-bar-fill { height: 100%; background: var(--success); width: 0%; transition: width 0.3s; } \ No newline at end of file