style: adopt mewlody workspace shell
This commit is contained in:
+6
-6
@@ -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
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user