UI V3: add top navigation, sidebar layout, and dedicated loans/stats views

This commit is contained in:
Ponte
2026-03-05 19:36:03 +01:00
parent e98d8c5717
commit afabdce17c
3 changed files with 268 additions and 42 deletions

View File

@@ -27,6 +27,49 @@ body {
min-height: 100vh;
}
.topbar {
position: sticky;
top: 0;
z-index: 60;
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: space-between;
gap: 0.8rem;
padding: 0.7rem 1rem;
border-bottom: 1px solid var(--border);
background: rgba(248, 250, 253, 0.92);
backdrop-filter: blur(8px);
}
.topbar-brand h1 {
margin: 0.1rem 0 0;
font-size: clamp(1.05rem, 1.8vw, 1.35rem);
}
.topbar-nav {
display: flex;
flex-wrap: wrap;
gap: 0.45rem;
}
.topnav-btn {
background: #dde7f3;
color: #1f324a;
border: 1px solid #cfd9e7;
border-radius: 10px;
padding: 0.48rem 0.72rem;
font-family: inherit;
font-weight: 600;
cursor: pointer;
}
.topnav-btn.active {
background: #0f6ab8;
color: #ffffff;
border-color: #0f6ab8;
}
.tools-toggle-btn {
position: fixed;
top: 1rem;
@@ -161,12 +204,36 @@ body {
}
.app-shell {
width: min(1100px, 94vw);
margin: 2rem auto;
width: min(1320px, 95vw);
margin: 1rem auto 2rem;
display: grid;
gap: 1rem;
}
.v3-layout {
grid-template-columns: minmax(260px, 320px) minmax(0, 1fr);
align-items: start;
}
.v3-main {
display: grid;
gap: 1rem;
}
.v3-sidebar {
position: sticky;
top: 5rem;
}
.sidebar-block + .sidebar-block {
margin-top: 0.9rem;
}
.sidebar-title {
margin: 0 0 0.7rem;
font-size: 1rem;
}
.hero,
.panel {
background: var(--surface);
@@ -206,6 +273,12 @@ h1 {
color: var(--muted);
}
.stats-grid {
display: grid;
gap: 0.75rem;
grid-template-columns: repeat(4, minmax(0, 1fr));
}
.panel {
padding: 1rem;
}
@@ -819,7 +892,7 @@ body.ui-v2 .game-actions {
body.ui-v2 .hero {
position: sticky;
top: 4.2rem;
top: 5.3rem;
z-index: 15;
}
@@ -861,6 +934,22 @@ body.ui-v2 .hero {
}
@media (max-width: 900px) {
.topbar {
padding: 0.6rem 0.7rem;
}
.v3-layout {
grid-template-columns: 1fr;
}
.v3-sidebar {
position: static;
}
.stats-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.v2-toolbar {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
@@ -881,6 +970,19 @@ body.ui-v2 .hero {
}
@media (max-width: 640px) {
.topbar-nav {
width: 100%;
}
.topnav-btn {
flex: 1 1 calc(50% - 0.3rem);
text-align: center;
}
.stats-grid {
grid-template-columns: 1fr;
}
.grid-form,
.game-form {
grid-template-columns: 1fr;