From 9b30473c40690878873afbeff735c8ee448853a7 Mon Sep 17 00:00:00 2001 From: Shivering Ocelot Date: Sun, 20 Jul 2025 21:44:20 -0500 Subject: [PATCH] Collapsable+resizable sidebar. Standard view header component. --- frontend/index.html | 3 +- frontend/src/assets/base.css | 31 +++-- frontend/src/assets/main.css | 4 + frontend/src/components/TitleBar.vue | 36 ++++++ frontend/src/components/main/Sidebar.vue | 144 +++++++++++++++++++---- frontend/src/views/Agent.vue | 7 +- frontend/src/views/AgentCreate.vue | 6 +- frontend/src/views/Chat.vue | 6 +- frontend/src/views/ChatCreate.vue | 6 +- 9 files changed, 202 insertions(+), 41 deletions(-) create mode 100644 frontend/src/components/TitleBar.vue diff --git a/frontend/index.html b/frontend/index.html index 987c39b..5f1e241 100644 --- a/frontend/index.html +++ b/frontend/index.html @@ -6,11 +6,10 @@ + - - Horde Chat diff --git a/frontend/src/assets/base.css b/frontend/src/assets/base.css index 0d14076..d7ac599 100644 --- a/frontend/src/assets/base.css +++ b/frontend/src/assets/base.css @@ -1,5 +1,5 @@ -/* color palette from */ :root { + /* color palette from */ --vt-c-white: #ffffff; --vt-c-white-soft: #f8f8f8; --vt-c-white-mute: #f2f2f2; @@ -19,33 +19,46 @@ --vt-c-text-light-2: rgba(60, 60, 60, 0.66); --vt-c-text-dark-1: var(--vt-c-white); --vt-c-text-dark-2: rgba(235, 235, 235, 0.64); + --vt-c-text-dark-3: rgba(180, 180, 180, 0.64); + + /* Horde colors */ + --color-green: #00bd7e; + --color-green-dark: #003825; + --color-blue: #3d8de1; } -/* semantic color variables for this project */ +/* semantic color and size variables for this project */ :root { --color-background: var(--vt-c-black); --color-background-soft: var(--vt-c-black-soft); --color-background-mute: var(--vt-c-black-mute); + --color-background-hover: var(--vt-c-black-mute); + --color-background-active: var(--vt-c-black-mute); + --color-border: var(--vt-c-divider-dark-2); --color-border-hover: var(--vt-c-divider-dark-1); --color-heading: var(--vt-c-text-dark-1); - --color-text: var(--vt-c-text-dark-2); + --color-text: var(--vt-c-text-dark-2); + --color-text-mute: var(--vt-c-text-dark-3); + + --color-active: var(--color-heading); + + --border-radius: 6px; --section-gap: 160px; } -/* Horde Colors */ +/* Z-Index hierarchy */ :root { - --color-green: #00bd7e; - --color-green-dark: #003825; - --color-blue: #3d8de1; - - --border-radius: 6px; + --z-index-sidebar: 100; + --z-index-alert: 150; + --z-index-context-menu: 160; } +/* Dark theme by default, Light theme via browser settings */ @media (prefers-color-scheme: light) { :root { --color-background: var(--vt-c-white); diff --git a/frontend/src/assets/main.css b/frontend/src/assets/main.css index 95857ad..924ff4f 100644 --- a/frontend/src/assets/main.css +++ b/frontend/src/assets/main.css @@ -29,4 +29,8 @@ main { height: 100vh; flex-grow: 1; overflow: auto; +} + +.with-sidebar-expanded .when-sidebar-collapsed { + display: none; } \ No newline at end of file diff --git a/frontend/src/components/TitleBar.vue b/frontend/src/components/TitleBar.vue new file mode 100644 index 0000000..e0c1243 --- /dev/null +++ b/frontend/src/components/TitleBar.vue @@ -0,0 +1,36 @@ + + + + + diff --git a/frontend/src/components/main/Sidebar.vue b/frontend/src/components/main/Sidebar.vue index 0bf64f3..c5ba3cb 100644 --- a/frontend/src/components/main/Sidebar.vue +++ b/frontend/src/components/main/Sidebar.vue @@ -1,19 +1,40 @@