From 8de45e2873e282e58a21d839dd0b1105d99773a1 Mon Sep 17 00:00:00 2001 From: sascha Date: Wed, 28 Jan 2026 15:48:23 +0000 Subject: [PATCH] app/static/style.css aktualisiert --- app/static/style.css | 130 ++++++++++++++++++++++++------------------- 1 file changed, 73 insertions(+), 57 deletions(-) diff --git a/app/static/style.css b/app/static/style.css index 1b7008d..207f490 100644 --- a/app/static/style.css +++ b/app/static/style.css @@ -8,6 +8,7 @@ --card-bg: #ffffff; --text: #333; } + body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; background-color: var(--bg); @@ -17,6 +18,7 @@ body { flex-direction: column; min-height: 100vh; } + .container { flex: 1; display: flex; @@ -28,107 +30,112 @@ body { width: 100%; box-sizing: border-box; } + h1 { font-size: 1.8rem; margin-bottom: 20px; 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%; - text-align: center; - box-sizing: border-box; margin-bottom: 20px; + box-sizing: border-box; } + .label { font-size: 0.9rem; - color: #666; + color: #888; + margin-bottom: 5px; text-transform: uppercase; letter-spacing: 1px; - margin-bottom: 10px; } + .question { font-size: 1.6rem; - font-weight: 700; - margin: 15px 0 25px 0; - word-wrap: break-word; + font-weight: bold; + margin-bottom: 20px; + color: #222; } + input[type="text"] { width: 100%; - padding: 12px 15px; + padding: 12px; font-size: 1.1rem; border: 2px solid #ddd; border-radius: 8px; - box-sizing: border-box; outline: none; - transition: border-color 0.3s; - -webkit-appearance: none; + transition: border-color 0.2s; + box-sizing: border-box; } + input[type="text"]:focus { border-color: var(--primary); } -button { + +.action-btn { width: 100%; padding: 14px; + font-size: 1rem; border: none; border-radius: 8px; cursor: pointer; - font-size: 1rem; - font-weight: 600; + background: var(--success); + color: white; + font-weight: bold; + transition: background 0.2s, transform 0.1s; margin-bottom: 10px; - transition: transform 0.1s, opacity 0.2s; - -webkit-tap-highlight-color: transparent; -} -button:active { - transform: scale(0.98); } + +.action-btn:active { transform: scale(0.98); } +.action-btn.primary { background: var(--primary); } +.action-btn.secondary { background: var(--secondary); } +.action-btn.danger { background: var(--danger); } + .mode-select { - display: grid; - grid-template-columns: 1fr 1fr 1fr; - gap: 8px; + display: flex; + flex-direction: column; /* Buttons untereinander auf Mobile */ + gap: 10px; margin-bottom: 20px; width: 100%; } + .mode-select button { - font-size: 0.9rem; - padding: 10px 5px; - background: #e0e0e0; + padding: 10px; + border: 2px solid #ddd; + background: white; + border-radius: 8px; + cursor: pointer; + font-weight: 600; color: #555; - margin-bottom: 0; + flex: 1; } + .mode-select button.active { - background: var(--primary); - color: white; + border-color: var(--primary); + background: #e3f2fd; + color: var(--primary); } -.action-btn.primary { background-color: var(--primary); color: white; } -.action-btn.secondary { background-color: var(--secondary); color: white; } -.action-btn.danger { background-color: var(--danger); color: white; } -.action-btn { margin-top: 5px; } -#feedback-msg { - margin-top: 15px; - min-height: 1.2em; - font-weight: 500; - line-height: 1.4; -} -.msg-correct { color: var(--success); } -.msg-wrong { color: var(--danger); } -.msg-typo { color: #d39e00; } + +/* --- OVERLAY (WICHTIG!) --- */ .overlay { - display: none; + display: none; /* Standardmäßig unsichtbar */ position: fixed; top: 0; left: 0; width: 100%; height: 100%; - background: rgba(0,0,0,0.6); + background: rgba(0,0,0,0.5); z-index: 1000; justify-content: center; align-items: center; padding: 20px; box-sizing: border-box; } + .overlay-content { background: white; padding: 20px; @@ -139,6 +146,7 @@ button:active { display: flex; flex-direction: column; } + .page-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(70px, 1fr)); @@ -147,7 +155,9 @@ button:active { overflow-y: auto; flex: 1; } + .page-item { position: relative; } + .page-item input[type="checkbox"] { position: absolute; opacity: 0; @@ -155,6 +165,7 @@ button:active { height: 100%; cursor: pointer; } + .page-item label { display: block; padding: 10px; @@ -166,11 +177,19 @@ button:active { border: 2px solid transparent; transition: all 0.2s; } + .page-item input:checked + label { background: #e3f2fd; border-color: var(--primary); color: var(--primary); } + +/* FEEDBACK MESSAGES */ +#feedback-msg { margin-top: 15px; font-weight: bold; } +.msg-correct { color: var(--success); } +.msg-wrong { color: var(--danger); } +.msg-typo { color: var(--warning); } + .progress-container { background: #fff; border-top: 1px solid #eee; @@ -180,28 +199,25 @@ button:active { position: sticky; bottom: 0; } + .progress-text { text-align: center; margin-bottom: 8px; font-size: 0.9rem; - font-weight: 600; - color: #555; + color: #666; } + .progress-bar-bg { - background: #e9ecef; - height: 12px; - border-radius: 6px; + width: 100%; + height: 8px; + background: #eee; + border-radius: 4px; overflow: hidden; } + .progress-bar-fill { height: 100%; width: 0%; - transition: width 0.4s ease, background-color 0.4s ease; -} -@media (max-width: 480px) { - h1 { font-size: 1.5rem; } - .card { padding: 20px; } - .question { font-size: 1.4rem; } - .mode-select { display: flex; flex-direction: column; } - .mode-select button { width: 100%; padding: 12px; } -} + background: var(--success); + transition: width 0.3s ease, background-color 0.3s; +} \ No newline at end of file