From cb4e250ecf1936e4a3cc375d63c9ea05a65496b1 Mon Sep 17 00:00:00 2001
From: Baobhan Sith <80159437+Heavrnl@users.noreply.github.com>
Date: Wed, 23 Apr 2025 13:32:54 +0800
Subject: [PATCH] update
---
packages/frontend/src/App.vue | 16 +--
.../src/components/StyleCustomizer.vue | 126 +++++++++++++-----
.../appearance/config/default-themes.ts | 4 +
packages/frontend/src/style.css | 15 ++-
4 files changed, 111 insertions(+), 50 deletions(-)
diff --git a/packages/frontend/src/App.vue b/packages/frontend/src/App.vue
index c2f8b1d..371388c 100644
--- a/packages/frontend/src/App.vue
+++ b/packages/frontend/src/App.vue
@@ -252,17 +252,17 @@ const isElementVisibleAndFocusable = (element: HTMLElement): boolean => {
- {{ t('nav.terminal') }}
- {{ t('nav.proxies') }}
- {{ t('nav.notifications') }}
- {{ t('nav.auditLogs') }}
- {{ t('nav.settings') }}
+ {{ t('nav.terminal') }}
+ {{ t('nav.proxies') }}
+ {{ t('nav.notifications') }}
+ {{ t('nav.auditLogs') }}
+ {{ t('nav.settings') }}
diff --git a/packages/frontend/src/components/StyleCustomizer.vue b/packages/frontend/src/components/StyleCustomizer.vue
index 7fab51b..b4e8f22 100644
--- a/packages/frontend/src/components/StyleCustomizer.vue
+++ b/packages/frontend/src/components/StyleCustomizer.vue
@@ -766,6 +766,14 @@ watch(() => editingTheme.value?.themeData, (newThemeData) => {
}
}, { deep: true }); // 需要 deep watch 来监听 themeData 内部的变化
+// Helper function to safely select text in an input on focus
+const handleFocusAndSelect = (event: FocusEvent) => {
+ const target = event.target;
+ if (target instanceof HTMLInputElement) {
+ target.select();
+ }
+};
+
@@ -798,21 +806,34 @@ watch(() => editingTheme.value?.themeData, (newThemeData) => {
@@ -920,21 +941,34 @@ watch(() => editingTheme.value?.themeData, (newThemeData) => {
@@ -1218,14 +1252,32 @@ section[v-if*="isEditingTheme"] .form-group {
box-sizing: border-box;
transition: border-color 0.2s ease, box-shadow 0.2s ease; /* 添加过渡效果 */
}
-.form-group input[type="color"] {
- padding: 2px;
- height: 34px;
- min-width: 50px;
- max-width: 70px;
- justify-self: start;
- border-radius: 4px; /* 保持圆角一致 */
+.color-input-group {
+ display: flex;
+ align-items: center;
+ gap: 0.5rem; /* Space between color picker and text input */
+ grid-column: 2 / 3; /* Ensure the group stays in the second column */
+ width: 100%; /* Take full width of the column */
}
+.color-picker-input {
+ padding: 2px !important; /* Override general padding */
+ height: 34px !important; /* Match text input height */
+ min-width: 40px !important; /* Slightly smaller */
+ max-width: 50px !important;
+ border-radius: 4px !important;
+ border: 1px solid var(--border-color) !important; /* Add border */
+ flex-shrink: 0; /* Prevent shrinking */
+}
+.color-text-input {
+ flex-grow: 1; /* Allow text input to take remaining space */
+ min-width: 80px; /* Minimum width for text */
+ background-color: var(--header-bg-color) !important; /* Indicate readonly */
+ cursor: text; /* Allow text selection cursor */
+}
+.full-span-input {
+ grid-column: 1 / -1; /* Make non-color inputs span the whole group width */
+}
+
.form-group input:focus, .form-group select:focus {
border-color: var(--link-active-color);
outline: 0;
diff --git a/packages/frontend/src/features/appearance/config/default-themes.ts b/packages/frontend/src/features/appearance/config/default-themes.ts
index af54e2c..8839094 100644
--- a/packages/frontend/src/features/appearance/config/default-themes.ts
+++ b/packages/frontend/src/features/appearance/config/default-themes.ts
@@ -35,6 +35,8 @@ export const defaultUiTheme: Record = {
'--link-color': '#333',
'--link-hover-color': '#0056b3',
'--link-active-color': '#007bff',
+ '--link-active-bg-color': '#e0e0ff', /* Added */
+ '--nav-item-active-bg-color': 'var(--link-active-bg-color)', /* Added */
'--header-bg-color': '#f0f0f0',
'--footer-bg-color': '#f0f0f0',
'--button-bg-color': '#007bff',
@@ -47,6 +49,8 @@ export const defaultUiTheme: Record = {
'--split-line-hover-color': 'var(--border-color)', /* 分割线悬停颜色 */
'--input-focus-border-color': 'var(--link-active-color)', /* 输入框聚焦边框颜色 */
'--input-focus-glow': 'var(--link-active-color)', /* 输入框聚焦光晕值 */
+ '--ssh-tab-active': 'transparent', /* Added SSH Tab Active */
+ '--ssh-tab-background': 'transparent', /* Added SSH Tab Background */
// End added variables
'--font-family-sans-serif': 'sans-serif',
'--base-padding': '1rem',
diff --git a/packages/frontend/src/style.css b/packages/frontend/src/style.css
index 466c4e2..4aa432a 100644
--- a/packages/frontend/src/style.css
+++ b/packages/frontend/src/style.css
@@ -3,15 +3,19 @@
/* Tailwind Theme Variables Mapping */
@theme inline {
/* Base Colors */
- --color-app: var(--app-bg-color);
- --color-text-default: var(--text-color);
+ --color-background: var(--app-bg-color); /* More generic name */
+ --color-foreground: var(--text-color); /* More generic name */
+ --color-app: var(--app-bg-color); /* Keep specific if needed */
+ --color-text-default: var(--text-color); /* Keep specific if needed */
--color-text-secondary: var(--text-color-secondary);
- --color-border-default: var(--border-color);
+ --color-border: var(--border-color); /* Simplified name */
+ --color-border-default: var(--border-color); /* Keep specific if needed */
--color-link: var(--link-color);
--color-link-hover: var(--link-hover-color);
--color-link-active: var(--link-active-color); /* Also used as primary/theme color */
--color-primary: var(--link-active-color); /* Map primary to active link color */
--color-link-active-bg: var(--link-active-bg-color); /* Map active link background */
+ --color-nav-active-bg: var(--nav-item-active-bg-color); /* Map specific nav active background */
/* Component Colors */
--color-header: var(--header-bg-color);
@@ -40,6 +44,7 @@
--link-hover-color: #0056b3; /* 链接悬停颜色 */
--link-active-color: #007bff; /* 激活链接/主题色 */
--link-active-bg-color: #e0e0ff; /* 激活链接背景色 (类似 indigo-50) */
+ --nav-item-active-bg-color: var(--link-active-bg-color); /* 导航选中项背景色, 默认同激活链接背景 */
/* 组件颜色 */
--header-bg-color: #f0f0f0; /* 头部背景色 */
@@ -53,8 +58,8 @@
--split-line-hover-color: var(--border-color); /* 分割线悬停颜色 */
--input-focus-border-color: var(--link-active-color); /* 输入框聚焦边框颜色 */
--input-focus-glow: var(--link-active-color); /* 输入框聚焦光晕值 */
- --ssh-tab-active: none;/* ssh标签激活状态颜色 */
- --ssh-tab-background: none;/* ssh标签背景颜色 */
+ --ssh-tab-active: transparent; /* Corrected value */
+ --ssh-tab-background: transparent; /* Corrected value */
/* 字体 */
--font-family-sans-serif: sans-serif; /* 默认字体 */