xPulse
πŸ‡©πŸ‡ͺ DE

xPulse Chat – UI/UX Layout Concept v1.3.0

Status: CONCEPT Β· Ziel-Version: v1.3.0 Erstellt im Rahmen der v1.2.0 Entwicklung als Planungsgrundlage fΓΌr den nΓ€chsten Schritt.


Ziel

Einheitliches, konsistentes App-Layout ΓΌber alle Views hinweg.
Mobile-first, responsive – auf Desktop mit dauerhaft sichtbarer Sidebar.


App Shell

Grundstruktur

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ [☰] Area Title / Status [πŸ‘€ username β–Ύ] β”‚ ← Top Bar (nur rechts ΓΌber Content)
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ β”‚ β”‚
β”‚ Logo β”‚ Dynamic Content Area β”‚
β”‚ ──────── β”‚ β”‚
β”‚ Peer Liste β”‚ (Chat / Peer Detail / β”‚
β”‚ (scrollbar) β”‚ Profil / Text Pages) β”‚
β”‚ β”‚ β”‚
β”‚ ──────── β”‚ β”‚
β”‚ Guidelines β”‚ β”‚
β”‚ Version β”‚ β”‚
β”‚ Info β”‚ β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Komponenten

Bereich Beschreibung
Left Sidebar Immer sichtbar (Desktop) / Overlay (Mobile)
Top Bar Nur ΓΌber dem Dynamic Content, nicht ΓΌber Sidebar
Dynamic Content Wechselt je nach Route
Footer EntfΓ€llt komplett

Inhalt (von oben nach unten)

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ πŸ”· xPulse β”‚ ← Logo
β”‚ ──────────── β”‚
β”‚ β”‚
β”‚ ── Peers ── [+]β”‚ ← "+" Button: title="Peer hinzufΓΌgen"
β”‚ 🟒 Bob β”‚ Peer Liste (scrollbar)
β”‚ πŸ”΄ Carol β”‚ mit Online-Status Badge
β”‚ πŸ”΄ Dave β”‚ aktiver Peer highlighted
β”‚ β”‚
β”‚ (leer state) β”‚
β”‚ β”‚
β”‚ ──────────── β”‚
β”‚ Info Β· Guidelinesβ”‚ ← Footer Links (zentriert)
β”‚ Disclaimer β”‚
β”‚ [Version 1.3.0] β”‚ ← Pill β†’ Link zu /changelog (einziger Weg)
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Kein aktiver Benutzer in der Sidebar! Login/Profil nur ΓΌber das User-MenΓΌ in der Top Bar rechts erreichbar.

Verhalten


Top Bar

Nur ΓΌber dem Dynamic Content Bereich (nicht ΓΌber der Sidebar).

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ [☰ nur Mobile] Area Title / Status [πŸ‘€ username β–Ύ] β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

User MenΓΌ Dropdown (rechts)

[πŸ‘€ username β–Ύ]
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Mein Profil β”‚
β”‚ ────────── β”‚
β”‚ Logout β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Area Title – je nach Route

Route Area Title Subtitle / Status
/peer/list P2P Chat –
/peer/add Peer hinzufΓΌgen –
/peer/add/:hash (Re-Pair) Peer {Login} Re-Pair –
/peer/:hash Peer {Login} –
/chat/:hash Chat mit {Login} Status (siehe unten)
/profile Mein Profil –
/info Info –
/changelog Changelog –
/guidelines Usage Guidelines –
/disclaimer Disclaimer –

Chat Status im Area Title

Chat mit Bob πŸ”΄ offline
Chat mit Bob 🟑 verbinde…
Chat mit Bob 🟒 online · im Chat: nein
Chat mit Bob 🟒 online · im Chat: ja
Chat mit Bob 🟒 verbunden

Dynamic Content – je nach Route

`/peer/list` – Default State

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ β”‚
β”‚ Hallo Alice πŸ‘‹ β”‚
β”‚ β”‚
β”‚ WΓ€hle einen Peer aus β”‚
β”‚ um zu chatten β”‚
β”‚ β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Die Peer-Liste selbst ist in der linken Sidebar – die rechte Content-Area zeigt den personalisierten Willkommens-State wenn kein Peer ausgewΓ€hlt ist.


