From 5c974f31ce0c52fc541eef5dfb56fca758730f53 Mon Sep 17 00:00:00 2001 From: Louis Date: Wed, 14 Oct 2026 21:45:05 +0200 Subject: [PATCH] Title bar: center tabs vertically as rounded pills (were bottom-aligned while logo, + and buttons were centered), frame the active tab, draw + as an icon and center all title bar icons at the same size Co-Authored-By: Claude Opus 5.5 --- src/renderer/index.html | 2 +- src/renderer/styles.css | 14 ++++++++------ 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/src/renderer/index.html b/src/renderer/index.html index 048135b..1bb67bc 100644 --- a/src/renderer/index.html +++ b/src/renderer/index.html @@ -17,7 +17,7 @@ Vault - +
diff --git a/src/renderer/styles.css b/src/renderer/styles.css index 8ad1fc6..80ee429 100644 --- a/src/renderer/styles.css +++ b/src/renderer/styles.css @@ -24,23 +24,25 @@ svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: .logo { width: 24px; height: 24px; border-radius: 6px; } .brand { gap: 8px !important; } .brand-term { color: #5ef0c4; margin-left: -8px; } -#tabs { display: flex; gap: 4px; height: 100%; align-items: flex-end; overflow-x: auto; min-width: 0; -webkit-app-region: no-drag; } +#tabs { display: flex; gap: 4px; height: 100%; align-items: center; overflow-x: auto; min-width: 0; -webkit-app-region: no-drag; } #tabs::-webkit-scrollbar { height: 0; } -.tab { -webkit-app-region: no-drag; display: flex; align-items: center; gap: 8px; height: 32px; padding: 0 10px 0 12px; border: none; background: transparent; border-radius: 8px 8px 0 0; color: var(--muted); max-width: 220px; min-width: 110px; white-space: nowrap; position: relative; } +.tab { -webkit-app-region: no-drag; display: flex; align-items: center; gap: 8px; height: 30px; padding: 0 8px 0 12px; border: none; background: transparent; border-radius: 8px; color: var(--muted); max-width: 220px; min-width: 110px; white-space: nowrap; position: relative; } .tab.home { min-width: 0; } .tab span { overflow: hidden; text-overflow: ellipsis; flex: 1; text-align: left; } .tab:hover { background: var(--hover); color: var(--text); } -.tab.active { background: var(--bg); color: var(--text); } +.tab.active { background: var(--bg); color: var(--text); box-shadow: 0 0 0 1px var(--chrome-line); } .tab .dot { width: 8px; height: 8px; border-radius: 50%; background: var(--faint); flex: none; } .tab .dot.on { background: var(--green); box-shadow: 0 0 6px var(--green); } .tab .dot.err { background: var(--red); } .tab .dot.wait { background: var(--orange); animation: pulse 1s infinite; } -.tab .x { opacity: 0; border: none; background: none; padding: 2px; border-radius: 4px; color: var(--muted); display: flex; } +.tab .x { opacity: 0; border: none; background: none; padding: 3px; border-radius: 4px; color: var(--muted); display: flex; } .tab:hover .x, .tab.active .x { opacity: 1; } .tab .x:hover { background: rgb(var(--tint) / 0.094); color: var(--text); } .tab .x svg { width: 12px; height: 12px; } @keyframes pulse { 50% { opacity: .35; } } -.icon-btn { -webkit-app-region: no-drag; border: none; background: transparent; color: var(--muted); width: 30px; height: 30px; border-radius: 8px; font-size: 18px; margin-left: 4px; flex: none; } +.icon-btn { -webkit-app-region: no-drag; border: none; background: transparent; color: var(--muted); width: 30px; height: 30px; border-radius: 8px; margin-left: 4px; flex: none; display: flex; align-items: center; justify-content: center; padding: 0; } +/* Alle Titelleisten-Symbole gleich groß und mittig (vorher: „+“ als Text mit eigener Grundlinie) */ +.icon-btn svg { width: 16px; height: 16px; } .icon-btn:hover { background: var(--chrome-line); color: var(--text); } .drag-fill { flex: 1; min-width: 40px; height: 100%; } .win-ctrls { display: flex; height: 100%; -webkit-app-region: no-drag; } @@ -317,7 +319,7 @@ kbd { background: var(--card); border: 1px solid var(--border); border-bottom-wi #sidebar.nav-collapsed .nav-menu .nav span { display: none; } /* App-Sperre */ -.lock-btn svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 2; } +.lock-btn svg { fill: none; stroke: currentColor; stroke-width: 2; } .lock-screen { position: fixed; inset: 0; top: var(--titlebar); z-index: 200; background: var(--bg); display: flex; align-items: center; justify-content: center; animation: fade .15s; } .lock-box { width: 340px; display: flex; flex-direction: column; align-items: center; gap: 14px; text-align: center; } .lock-box h2 { margin: 0 0 6px; font-size: 18px; }