ForcePilot/web/src/layouts/AppLayout.vue

533 lines
12 KiB
Vue
Raw Normal View History

2024-07-14 16:42:38 +08:00
<script setup>
import { ref, reactive, onMounted, useTemplateRef, computed, provide } from 'vue'
2024-07-14 16:42:38 +08:00
import { RouterLink, RouterView, useRoute } from 'vue-router'
import { GithubOutlined } from '@ant-design/icons-vue'
import { Bot, Waypoints, LibraryBig, BarChart3, CircleCheck } from 'lucide-vue-next';
import { onLongPress } from '@vueuse/core'
2024-07-27 14:32:57 +08:00
import { useConfigStore } from '@/stores/config'
import { useDatabaseStore } from '@/stores/database'
import { useInfoStore } from '@/stores/info'
import { useTaskerStore } from '@/stores/tasker'
import { storeToRefs } from 'pinia'
2025-05-02 23:56:59 +08:00
import UserInfoComponent from '@/components/UserInfoComponent.vue'
import DebugComponent from '@/components/DebugComponent.vue'
import TaskCenterDrawer from '@/components/TaskCenterDrawer.vue'
import SettingsModal from '@/components/SettingsModal.vue'
const configStore = useConfigStore()
const databaseStore = useDatabaseStore()
const infoStore = useInfoStore()
const taskerStore = useTaskerStore()
const { activeCount: activeCountRef, isDrawerOpen } = storeToRefs(taskerStore)
2024-09-24 11:58:28 +08:00
const layoutSettings = reactive({
showDebug: false,
useTopBar: false, // 是否使用顶栏
})
2024-08-25 20:29:24 +08:00
2025-02-26 12:37:06 +08:00
// Add state for GitHub stars
const githubStars = ref(0)
const isLoadingStars = ref(false)
// Add state for debug modal
const showDebugModal = ref(false)
const htmlRefHook = useTemplateRef('htmlRefHook')
// Add state for settings modal
const showSettingsModal = ref(false)
// Provide settings modal methods to child components
const openSettingsModal = () => {
showSettingsModal.value = true
}
// Setup long press for debug modal
onLongPress(
htmlRefHook,
() => {
console.log('long press')
showDebugModal.value = true
},
{
delay: 1000, // 1秒长按
modifiers: {
prevent: true
}
}
)
// Handle debug modal close
const handleDebugModalClose = () => {
showDebugModal.value = false
}
const getRemoteConfig = () => {
2024-10-24 13:09:59 +08:00
configStore.refreshConfig()
}
const getRemoteDatabase = () => {
databaseStore.loadDatabases()
}
2025-02-26 12:37:06 +08:00
// Fetch GitHub stars count
const fetchGithubStars = async () => {
try {
isLoadingStars.value = true
2025-05-02 23:56:59 +08:00
// 公共API可以直接使用fetch
2025-02-26 12:37:06 +08:00
const response = await fetch('https://api.github.com/repos/xerrors/Yuxi-Know')
const data = await response.json()
githubStars.value = data.stargazers_count
} catch (error) {
2025-05-02 23:56:59 +08:00
console.error('获取GitHub stars失败:', error)
2025-02-26 12:37:06 +08:00
} finally {
isLoadingStars.value = false
}
}
onMounted(async () => {
// 加载信息配置
await infoStore.loadInfoConfig()
// 加载其他配置
getRemoteConfig()
getRemoteDatabase()
2025-02-26 12:37:06 +08:00
fetchGithubStars() // Fetch GitHub stars on mount
// 预加载任务数据,确保任务中心打开时有内容
taskerStore.loadTasks()
})
2024-07-14 16:42:38 +08:00
// 打印当前页面的路由信息,使用 vue3 的 setup composition API
const route = useRoute()
console.log(route)
2025-03-25 05:40:07 +08:00
const activeTaskCount = computed(() => activeCountRef.value || 0)
2025-03-25 05:40:07 +08:00
// 下面是导航菜单部分,添加智能体项
const mainList = [{
2025-05-04 21:04:01 +08:00
name: '智能体',
path: '/agent',
icon: Bot,
activeIcon: Bot,
2025-03-25 05:40:07 +08:00
}, {
name: '图谱',
path: '/graph',
icon: Waypoints,
activeIcon: Waypoints,
2025-03-25 05:40:07 +08:00
}, {
name: '知识库',
path: '/database',
icon: LibraryBig,
activeIcon: LibraryBig,
}, {
name: 'Dashboard',
path: '/dashboard',
icon: BarChart3,
activeIcon: BarChart3,
2025-03-25 05:40:07 +08:00
}
]
// Provide settings modal methods to child components
provide('settingsModal', {
openSettingsModal
})
2024-07-14 16:42:38 +08:00
</script>
<template>
2024-09-24 11:58:28 +08:00
<div class="app-layout" :class="{ 'use-top-bar': layoutSettings.useTopBar }">
<div class="header" :class="{ 'top-bar': layoutSettings.useTopBar }">
2024-11-14 20:07:49 +08:00
<div class="logo circle">
2024-09-24 11:58:28 +08:00
<router-link to="/">
<img :src="infoStore.organization.avatar">
2024-09-24 11:58:28 +08:00
</router-link>
2024-07-14 16:42:38 +08:00
</div>
<div class="nav">
2025-03-25 05:40:07 +08:00
<!-- 使用mainList渲染导航项 -->
<RouterLink
2025-03-25 05:40:07 +08:00
v-for="(item, index) in mainList"
:key="index"
:to="item.path"
v-show="!item.hidden"
class="nav-item"
active-class="active">
<a-tooltip placement="right">
<template #title>{{ item.name }}</template>
<component class="icon" :is="route.path.startsWith(item.path) ? item.activeIcon : item.icon" size="22"/>
</a-tooltip>
</RouterLink>
<div
class="nav-item task-center"
:class="{ active: isDrawerOpen }"
@click="taskerStore.openDrawer()"
>
<a-tooltip placement="right">
<template #title>任务中心</template>
<a-badge
:count="activeTaskCount"
:overflow-count="99"
class="task-center-badge"
size="small"
>
<CircleCheck class="icon" size="22" />
</a-badge>
</a-tooltip>
</div>
2024-07-14 16:42:38 +08:00
</div>
<div
ref="htmlRefHook"
class="fill debug-trigger"
></div>
2024-07-27 14:32:57 +08:00
<div class="github nav-item">
2025-04-01 00:39:54 +08:00
<a-tooltip placement="right">
<template #title>欢迎 Star</template>
2025-04-01 00:39:54 +08:00
<a href="https://github.com/xerrors/Yuxi-Know" target="_blank" class="github-link">
Add dark/light theme toggle feature (#343) * Add dark/light theme toggle feature * update: refine dark/light theme and related components * 调整语义化主题变量,优化暗/亮模式切换效果 * Revert "调整语义化主题变量,优化暗/亮模式切换效果" This reverts commit 85d9373297686fdbacb252a880b2847d20a39641. * 深色模式适配:减少 !important,迁移 CSS 变量,优化布局 * style: 替换硬编码颜色值为CSS变量以支持主题切换 将多处硬编码的颜色值(如#fff、#f0f0f0等)替换为CSS变量(如--gray-0、--gray-150等),统一管理颜色样式,便于主题切换和样式维护。主要修改包括背景色、边框色、文字色等视觉元素,同时移除不再需要的深色模式适配代码。 * style: 使用CSS变量替换硬编码颜色值 * refactor(theme): 重构主题系统,统一使用CSS变量并优化暗色模式实现 - 移除冗余的theme.js配置文件,将主题配置集中到theme store - 使用ant-design-vue的darkAlgorithm实现暗色模式 - 在多个组件中替换硬编码颜色值为CSS变量 - 优化用户信息组件,整合文档中心和主题切换功能 - 更新基础CSS样式,完善颜色系统和滚动条样式 * reset: 恢复被覆盖的修改(96d257a7ace38c94e2b113d56472d211d1141087) * feat(theme): 实现深色主题支持并重构样式系统 重构颜色变量系统,添加深色主题支持 移除硬编码颜色值,统一使用CSS变量 优化图表组件以响应主题切换 清理无用样式代码,提升可维护性 * docs: 更新开发规范文档 * style: 调整边框和背景颜色样式 --------- Co-authored-by: Wenjie Zhang <xerrors@163.com>
2025-11-23 01:39:44 +08:00
<GithubOutlined class="icon" />
2025-04-01 00:39:54 +08:00
<span v-if="githubStars > 0" class="github-stars">
2025-05-04 21:04:01 +08:00
<span class="star-count">{{ (githubStars / 1000).toFixed(1) }}k</span>
2025-04-01 00:39:54 +08:00
</span>
</a>
</a-tooltip>
</div>
<!-- 用户信息组件 -->
<div class="nav-item user-info">
<UserInfoComponent />
</div>
</div>
2024-09-14 02:46:21 +08:00
<router-view v-slot="{ Component, route }" id="app-router-view">
<keep-alive v-if="route.meta.keepAlive !== false">
2024-07-14 16:42:38 +08:00
<component :is="Component" />
</keep-alive>
2024-09-14 02:46:21 +08:00
<component :is="Component" v-else />
2024-07-14 16:42:38 +08:00
</router-view>
<!-- Debug Modal -->
<a-modal
v-model:open="showDebugModal"
title="调试面板"
width="90%"
:footer="null"
@cancel="handleDebugModalClose"
:maskClosable="true"
:destroyOnClose="true"
class="debug-modal"
>
<DebugComponent />
</a-modal>
<TaskCenterDrawer />
<SettingsModal
v-model:visible="showSettingsModal"
@close="() => showSettingsModal = false"
/>
2024-07-14 16:42:38 +08:00
</div>
</template>
<style lang="less" scoped>
// Less 变量定义
@header-width: 50px;
2025-04-15 12:39:46 +08:00
2024-07-14 16:42:38 +08:00
.app-layout {
display: flex;
flex-direction: row;
width: 100%;
height: 100vh;
min-width: var(--min-width);
2024-07-27 14:32:57 +08:00
2024-08-25 20:29:24 +08:00
.debug-panel {
position: absolute;
z-index: 100;
right: 0;
2024-09-01 21:14:23 +08:00
bottom: 50px;
border-radius: 20px 0 0 20px;
2024-08-25 20:29:24 +08:00
cursor: pointer;
}
2024-07-14 16:42:38 +08:00
}
div.header, #app-router-view {
height: 100%;
max-width: 100%;
2024-09-14 02:46:21 +08:00
user-select: none;
2024-07-14 16:42:38 +08:00
}
#app-router-view {
flex: 1 1 auto;
overflow-y: auto;
}
.header {
display: flex;
flex-direction: column;
flex: 0 0 @header-width;
2024-07-14 16:42:38 +08:00
justify-content: flex-start;
align-items: center;
background-color: var(--main-0);
2024-07-14 16:42:38 +08:00
height: 100%;
width: @header-width;
border-right: 1px solid var(--gray-100);
2024-07-14 16:42:38 +08:00
.nav {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
position: relative;
// height: 45px;
gap: 16px;
}
// 添加debug触发器样式
.debug-trigger {
position: relative;
height: 100%;
width: 100%;
min-height: 20px;
flex-grow: 1;
}
.logo {
width: 34px;
height: 34px;
margin: 6px 0 20px 0;
2024-07-14 16:42:38 +08:00
img {
width: 100%;
height: 100%;
2024-11-23 11:14:26 +08:00
border-radius: 4px; // 50% for circle
2024-07-14 16:42:38 +08:00
}
& > a {
text-decoration: none;
font-size: 24px;
font-weight: bold;
Add dark/light theme toggle feature (#343) * Add dark/light theme toggle feature * update: refine dark/light theme and related components * 调整语义化主题变量,优化暗/亮模式切换效果 * Revert "调整语义化主题变量,优化暗/亮模式切换效果" This reverts commit 85d9373297686fdbacb252a880b2847d20a39641. * 深色模式适配:减少 !important,迁移 CSS 变量,优化布局 * style: 替换硬编码颜色值为CSS变量以支持主题切换 将多处硬编码的颜色值(如#fff、#f0f0f0等)替换为CSS变量(如--gray-0、--gray-150等),统一管理颜色样式,便于主题切换和样式维护。主要修改包括背景色、边框色、文字色等视觉元素,同时移除不再需要的深色模式适配代码。 * style: 使用CSS变量替换硬编码颜色值 * refactor(theme): 重构主题系统,统一使用CSS变量并优化暗色模式实现 - 移除冗余的theme.js配置文件,将主题配置集中到theme store - 使用ant-design-vue的darkAlgorithm实现暗色模式 - 在多个组件中替换硬编码颜色值为CSS变量 - 优化用户信息组件,整合文档中心和主题切换功能 - 更新基础CSS样式,完善颜色系统和滚动条样式 * reset: 恢复被覆盖的修改(96d257a7ace38c94e2b113d56472d211d1141087) * feat(theme): 实现深色主题支持并重构样式系统 重构颜色变量系统,添加深色主题支持 移除硬编码颜色值,统一使用CSS变量 优化图表组件以响应主题切换 清理无用样式代码,提升可维护性 * docs: 更新开发规范文档 * style: 调整边框和背景颜色样式 --------- Co-authored-by: Wenjie Zhang <xerrors@163.com>
2025-11-23 01:39:44 +08:00
color: var(--gray-900);
2024-07-14 16:42:38 +08:00
}
}
2024-07-16 18:14:27 +08:00
.nav-item {
2024-09-14 02:46:21 +08:00
display: flex;
align-items: center;
justify-content: center;
width: 36px;
height: 36px;
padding: 4px;
2024-09-14 02:46:21 +08:00
border: 1px solid transparent;
border-radius: 12px;
background-color: transparent;
Add dark/light theme toggle feature (#343) * Add dark/light theme toggle feature * update: refine dark/light theme and related components * 调整语义化主题变量,优化暗/亮模式切换效果 * Revert "调整语义化主题变量,优化暗/亮模式切换效果" This reverts commit 85d9373297686fdbacb252a880b2847d20a39641. * 深色模式适配:减少 !important,迁移 CSS 变量,优化布局 * style: 替换硬编码颜色值为CSS变量以支持主题切换 将多处硬编码的颜色值(如#fff、#f0f0f0等)替换为CSS变量(如--gray-0、--gray-150等),统一管理颜色样式,便于主题切换和样式维护。主要修改包括背景色、边框色、文字色等视觉元素,同时移除不再需要的深色模式适配代码。 * style: 使用CSS变量替换硬编码颜色值 * refactor(theme): 重构主题系统,统一使用CSS变量并优化暗色模式实现 - 移除冗余的theme.js配置文件,将主题配置集中到theme store - 使用ant-design-vue的darkAlgorithm实现暗色模式 - 在多个组件中替换硬编码颜色值为CSS变量 - 优化用户信息组件,整合文档中心和主题切换功能 - 更新基础CSS样式,完善颜色系统和滚动条样式 * reset: 恢复被覆盖的修改(96d257a7ace38c94e2b113d56472d211d1141087) * feat(theme): 实现深色主题支持并重构样式系统 重构颜色变量系统,添加深色主题支持 移除硬编码颜色值,统一使用CSS变量 优化图表组件以响应主题切换 清理无用样式代码,提升可维护性 * docs: 更新开发规范文档 * style: 调整边框和背景颜色样式 --------- Co-authored-by: Wenjie Zhang <xerrors@163.com>
2025-11-23 01:39:44 +08:00
color: var(--gray-1000);
font-size: 20px;
Add dark/light theme toggle feature (#343) * Add dark/light theme toggle feature * update: refine dark/light theme and related components * 调整语义化主题变量,优化暗/亮模式切换效果 * Revert "调整语义化主题变量,优化暗/亮模式切换效果" This reverts commit 85d9373297686fdbacb252a880b2847d20a39641. * 深色模式适配:减少 !important,迁移 CSS 变量,优化布局 * style: 替换硬编码颜色值为CSS变量以支持主题切换 将多处硬编码的颜色值(如#fff、#f0f0f0等)替换为CSS变量(如--gray-0、--gray-150等),统一管理颜色样式,便于主题切换和样式维护。主要修改包括背景色、边框色、文字色等视觉元素,同时移除不再需要的深色模式适配代码。 * style: 使用CSS变量替换硬编码颜色值 * refactor(theme): 重构主题系统,统一使用CSS变量并优化暗色模式实现 - 移除冗余的theme.js配置文件,将主题配置集中到theme store - 使用ant-design-vue的darkAlgorithm实现暗色模式 - 在多个组件中替换硬编码颜色值为CSS变量 - 优化用户信息组件,整合文档中心和主题切换功能 - 更新基础CSS样式,完善颜色系统和滚动条样式 * reset: 恢复被覆盖的修改(96d257a7ace38c94e2b113d56472d211d1141087) * feat(theme): 实现深色主题支持并重构样式系统 重构颜色变量系统,添加深色主题支持 移除硬编码颜色值,统一使用CSS变量 优化图表组件以响应主题切换 清理无用样式代码,提升可维护性 * docs: 更新开发规范文档 * style: 调整边框和背景颜色样式 --------- Co-authored-by: Wenjie Zhang <xerrors@163.com>
2025-11-23 01:39:44 +08:00
transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out;
2025-04-15 12:39:46 +08:00
margin: 0;
2024-09-14 02:46:21 +08:00
text-decoration: none;
cursor: pointer;
outline: none;
& > svg:focus {
outline: none;
}
& > svg:focus-visible {
outline: none;
}
&.active {
Add dark/light theme toggle feature (#343) * Add dark/light theme toggle feature * update: refine dark/light theme and related components * 调整语义化主题变量,优化暗/亮模式切换效果 * Revert "调整语义化主题变量,优化暗/亮模式切换效果" This reverts commit 85d9373297686fdbacb252a880b2847d20a39641. * 深色模式适配:减少 !important,迁移 CSS 变量,优化布局 * style: 替换硬编码颜色值为CSS变量以支持主题切换 将多处硬编码的颜色值(如#fff、#f0f0f0等)替换为CSS变量(如--gray-0、--gray-150等),统一管理颜色样式,便于主题切换和样式维护。主要修改包括背景色、边框色、文字色等视觉元素,同时移除不再需要的深色模式适配代码。 * style: 使用CSS变量替换硬编码颜色值 * refactor(theme): 重构主题系统,统一使用CSS变量并优化暗色模式实现 - 移除冗余的theme.js配置文件,将主题配置集中到theme store - 使用ant-design-vue的darkAlgorithm实现暗色模式 - 在多个组件中替换硬编码颜色值为CSS变量 - 优化用户信息组件,整合文档中心和主题切换功能 - 更新基础CSS样式,完善颜色系统和滚动条样式 * reset: 恢复被覆盖的修改(96d257a7ace38c94e2b113d56472d211d1141087) * feat(theme): 实现深色主题支持并重构样式系统 重构颜色变量系统,添加深色主题支持 移除硬编码颜色值,统一使用CSS变量 优化图表组件以响应主题切换 清理无用样式代码,提升可维护性 * docs: 更新开发规范文档 * style: 调整边框和背景颜色样式 --------- Co-authored-by: Wenjie Zhang <xerrors@163.com>
2025-11-23 01:39:44 +08:00
background-color: var(--gray-100);
font-weight: bold;
color: var(--main-color);
}
&.warning {
color: var(--color-error-500);
}
&:hover {
color: var(--main-color);
}
2024-09-14 02:46:21 +08:00
&.github {
padding: 10px 12px;
margin-bottom: 16px;
2024-09-24 11:58:28 +08:00
&:hover {
background-color: transparent;
border: 1px solid transparent;
}
2025-02-26 12:37:06 +08:00
.github-link {
display: flex;
flex-direction: column;
align-items: center;
color: inherit;
}
.github-stars {
display: flex;
align-items: center;
font-size: 12px;
margin-top: 4px;
.star-icon {
color: var(--color-warning-500);
2025-02-26 12:37:06 +08:00
font-size: 12px;
margin-right: 2px;
}
.star-count {
font-weight: 600;
}
}
2024-09-14 02:46:21 +08:00
}
2025-04-01 00:39:54 +08:00
&.api-docs {
padding: 10px 12px;
}
Add dark/light theme toggle feature (#343) * Add dark/light theme toggle feature * update: refine dark/light theme and related components * 调整语义化主题变量,优化暗/亮模式切换效果 * Revert "调整语义化主题变量,优化暗/亮模式切换效果" This reverts commit 85d9373297686fdbacb252a880b2847d20a39641. * 深色模式适配:减少 !important,迁移 CSS 变量,优化布局 * style: 替换硬编码颜色值为CSS变量以支持主题切换 将多处硬编码的颜色值(如#fff、#f0f0f0等)替换为CSS变量(如--gray-0、--gray-150等),统一管理颜色样式,便于主题切换和样式维护。主要修改包括背景色、边框色、文字色等视觉元素,同时移除不再需要的深色模式适配代码。 * style: 使用CSS变量替换硬编码颜色值 * refactor(theme): 重构主题系统,统一使用CSS变量并优化暗色模式实现 - 移除冗余的theme.js配置文件,将主题配置集中到theme store - 使用ant-design-vue的darkAlgorithm实现暗色模式 - 在多个组件中替换硬编码颜色值为CSS变量 - 优化用户信息组件,整合文档中心和主题切换功能 - 更新基础CSS样式,完善颜色系统和滚动条样式 * reset: 恢复被覆盖的修改(96d257a7ace38c94e2b113d56472d211d1141087) * feat(theme): 实现深色主题支持并重构样式系统 重构颜色变量系统,添加深色主题支持 移除硬编码颜色值,统一使用CSS变量 优化图表组件以响应主题切换 清理无用样式代码,提升可维护性 * docs: 更新开发规范文档 * style: 调整边框和背景颜色样式 --------- Co-authored-by: Wenjie Zhang <xerrors@163.com>
2025-11-23 01:39:44 +08:00
&.docs { display: none; }
&.task-center {
.task-center-badge {
width: 100%;
display: flex;
justify-content: center;
}
}
Add dark/light theme toggle feature (#343) * Add dark/light theme toggle feature * update: refine dark/light theme and related components * 调整语义化主题变量,优化暗/亮模式切换效果 * Revert "调整语义化主题变量,优化暗/亮模式切换效果" This reverts commit 85d9373297686fdbacb252a880b2847d20a39641. * 深色模式适配:减少 !important,迁移 CSS 变量,优化布局 * style: 替换硬编码颜色值为CSS变量以支持主题切换 将多处硬编码的颜色值(如#fff、#f0f0f0等)替换为CSS变量(如--gray-0、--gray-150等),统一管理颜色样式,便于主题切换和样式维护。主要修改包括背景色、边框色、文字色等视觉元素,同时移除不再需要的深色模式适配代码。 * style: 使用CSS变量替换硬编码颜色值 * refactor(theme): 重构主题系统,统一使用CSS变量并优化暗色模式实现 - 移除冗余的theme.js配置文件,将主题配置集中到theme store - 使用ant-design-vue的darkAlgorithm实现暗色模式 - 在多个组件中替换硬编码颜色值为CSS变量 - 优化用户信息组件,整合文档中心和主题切换功能 - 更新基础CSS样式,完善颜色系统和滚动条样式 * reset: 恢复被覆盖的修改(96d257a7ace38c94e2b113d56472d211d1141087) * feat(theme): 实现深色主题支持并重构样式系统 重构颜色变量系统,添加深色主题支持 移除硬编码颜色值,统一使用CSS变量 优化图表组件以响应主题切换 清理无用样式代码,提升可维护性 * docs: 更新开发规范文档 * style: 调整边框和背景颜色样式 --------- Co-authored-by: Wenjie Zhang <xerrors@163.com>
2025-11-23 01:39:44 +08:00
&.theme-toggle-nav {
.theme-toggle-icon {
display: flex;
align-items: center;
justify-content: center;
width: 100%;
height: 100%;
cursor: pointer;
color: var(--gray-1000);
transition: color 0.2s ease-in-out;
&:hover {
color: var(--main-color);
}
}
}
&.user-info {
margin-bottom: 8px;
2024-09-14 02:46:21 +08:00
}
2024-07-14 16:42:38 +08:00
}
2024-07-27 14:32:57 +08:00
}
2024-07-14 16:42:38 +08:00
2024-09-24 11:58:28 +08:00
.app-layout.use-top-bar {
flex-direction: column;
}
.header.top-bar {
flex-direction: row;
flex: 0 0 50px;
width: 100%;
height: 50px;
border-right: none;
border-bottom: 1px solid var(--main-40);
background-color: var(--main-20);
2024-09-24 11:58:28 +08:00
padding: 0 20px;
gap: 24px;
.logo {
width: fit-content;
height: 28px;
margin-right: 16px;
display: flex;
align-items: center;
a {
display: flex;
align-items: center;
text-decoration: none;
color: inherit;
}
img {
width: 28px;
height: 28px;
margin-right: 8px;
}
}
.nav {
flex-direction: row;
height: auto;
gap: 20px;
}
.nav-item {
flex-direction: row;
width: auto;
padding: 4px 16px;
margin: 0;
.icon {
margin-right: 8px;
font-size: 15px; // 减小图标大小
border: none;
outline: none;
&:focus, &:active {
border: none;
outline: none;
}
2024-09-24 11:58:28 +08:00
}
.text {
margin-top: 0;
font-size: 15px;
}
&.github {
2024-09-24 11:58:28 +08:00
padding: 8px 12px;
.icon {
margin-right: 0;
font-size: 18px;
}
&.active {
color: var(--main-color);
2024-09-24 11:58:28 +08:00
}
a {
display: flex;
align-items: center;
}
2025-02-26 12:37:06 +08:00
.github-stars {
display: flex;
align-items: center;
margin-left: 6px;
.star-icon {
color: var(--color-warning-500);
2025-02-26 12:37:06 +08:00
font-size: 14px;
margin-right: 2px;
}
}
2024-09-24 11:58:28 +08:00
}
Add dark/light theme toggle feature (#343) * Add dark/light theme toggle feature * update: refine dark/light theme and related components * 调整语义化主题变量,优化暗/亮模式切换效果 * Revert "调整语义化主题变量,优化暗/亮模式切换效果" This reverts commit 85d9373297686fdbacb252a880b2847d20a39641. * 深色模式适配:减少 !important,迁移 CSS 变量,优化布局 * style: 替换硬编码颜色值为CSS变量以支持主题切换 将多处硬编码的颜色值(如#fff、#f0f0f0等)替换为CSS变量(如--gray-0、--gray-150等),统一管理颜色样式,便于主题切换和样式维护。主要修改包括背景色、边框色、文字色等视觉元素,同时移除不再需要的深色模式适配代码。 * style: 使用CSS变量替换硬编码颜色值 * refactor(theme): 重构主题系统,统一使用CSS变量并优化暗色模式实现 - 移除冗余的theme.js配置文件,将主题配置集中到theme store - 使用ant-design-vue的darkAlgorithm实现暗色模式 - 在多个组件中替换硬编码颜色值为CSS变量 - 优化用户信息组件,整合文档中心和主题切换功能 - 更新基础CSS样式,完善颜色系统和滚动条样式 * reset: 恢复被覆盖的修改(96d257a7ace38c94e2b113d56472d211d1141087) * feat(theme): 实现深色主题支持并重构样式系统 重构颜色变量系统,添加深色主题支持 移除硬编码颜色值,统一使用CSS变量 优化图表组件以响应主题切换 清理无用样式代码,提升可维护性 * docs: 更新开发规范文档 * style: 调整边框和背景颜色样式 --------- Co-authored-by: Wenjie Zhang <xerrors@163.com>
2025-11-23 01:39:44 +08:00
&.theme-toggle-nav {
padding: 8px 12px;
.theme-toggle-icon {
display: flex;
align-items: center;
justify-content: center;
color: var(--gray-1000);
transition: color 0.2s ease-in-out;
cursor: pointer;
&:hover {
color: var(--main-color);
}
}
&.active {
.theme-toggle-icon {
color: var(--main-color);
}
}
}
2024-09-24 11:58:28 +08:00
}
}
</style>