告别千篇一律:BongoCat个性化主题定制全攻略
你是否厌倦了单调的界面样式?想让陪伴你工作的BongoCat更加贴合个人风格?本文将带你深入探索BongoCat的主题定制功能,从基础的深色/浅色模式切换,到高级的自定义模型替换,让每一次键盘敲击都成为视觉享受。读完本文,你将掌握主题变量修改、模式切换和个性化外观定制的全部技巧。
主题模式基础:明暗随心切换
BongoCat提供三种主题模式供选择,满足不同场景下的视觉需求。系统默认采用跟随系统的自动模式,也可手动切换至浅色或深色模式。主题切换功能由src/pages/preference/components/general/components/theme-mode/index.vue组件实现,通过与Tauri窗口API交互实现系统级主题同步。
主题切换实现原理
主题切换的核心逻辑位于src/composables/useThemeVars.ts文件中,通过Ant Design Vue的主题算法生成颜色变量:
const colors = [
defaultAlgorithm(token), // 浅色模式配色
darkAlgorithm(token), // 深色模式配色
]
for (const [index, item] of colors.entries()) {
const isDark = index !== 0
const vars: Record<string, any> = {}
for (const [key, value] of Object.entries(item)) {
vars[`--ant-${kebabCase(key)}`] = value
}
const style = document.createElement('style')
style.dataset.theme = isDark ? 'dark' : 'light'
const selector = isDark ? 'html.dark' : ':root'
const values = Object.entries(vars).map(([key, value]) => `${key}: ${value};`)
style.innerHTML = `${selector}{\n${values.join('\n')}\n}`
document.head.appendChild(style)
}
这段代码生成了两套CSS变量(浅色和深色),并通过添加/移除dark类名实现模式切换。状态管理则通过src/stores/general.ts中的Pinia存储实现:
const appearance = reactive<GeneralStore['appearance']>({
theme: 'auto', // 'auto' | 'light' | 'dark'
isDark: false, // 当前是否为深色模式
})
高级定制:从主题变量到个性化外观
主题变量自定义
BongoCat使用CSS变量系统实现主题定制,所有可定制的变量定义在src/composables/useThemeVars.ts中。通过修改这些变量,可以实现界面元素颜色、大小、边框等样式的全面调整。主要可定制的变量类别包括:
- 基础颜色:
--ant-primary-color、--ant-secondary-color等 - 背景色:
--ant-bg-color、--ant-bg-color-secondary等 - 文本颜色:
--ant-text-color、--ant-text-color-secondary等 - 边框样式:
--ant-border-radius、--ant-border-color等
要自定义主题变量,只需在全局样式表src/assets/css/global.scss中重写这些变量即可。
模型个性化:更换你的Bongo Cat
除了颜色主题,BongoCat还支持更换不同风格的猫咪模型。系统默认提供三种预设模型:标准模式、键盘模式和游戏手柄模式,分别位于以下路径:
- 标准模式:src-tauri/assets/models/standard/
- 键盘模式:src-tauri/assets/models/keyboard/
- 游戏手柄模式:src-tauri/assets/models/gamepad/
模型选择界面由src/pages/preference/components/model/index.vue实现,支持模型预览、选择和删除操作。每个模型包含纹理图片、动作定义和表情配置等资源文件,结构如下:
model-folder/
├── cat.model3.json # 模型定义文件
├── demomodel.moc3 # 模型数据文件
├── resources/ # 资源文件夹
│ └── cover.png # 模型封面图
├── texture_00.png # 纹理图片
└── ...其他动作和表情文件
添加自定义模型
要添加自定义模型,只需点击模型设置页面的上传按钮,选择包含完整模型文件的文件夹即可。上传组件src/pages/preference/components/model/components/upload/index.vue会自动处理模型文件的验证和导入。
自定义模型需要满足以下要求:
- 必须包含
cat.model3.json定义文件 - 必须包含
demomodel.moc3模型数据文件 - 资源文件夹中必须包含
cover.png封面图片 - 所有纹理和动作文件路径必须正确配置
主题定制流程图解
以下是BongoCat主题定制的完整流程:
graph TD
A[打开设置界面] --> B[进入外观设置]
B --> C{选择主题模式}
C -->|自动| D[跟随系统主题变化]
C -->|浅色| E[应用浅色主题变量]
C -->|深色| F[应用深色主题变量]
B --> G[进入模型设置]
G --> H[浏览预设模型]
H --> I[选择并应用模型]
G --> J[上传自定义模型]
J --> K[验证模型文件]
K --> L[导入并应用新模型]
总结与进阶技巧
通过本文介绍的方法,你已经可以轻松定制BongoCat的主题颜色和外观模型。以下是一些进阶技巧,帮助你打造更具个性的BongoCat:
-
主题同步:BongoCat的主题设置会与系统主题自动同步,确保在不同应用间保持一致的视觉体验。
-
模型混合搭配:尝试将不同模型的纹理和动作文件混合搭配,创造独一无二的猫咪形象。
-
动态主题:通过修改src/composables/useThemeVars.ts中的
generateColorVars函数,可以实现根据时间或系统状态自动切换主题的动态效果。 -
主题分享:自定义的主题变量可以导出为SCSS变量文件,分享给其他BongoCat用户。
现在,开始你的BongoCat个性化之旅吧!每一次键盘敲击,都能看到专属于你的可爱猫咪陪伴,让工作和学习变得更加愉悦。
Kimi-K2.5Kimi K2.5 是一款开源的原生多模态智能体模型,它在 Kimi-K2-Base 的基础上,通过对约 15 万亿混合视觉和文本 tokens 进行持续预训练构建而成。该模型将视觉与语言理解、高级智能体能力、即时模式与思考模式,以及对话式与智能体范式无缝融合。Python00
GLM-4.7-FlashGLM-4.7-Flash 是一款 30B-A3B MoE 模型。作为 30B 级别中的佼佼者,GLM-4.7-Flash 为追求性能与效率平衡的轻量化部署提供了全新选择。Jinja00
VLOOKVLOOK™ 是优雅好用的 Typora/Markdown 主题包和增强插件。 VLOOK™ is an elegant and practical THEME PACKAGE × ENHANCEMENT PLUGIN for Typora/Markdown.Less00
PaddleOCR-VL-1.5PaddleOCR-VL-1.5 是 PaddleOCR-VL 的新一代进阶模型,在 OmniDocBench v1.5 上实现了 94.5% 的全新 state-of-the-art 准确率。 为了严格评估模型在真实物理畸变下的鲁棒性——包括扫描伪影、倾斜、扭曲、屏幕拍摄和光照变化——我们提出了 Real5-OmniDocBench 基准测试集。实验结果表明,该增强模型在新构建的基准测试集上达到了 SOTA 性能。此外,我们通过整合印章识别和文本检测识别(text spotting)任务扩展了模型的能力,同时保持 0.9B 的超紧凑 VLM 规模,具备高效率特性。Python00
KuiklyUI基于KMP技术的高性能、全平台开发框架,具备统一代码库、极致易用性和动态灵活性。 Provide a high-performance, full-platform development framework with unified codebase, ultimate ease of use, and dynamic flexibility. 注意:本仓库为Github仓库镜像,PR或Issue请移步至Github发起,感谢支持!Kotlin07
compass-metrics-modelMetrics model project for the OSS CompassPython00