`/chat/:hash` – Chat View

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Chat Messages (scrollbar) β”‚
β”‚ β”‚
β”‚ [Typing Indicator] β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ [textarea] [↑] β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

`/peer/add` – Peer hinzufΓΌgen / Re-Pair

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Pairing Code Eingabe / β”‚
β”‚ Code generieren β”‚
β”‚ β”‚
β”‚ [Pairing Timer Bar] β”‚
β”‚ β”‚
β”‚ Status / Feedback β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ πŸ‘€ Avatar + Status Badge β”‚
β”‚ Login + Chat Icon β”‚
β”‚ β”‚
β”‚ Peer Hash: ... β”‚
β”‚ HinzugefΓΌgt: ... β”‚
β”‚ β”‚
β”‚ [β†’ Chat ΓΆffnen] β”‚
β”‚ [⟳ Re-pair] β”‚
β”‚ [Entfernen] β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

`/profile` – Profil View

Wie bisher, nur ohne eigenen Header (Area Title ΓΌbernimmt).


Text Pages (`/info`, `/guidelines`, `/disclaimer`)

Wie bisher, nur ohne eigenen Header (Area Title = Page Title). Nur reiner Inhalt – keine Tabs.


`/changelog` – Changelog

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ CHANGELOG.md β”‚
β”‚ (rendered Markdown) β”‚
β”‚ β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Mobile Navigation

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ ☰ Chat mit Bob 🟒 [πŸ‘€β–Ύ] β”‚ ← Top Bar
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ β”‚
β”‚ Dynamic Content β”‚
β”‚ β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
Sidebar offen (Overlay):
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ βœ• xPulse β”‚ (blur β”‚
β”‚ ────── β”‚ + β”‚
β”‚ 🟒 Bob β”‚ dark β”‚
β”‚ πŸ”΄ Carol β”‚ overlay)β”‚
β”‚ ────── β”‚ β”‚
β”‚ Info β”‚ β”‚
β”‚ v1.3.0 β”‚ β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

CSS / Layout Technisch


Was entfΓ€llt

Aktuell In v1.3.0
Jede View hat eigenen Header Einheitliche Top Bar
Back-Buttons in Views Navigation via Sidebar
peers-footer mit Button [+] Button in Sidebar neben "Peers" Label
chat-input-hint Footer Status im Area Title
Inkonsistente Inline-Styles Ausgelagerte CSS-Dateien
peer-detail als eigene View optional KΓΆnnte als rechte Panel-Sidebar werden

Offene Fragen / Entscheidungen

Frage Entscheidung
Breadcrumbs oder Area Title? Area Title
Changelog nur Pill oder auch Footer Link? Nur Version-Pill
peer-detail separate Route oder Panel? Separate Route
Sidebar-Breite auf Tablet TBD

Chat Info Panel (rechts im Chat)

Separates optionales Panel rechts im Chat – kein Full Peer Detail, nur Chat-relevante Infos:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Chat mit Bob 🟒 [β„Ή] ← Toggle Panel β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ β”‚ Chat Info β”‚
β”‚ Chat Messages β”‚ ──────────── β”‚
β”‚ β”‚ πŸ‘€ Bob β”‚
β”‚ β”‚ 🟒 online β”‚
β”‚ β”‚ im Chat: ja β”‚
β”‚ β”‚ β”‚
β”‚ β”‚ verbunden seit: β”‚
β”‚ β”‚ 03.03.2026 13:54 β”‚
β”‚ β”‚ Nachricht: 42 β”‚
β”‚ [typing indicator] β”‚ β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ [textarea] [↑] β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Panel / Sidebar Zustand (localStorage)

Alle Panel-ZustΓ€nde werden in localStorage gespeichert:

Key Default Beschreibung
xpulse_panel_left open Linke Sidebar (Desktop)
xpulse_panel_chat_info closed Chat Info Panel (rechts)
de/concept/ui-layout-v1.3.0.md 2026-04-17