init: hermes-web-ui v0.1.0

Hermes Agent Web 管理面板,支持对话交互和定时任务管理。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
ekko
2026-04-11 15:59:14 +08:00
co-authored by Claude Opus 4.6
commit cd58797f4c
41 changed files with 3627 additions and 0 deletions
+60
View File
@@ -0,0 +1,60 @@
@use 'variables' as *;
*,
*::before,
*::after {
margin: 0;
padding: 0;
box-sizing: border-box;
}
html, body, #app {
height: 100%;
width: 100%;
overflow: hidden;
}
body {
font-family: $font-ui;
background-color: $bg-primary;
color: $text-primary;
font-size: 14px;
line-height: 1.6;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
code, pre, .mono {
font-family: $font-code;
}
a {
color: $accent-primary;
text-decoration: none;
&:hover {
color: $accent-hover;
}
}
::-webkit-scrollbar {
width: 6px;
height: 6px;
}
::-webkit-scrollbar-track {
background: transparent;
}
::-webkit-scrollbar-thumb {
background: $border-color;
border-radius: 3px;
&:hover {
background: $text-muted;
}
}
::selection {
background: rgba($accent-primary, 0.3);
}
+71
View File
@@ -0,0 +1,71 @@
import type { GlobalThemeOverrides } from 'naive-ui'
export const themeOverrides: GlobalThemeOverrides = {
common: {
primaryColor: '#333333',
primaryColorHover: '#1a1a1a',
primaryColorPressed: '#000000',
primaryColorSuppl: '#333333',
bodyColor: '#fafafa',
cardColor: '#ffffff',
modalColor: '#ffffff',
popoverColor: '#ffffff',
tableColor: '#ffffff',
inputColor: '#ffffff',
actionColor: '#f0f0f0',
textColorBase: '#1a1a1a',
textColor1: '#1a1a1a',
textColor2: '#666666',
textColor3: '#999999',
dividerColor: '#e0e0e0',
borderColor: '#e0e0e0',
hoverColor: 'rgba(0, 0, 0, 0.04)',
borderRadius: '8px',
borderRadiusSmall: '6px',
fontSize: '14px',
fontSizeMedium: '14px',
heightMedium: '36px',
fontFamily: 'Inter, system-ui, -apple-system, sans-serif',
fontFamilyMono: 'JetBrains Mono, Fira Code, Consolas, monospace',
},
Layout: {
color: '#fafafa',
siderColor: '#f5f5f5',
headerColor: '#fafafa',
},
Menu: {
itemTextColorActive: '#1a1a1a',
itemTextColorActiveHover: '#1a1a1a',
itemTextColorChildActive: '#1a1a1a',
itemIconColorActive: '#1a1a1a',
itemIconColorActiveHover: '#000000',
itemColorActive: 'rgba(0, 0, 0, 0.06)',
itemColorActiveHover: 'rgba(0, 0, 0, 0.1)',
arrowColorActive: '#1a1a1a',
},
Button: {
textColorPrimary: '#ffffff',
colorPrimary: '#333333',
colorHoverPrimary: '#1a1a1a',
colorPressedPrimary: '#000000',
},
Input: {
color: '#ffffff',
colorFocus: '#ffffff',
border: '1px solid #e0e0e0',
borderHover: '1px solid #999999',
borderFocus: '1px solid #333333',
placeholderColor: '#999999',
caretColor: '#1a1a1a',
},
Card: {
color: '#ffffff',
borderColor: '#e0e0e0',
},
Modal: {
color: '#ffffff',
},
Tag: {
borderRadius: '6px',
},
}
+56
View File
@@ -0,0 +1,56 @@
// 黑白水墨 — Pure Ink
// 纯黑白灰,无彩色
// Backgrounds
$bg-primary: #fafafa;
$bg-secondary: #f0f0f0;
$bg-sidebar: #f5f5f5;
$bg-card: #ffffff;
$bg-card-hover: #fafafa;
$bg-input: #ffffff;
// Borders
$border-color: #e0e0e0;
$border-light: #ebebeb;
// Accent
$accent-primary: #333333;
$accent-hover: #1a1a1a;
$accent-muted: #888888;
// Text
$text-primary: #1a1a1a;
$text-secondary: #666666;
$text-muted: #999999;
// Status
$success: #2e7d32;
$error: #c62828;
$warning: #f57f17;
$info: $accent-primary;
// Message bubbles
$msg-user-bg: #e8e8e8;
$msg-assistant-bg: #f5f5f5;
$msg-system-border: #bdbdbd;
// Code
$code-bg: #f4f4f4;
// Typography
$font-ui: 'Inter', system-ui, -apple-system, sans-serif;
$font-code: 'JetBrains Mono', 'Fira Code', 'Consolas', monospace;
// Layout
$sidebar-width: 240px;
$sidebar-collapsed-width: 64px;
$header-height: 56px;
// Radius
$radius-sm: 6px;
$radius-md: 10px;
$radius-lg: 14px;
// Transition
$transition-fast: 0.15s ease;
$transition-normal: 0.25s ease;