style: adopt mewlody workspace shell

This commit is contained in:
2026-10-25 04:05:27 +01:00
parent 35df7afe88
commit 5d41473f47
2 changed files with 30 additions and 37 deletions
+6 -6
View File
@@ -22,18 +22,18 @@
<div class="app-shell"> <div class="app-shell">
<header class="app-bar"> <header class="app-bar">
<div class="brand"><span class="brand-mark">T</span><span>TRIXIE</span></div> <div class="brand"><span class="brand-mark">◇</span><span>TRIXIE</span></div>
<nav class="top-nav" aria-label="Primary navigation">
{#each ['Live dashboard', 'Chat', 'Bot', 'Overlays'] as item}
<button class:active={activeView === item} class="nav-item" onclick={() => (activeView = item)}>{item}</button>
{/each}
</nav>
<div class="app-actions"><span class:online={connectionState === 'CONNECTED'} class="connection-state">{connectionState}</span><button class="icon-button" aria-label="Settings">⚙</button></div> <div class="app-actions"><span class:online={connectionState === 'CONNECTED'} class="connection-state">{connectionState}</span><button class="icon-button" aria-label="Settings">⚙</button></div>
</header> </header>
<main class="workspace"> <main class="workspace">
<aside class="side-panel"> <aside class="side-panel">
<div class="panel-header"><span>TRIXIE</span><span class="panel-kicker">CONTROL</span></div> <div class="panel-header"><span>TRIXIE</span><span class="panel-kicker">CONTROL</span></div>
<nav class="side-nav" aria-label="Primary navigation">
{#each ['Live dashboard', 'Chat', 'Bot', 'Overlays'] as item}
<button class:active={activeView === item} class="side-nav-item" onclick={() => (activeView = item)}>{item}</button>
{/each}
</nav>
<div class="server-card"> <div class="server-card">
<div class="micro">SERVER CONNECTION</div> <div class="micro">SERVER CONNECTION</div>
<div class="server-status"><span class:good={connectionState === 'CONNECTED'} class="status-dot"></span>{connectionState}</div> <div class="server-status"><span class:good={connectionState === 'CONNECTED'} class="status-dot"></span>{connectionState}</div>
+24 -31
View File
@@ -97,7 +97,7 @@ button:hover:not(:disabled) {
height: 42px; height: 42px;
display: flex; display: flex;
align-items: center; align-items: center;
gap: 28px; gap: 16px;
padding: 0 16px; padding: 0 16px;
border-bottom: 1px solid var(--ui-divider); border-bottom: 1px solid var(--ui-divider);
background: var(--ed-bg); background: var(--ed-bg);
@@ -115,36 +115,6 @@ button:hover:not(:disabled) {
color: var(--ed-accent); color: var(--ed-accent);
font-size: 16px; font-size: 16px;
} }
.top-nav {
display: flex;
align-self: stretch;
gap: 24px;
}
.nav-item {
position: relative;
padding: 0;
border: 0;
border-radius: 0;
color: var(--ed-dim);
background: transparent;
font: 10px var(--font-data);
letter-spacing: 0.16em;
text-transform: uppercase;
}
.nav-item:hover,
.nav-item.active {
color: var(--ed-fg);
background: transparent;
}
.nav-item.active::after {
position: absolute;
right: 0;
bottom: 0;
left: 0;
height: 2px;
background: var(--ed-accent);
content: '';
}
.app-actions { .app-actions {
display: flex; display: flex;
align-items: center; align-items: center;
@@ -180,6 +150,29 @@ button:hover:not(:disabled) {
border-right: 1px solid var(--ui-divider); border-right: 1px solid var(--ui-divider);
background: color-mix(in srgb, var(--ed-panel) 80%, var(--ed-bg)); background: color-mix(in srgb, var(--ed-panel) 80%, var(--ed-bg));
} }
.side-nav {
display: flex;
flex-direction: column;
padding: 8px 0;
border-bottom: 1px solid var(--ui-divider);
}
.side-nav-item {
width: 100%;
padding: 7px 10px;
border: 0;
border-left: 2px solid transparent;
border-radius: 0;
color: var(--ed-dim);
background: transparent;
font: 11px var(--font-body);
text-align: left;
}
.side-nav-item:hover,
.side-nav-item.active {
border-left-color: var(--ed-accent);
color: var(--ed-fg);
background: color-mix(in srgb, var(--ed-accent) 6%, var(--ed-panel));
}
.panel-header { .panel-header {
display: flex; display: flex;
align-items: center; align-items: center;