From a944f7dd5daff0a7179ee5d54f6e2b81d6e005f7 Mon Sep 17 00:00:00 2001 From: Nirodan Date: Thu, 22 Jan 2026 12:12:47 +0100 Subject: [PATCH] Restyle UI with modern glassy theme --- frontend/src/css/base.css | 49 +++++++++++++--- frontend/src/css/buttons.css | 45 +++++++++------ frontend/src/css/dark.css | 26 ++++++--- frontend/src/css/homeButtons.css | 18 +++--- frontend/src/css/index.css | 86 ++++++++++++---------------- frontend/src/css/light.css | 26 ++++++--- frontend/src/css/lightDarkToggle.css | 18 +++--- frontend/src/css/menu.css | 32 +---------- frontend/src/css/navBar.css | 55 ++++++++++++------ 9 files changed, 200 insertions(+), 155 deletions(-) diff --git a/frontend/src/css/base.css b/frontend/src/css/base.css index 24012c1..f2a42db 100644 --- a/frontend/src/css/base.css +++ b/frontend/src/css/base.css @@ -1,13 +1,48 @@ .main-content { - padding-top: 60px; /* Entspricht der Höhe deiner NavBar */ + max-width: 980px; + margin: 90px auto 60px; + padding: 28px 32px; + background: var(--surface); + border: 1px solid var(--border); + border-radius: var(--radius); + box-shadow: var(--shadow); + backdrop-filter: var(--nav-blur); + transition: background 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease; } -:root { - font-family: 'Arial', sans-serif; - transition: background 0.3s, color 0.3s; +h1, h2, h3 { + margin: 0 0 12px; + color: var(--text); + letter-spacing: -0.02em; } -body { - margin: 0; - padding: 0; +h2 { + font-size: 1.6rem; + font-weight: 700; +} + +p { + margin: 0 0 12px; + color: var(--muted); +} + +input, textarea { + width: 100%; + background: var(--input-bg); + color: var(--text); + border: 1px solid var(--input-border); + border-radius: 12px; + padding: 12px 14px; + font-size: 1rem; + transition: border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease; +} + +input:focus, textarea:focus { + outline: none; + border-color: var(--accent); + box-shadow: 0 0 0 4px var(--focus-ring); +} + +input::placeholder, textarea::placeholder { + color: var(--muted); } diff --git a/frontend/src/css/buttons.css b/frontend/src/css/buttons.css index aabed9c..5320c24 100644 --- a/frontend/src/css/buttons.css +++ b/frontend/src/css/buttons.css @@ -1,24 +1,31 @@ button { - padding: 10px 20px; - border: none; - border-radius: 5px; - margin: 5px; + padding: 12px 18px; + border-radius: 14px; + border: 1px solid transparent; + margin: 6px 4px; cursor: pointer; - font-weight: bold; -} - -body:not(.dark-mode) button { - background-color: #f0f0f0; - color: #333; - border: 1px solid #ccc; -} - -body.dark-mode button { - background-color: #444; - color: #fff; - border: 1px solid #888; + font-weight: 600; + font-size: 1rem; + letter-spacing: 0.01em; + background: linear-gradient(135deg, var(--accent) 0%, var(--accent-strong) 100%); + color: #0b1224; + box-shadow: 0 12px 30px rgba(14, 165, 233, 0.32); + transition: transform 0.15s ease, box-shadow 0.2s ease, filter 0.2s ease; } button:hover { - background-color: #ccc; -} \ No newline at end of file + transform: translateY(-1px); + box-shadow: 0 16px 32px rgba(14, 165, 233, 0.38); + filter: brightness(1.03); +} + +button:active { + transform: translateY(0); + box-shadow: 0 10px 20px rgba(14, 165, 233, 0.28); +} + +button:disabled { + opacity: 0.55; + cursor: not-allowed; + box-shadow: none; +} diff --git a/frontend/src/css/dark.css b/frontend/src/css/dark.css index 7927ca4..eec3cb0 100644 --- a/frontend/src/css/dark.css +++ b/frontend/src/css/dark.css @@ -1,9 +1,21 @@ -.dark { - --bg-color: #121212; - --text-color: #e0e0e0; -} - body.dark { - background-color: var(--bg-color); - color: var(--text-color); + --bg: #0b1224; + --bg-alt: #0f172a; + --surface: #111b30; + --surface-2: #0f1629; + --text: #e8edf7; + --muted: #9fb3d8; + --border: #1d2a44; + --accent: #22d3ee; + --accent-strong: #0ea5e9; + --accent-warm: #f59e0b; + --input-bg: #0f1b33; + --input-border: #1f2c44; + --focus-ring: rgba(34, 211, 238, 0.22); + --gradient: radial-gradient(circle at 20% 20%, rgba(34, 211, 238, 0.12), transparent 26%), + radial-gradient(circle at 80% 0%, rgba(245, 158, 11, 0.10), transparent 28%), + linear-gradient(135deg, #0b1224 0%, #0c152a 50%, #0a1020 100%); + + background: var(--gradient); + color: var(--text); } diff --git a/frontend/src/css/homeButtons.css b/frontend/src/css/homeButtons.css index ae27566..34d17fc 100644 --- a/frontend/src/css/homeButtons.css +++ b/frontend/src/css/homeButtons.css @@ -1,14 +1,16 @@ .home-button { - background-color: transparent; - color: inherit; - border: none; - font-size: 16px; - padding: 5px 10px; + background: transparent; + color: var(--text); + border: 1px solid var(--border); + font-size: 15px; + padding: 8px 12px; cursor: pointer; - transition: background-color 0.2s ease; + border-radius: 10px; + transition: border-color 0.2s ease, color 0.2s ease, background 0.2s ease; } .home-button:hover { - background-color: rgba(255, 255, 255, 0.1); - border-radius: 5px; + background: rgba(34, 211, 238, 0.12); + border-color: var(--accent); + color: var(--accent); } diff --git a/frontend/src/css/index.css b/frontend/src/css/index.css index 08a3ac9..0ea5924 100644 --- a/frontend/src/css/index.css +++ b/frontend/src/css/index.css @@ -1,68 +1,56 @@ +@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&display=swap'); + :root { - font-family: system-ui, Avenir, Helvetica, Arial, sans-serif; - line-height: 1.5; + --bg: #0b1224; + --bg-alt: #0f172a; + --surface: #111b30; + --surface-2: #0f1629; + --text: #e8edf7; + --muted: #9fb3d8; + --border: #1d2a44; + --accent: #22d3ee; + --accent-strong: #0ea5e9; + --accent-warm: #f59e0b; + --shadow: 0 25px 80px rgba(5, 10, 30, 0.45); + --radius: 18px; + --gradient: radial-gradient(circle at 20% 20%, rgba(34, 211, 238, 0.12), transparent 26%), + radial-gradient(circle at 80% 0%, rgba(245, 158, 11, 0.10), transparent 28%), + linear-gradient(135deg, #0b1224 0%, #0c152a 50%, #0a1020 100%); + --input-bg: #0f1b33; + --input-border: #1f2c44; + --focus-ring: rgba(34, 211, 238, 0.22); + --nav-blur: blur(10px); + + font-family: 'Space Grotesk', 'Segoe UI', system-ui, -apple-system, sans-serif; + line-height: 1.6; font-weight: 400; - - color-scheme: light dark; - color: rgba(255, 255, 255, 0.87); - background-color: #242424; - - font-synthesis: none; text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } -a { - font-weight: 500; - color: #646cff; - text-decoration: inherit; -} -a:hover { - color: #535bf2; +* { + box-sizing: border-box; } body { margin: 0; - display: flex; - place-items: center; - min-width: 320px; min-height: 100vh; + background: var(--gradient); + color: var(--text); } -h1 { - font-size: 3.2em; - line-height: 1.1; +a { + color: var(--accent); + text-decoration: none; + font-weight: 600; } -button { - border-radius: 8px; - border: 1px solid transparent; - padding: 0.6em 1.2em; - font-size: 1em; - font-weight: 500; - font-family: inherit; - background-color: #1a1a1a; - cursor: pointer; - transition: border-color 0.25s; -} -button:hover { - border-color: #646cff; -} -button:focus, -button:focus-visible { - outline: 4px auto -webkit-focus-ring-color; +a:hover { + color: var(--accent-strong); } -@media (prefers-color-scheme: light) { - :root { - color: #213547; - background-color: #ffffff; - } - a:hover { - color: #747bff; - } - button { - background-color: #f9f9f9; - } +::selection { + background: rgba(34, 211, 238, 0.28); + color: #0b1224; } diff --git a/frontend/src/css/light.css b/frontend/src/css/light.css index 227f7e9..801d2fe 100644 --- a/frontend/src/css/light.css +++ b/frontend/src/css/light.css @@ -1,9 +1,21 @@ -.light { - --bg-color: #ffffff; - --text-color: #222222; -} - body.light { - background-color: var(--bg-color); - color: var(--text-color); + --bg: #f6f7fb; + --bg-alt: #eef2fb; + --surface: #ffffff; + --surface-2: #f4f7ff; + --text: #0f172a; + --muted: #5b6475; + --border: #dfe4f2; + --accent: #0ea5e9; + --accent-strong: #0284c7; + --accent-warm: #f59e0b; + --input-bg: #f7f9fe; + --input-border: #d9deeb; + --focus-ring: rgba(14, 165, 233, 0.22); + --gradient: radial-gradient(circle at 18% 20%, rgba(14, 165, 233, 0.14), transparent 28%), + radial-gradient(circle at 82% 0%, rgba(245, 158, 11, 0.12), transparent 32%), + linear-gradient(135deg, #f6f7fb 0%, #eef2fb 45%, #e8ecf9 100%); + + background: var(--gradient); + color: var(--text); } diff --git a/frontend/src/css/lightDarkToggle.css b/frontend/src/css/lightDarkToggle.css index de69f52..0b87b28 100644 --- a/frontend/src/css/lightDarkToggle.css +++ b/frontend/src/css/lightDarkToggle.css @@ -1,14 +1,16 @@ .toggle-button { - background-color: transparent; - color: inherit; - border: none; - font-size: 16px; - padding: 5px 10px; + background: rgba(255, 255, 255, 0.02); + color: var(--text); + border: 1px solid var(--border); + font-size: 14px; + padding: 9px 12px; cursor: pointer; - transition: background-color 0.2s ease; + border-radius: 999px; + transition: border-color 0.2s ease, color 0.2s ease, background 0.2s ease; } .toggle-button:hover { - background-color: rgba(255, 255, 255, 0.1); - border-radius: 5px; + border-color: var(--accent); + color: var(--accent); + background: rgba(34, 211, 238, 0.08); } diff --git a/frontend/src/css/menu.css b/frontend/src/css/menu.css index 2c3ba88..3f0ffa5 100644 --- a/frontend/src/css/menu.css +++ b/frontend/src/css/menu.css @@ -1,31 +1 @@ -.navbar { - display: flex; - justify-content: space-between; - align-items: center; - background-color: var(--background-color); - padding: 0.5rem 1rem; - border-bottom: 1px solid var(--accent-color); -} - -.navbar-left, -.navbar-right { - display: flex; - align-items: center; -} - -.navbar-btn { - background: none; - border: none; - color: var(--text-color); - font-size: 1rem; - cursor: pointer; - margin: 0 0.3rem; -} - -.navbar-btn:hover { - text-decoration: underline; -} - -.navbar-spacer { - width: 1rem; -} +/* Reserved for future menu styling; kept empty to avoid conflicting with the navbar theme. */ diff --git a/frontend/src/css/navBar.css b/frontend/src/css/navBar.css index 17b89d8..3c6f333 100644 --- a/frontend/src/css/navBar.css +++ b/frontend/src/css/navBar.css @@ -1,40 +1,57 @@ .navbar { - display: flex; - justify-content: space-between; - align-items: center; - padding: 10px 20px; - background-color: var(--background-color); - color: var(--text-color); position: fixed; top: 0; left: 0; right: 0; - height: 60px; + height: 68px; + display: flex; + justify-content: space-between; + align-items: center; + padding: 0 22px; + background: rgba(12, 21, 42, 0.7); + border-bottom: 1px solid var(--border); + backdrop-filter: blur(12px); + color: var(--text); z-index: 999; } -/* Wenn du Elemente gruppieren willst */ .nav-left, .nav-right { display: flex; align-items: center; - gap: 10px; + gap: 12px; +} + +.nav-button { + display: inline-flex; + align-items: center; + gap: 8px; + padding: 10px 14px; + border-radius: 12px; + border: 1px solid transparent; + color: var(--text); + font-weight: 700; + letter-spacing: 0.01em; + transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease; +} + +.nav-button:hover { + background: rgba(34, 211, 238, 0.12); + border-color: rgba(34, 211, 238, 0.25); + color: var(--accent); } -.navbar a, .navbar button { background: none; - border: none; + border: 1px solid var(--border); color: var(--text); - font-size: 16px; - cursor: pointer; - text-decoration: none; - padding: 6px 12px; - transition: background-color 0.3s; + padding: 10px 14px; + border-radius: 12px; + transition: border-color 0.2s ease, color 0.2s ease, background 0.2s ease; } -.navbar a:hover, .navbar button:hover { - background-color: var(--accent-hover); - border-radius: 4px; + border-color: var(--accent); + color: var(--accent); + background: rgba(34, 211, 238, 0.08); }