Body-Nav entfernen, Dashboard-Header mit Titel und Einstellungen-Link

- <nav id='nav'> samt nav.css komplett entfernt
- Nav-Link-Logik aus app.js und router.js entfernt
- Nav-Hide aus mobile.css entfernt
- Dashboard-Template: Header mit Titel '// gott' und Link 'Einstellungen'
- Dashboard CSS: .dashboard-header mit Flex-Layout
- Einstellungen-Link navigiert zur Settings-Page
This commit is contained in:
Meleki committed 2026-03-01 11:55:16 +01:00
1 parent 294145a04e
commit 9cffc5bbb7
7 files changed
+34 -69

No files matched your search

+23
View File
@@ -2,6 +2,29 @@
padding: var(--page-padding);
}
.dashboard-header {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: var(--page-spacing);
}
.dashboard-title {
margin: 0;
}
.dashboard-link {
color: var(--text);
text-decoration: none;
opacity: var(--semi-transparent);
transition: opacity var(--transition-duration);
}
.dashboard-link:hover {
opacity: 1;
color: var(--text-accent);
}
.dashboard section {
margin-bottom: var(--page-spacing);
width: 100%;
-3
View File
@@ -1,8 +1,5 @@
/* === Mobile === */
@media (max-width: 768px) {
#nav {
display: none;
}
.msg, .tool-box {
max-width: 100%;
}
-41
View File
@@ -1,41 +0,0 @@
#nav {
border-bottom: var(--border-width) solid var(--f2-border);
flex-shrink: 0;
display: flex;
justify-content: center;
}
.nav-content {
display: flex;
align-items: center;
gap: var(--page-spacing);
width: var(--page-width);
max-width: 100%;
padding: var(--box-padding);
transition: var(--transition-duration);
}
.nav-brand,
.nav-link {
padding: var(--badge-padding);
color: var(--text);
border-bottom: 2px solid transparent;
}
.nav-links {
display: flex;
gap: var(--box-spacing);
}
.nav-link {
text-decoration: none;
}
.nav-link:hover {
color: var(--text-accent);
}
.nav-link.active {
color: var(--text-accent);
border-bottom-color: var(--primary);
}
+5 -11
View File
@@ -10,7 +10,7 @@
<link rel="stylesheet" href="css/theme.css">
<link rel="stylesheet" href="css/base.css">
<link rel="stylesheet" href="css/main.css">
<link rel="stylesheet" href="css/nav.css">
<link rel="stylesheet" href="css/form.css">
<link rel="stylesheet" href="css/dashboard.css">
<link rel="stylesheet" href="css/chat.css">
@@ -24,16 +24,6 @@
</head>
<body>
<nav id="nav">
<div class="nav-content">
<div class="nav-brand">// gott</div>
<div class="nav-links">
<a href="#" data-page="dashboard" class="nav-link active">Dashboard</a>
<a href="#" data-page="settings" class="nav-link">Einstellungen</a>
</div>
</div>
</nav>
<div id="app"></div>
<!-- Templates -->
@@ -41,6 +31,10 @@
<template id="tpl-dashboard">
<div class="page dashboard">
<div class="page-content">
<div class="dashboard-header">
<h1 class="dashboard-title">// gott</h1>
<a href="#" id="dashboardSettingsLink" class="dashboard-link">Einstellungen</a>
</div>
<section>
<div class="section-header">
<h2>Sessions</h2>
-9
View File
@@ -1,15 +1,6 @@
// ── App Init ──
document.addEventListener('DOMContentLoaded', async () => {
// Nav-Links
document.querySelectorAll('.nav-link[data-page]').forEach(link => {
link.addEventListener('click', (e) => {
e.preventDefault();
navigateTo(link.dataset.page);
});
});
// Route aus Hash laden
const { page, id } = parseHash();
await navigateTo(page, { id });
});
+6
View File
@@ -2,6 +2,12 @@
registerPage('dashboard', {
async init() {
// Einstellungen-Link
document.getElementById('dashboardSettingsLink').addEventListener('click', (e) => {
e.preventDefault();
navigateTo('settings');
});
// Globaler Click-Handler zum Schließen aller Card-Menüs
document.addEventListener('click', this._closeCardMenus = () => closeAllCardMenus());
-5
View File
@@ -30,11 +30,6 @@ async function navigateTo(page, params = {}) {
app.appendChild(tpl.content.cloneNode(true));
currentPage = page;
// Nav-Links aktualisieren
document.querySelectorAll('.nav-link').forEach(l => {
l.classList.toggle('active', l.dataset.page === page);
});
// URL Hash setzen
const hash = params.id ? `${page}/${params.id}` : page;
history.replaceState(null, '', `#${hash}`);