feat(frontend): terminal restyle + dm + grouping + brand override
- Restyle: ink 'blueprint' surfaces + IBM Plex Mono / Major Mono Display, hairline borders, restrained motion, 12px radii. Fabric purple accent kept. Layout unchanged. - Brand override (build-time VITE_ only): VITE_APP_NAME / VITE_LOGO_URL / VITE_FAVICON_URL via src/lib/brand.ts (applyBrand in main.tsx); login wordmark/logo + title + favicon. .env.example documented. - dm x-type: create modal participant becomes single-select (radio) for dm and forces private; member right-click menu gains 'Create new DM channel' (non-unique, fresh channel each time). - Channels sidebar grouped by x-type with group headers. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,28 +1,32 @@
|
||||
:root {
|
||||
--rail: #18191c;
|
||||
--side: #1f2125;
|
||||
--main: #26282d;
|
||||
--elevated: #1a1b1e;
|
||||
--input: #1a1b1e;
|
||||
--hover: rgba(255, 255, 255, 0.04);
|
||||
--active: rgba(168, 85, 247, 0.16);
|
||||
/* Cryptic lab terminal: deep "blueprint" ink surfaces, monospace
|
||||
everything, restrained motion. Accent stays Fabric purple. */
|
||||
--ink: #080a0d;
|
||||
--rail: #0b0e12;
|
||||
--side: #0f141b;
|
||||
--main: #0a0d12;
|
||||
--elevated: #11161d;
|
||||
--input: #0b0e12;
|
||||
--hover: rgba(168, 85, 247, 0.1);
|
||||
--active: rgba(168, 85, 247, 0.18);
|
||||
|
||||
--text: #dbdee1;
|
||||
--text-muted: #949ba4;
|
||||
--text-faint: #6d7178;
|
||||
--text-h: #f2f3f5;
|
||||
--text: #c7d0dc;
|
||||
--text-muted: #6f7d92;
|
||||
--text-faint: #4f5b6b;
|
||||
--text-h: #e9f0fa;
|
||||
|
||||
--border: #303237;
|
||||
--border: #1d2733;
|
||||
--accent: #a855f7;
|
||||
--accent-strong: #9333ea;
|
||||
--accent-soft: rgba(168, 85, 247, 0.14);
|
||||
--danger: #f23f42;
|
||||
--accent-soft: rgba(168, 85, 247, 0.16);
|
||||
--danger: #ff5a52;
|
||||
--online: #23a55a;
|
||||
|
||||
--radius: 10px;
|
||||
--radius-sm: 7px;
|
||||
--sans: 'Inter', system-ui, 'Segoe UI', Roboto, sans-serif;
|
||||
--mono: ui-monospace, 'SF Mono', Consolas, monospace;
|
||||
--radius: 12px;
|
||||
--radius-sm: 8px;
|
||||
--display: 'Major Mono Display', ui-monospace, monospace;
|
||||
--sans: 'IBM Plex Mono', ui-monospace, 'SF Mono', Consolas, monospace;
|
||||
--mono: 'IBM Plex Mono', ui-monospace, 'SF Mono', Consolas, monospace;
|
||||
|
||||
color-scheme: dark;
|
||||
font-synthesis: none;
|
||||
@@ -198,6 +202,19 @@ button {
|
||||
padding: 32px;
|
||||
box-shadow: 0 20px 50px -20px rgba(0, 0, 0, 0.6);
|
||||
}
|
||||
.brand-wordmark {
|
||||
font-family: var(--display);
|
||||
text-transform: lowercase;
|
||||
font-size: 30px;
|
||||
color: var(--accent);
|
||||
text-shadow: 0 0 32px rgba(168, 85, 247, 0.4);
|
||||
margin-bottom: 18px;
|
||||
}
|
||||
.brand-logo {
|
||||
max-height: 44px;
|
||||
width: auto;
|
||||
margin-bottom: 18px;
|
||||
}
|
||||
.login-card h1 {
|
||||
font-size: 24px;
|
||||
margin-bottom: 4px;
|
||||
@@ -415,6 +432,20 @@ button {
|
||||
.chan-btn.xt-custom {
|
||||
--xt: #c084fc;
|
||||
}
|
||||
.chan-btn.xt-dm {
|
||||
--xt: #a855f7;
|
||||
}
|
||||
/* x-type group headers in the channel sidebar */
|
||||
.dc-chan-group {
|
||||
margin-bottom: 6px;
|
||||
}
|
||||
.dc-group-label {
|
||||
font-size: 10px;
|
||||
letter-spacing: 0.18em;
|
||||
text-transform: uppercase;
|
||||
color: var(--text-faint);
|
||||
padding: 8px 8px 4px;
|
||||
}
|
||||
.chan-tag {
|
||||
margin-left: auto;
|
||||
font-size: 10px;
|
||||
|
||||
Reference in New Issue
Block a user