style: adopt mewlody workspace shell
This commit is contained in:
+6
-6
@@ -22,18 +22,18 @@
|
||||
|
||||
<div class="app-shell">
|
||||
<header class="app-bar">
|
||||
<div class="brand"><span class="brand-mark">T</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="brand"><span class="brand-mark">◇</span><span>TRIXIE</span></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>
|
||||
|
||||
<main class="workspace">
|
||||
<aside class="side-panel">
|
||||
<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="micro">SERVER CONNECTION</div>
|
||||
<div class="server-status"><span class:good={connectionState === 'CONNECTED'} class="status-dot"></span>{connectionState}</div>
|
||||
|
||||
+24
-31
@@ -97,7 +97,7 @@ button:hover:not(:disabled) {
|
||||
height: 42px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 28px;
|
||||
gap: 16px;
|
||||
padding: 0 16px;
|
||||
border-bottom: 1px solid var(--ui-divider);
|
||||
background: var(--ed-bg);
|
||||
@@ -115,36 +115,6 @@ button:hover:not(:disabled) {
|
||||
color: var(--ed-accent);
|
||||
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 {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
@@ -180,6 +150,29 @@ button:hover:not(:disabled) {
|
||||
border-right: 1px solid var(--ui-divider);
|
||||
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 {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
Reference in New Issue
Block a user