我们为什么需要一个新主题?
2026 年,Hugo 生态里已经有数百个主题。但翻开它们,大多数长着同一张脸:左侧导航、白色背景、蓝色链接。它们很好,只是不够——不够让每一次打开博客变成一种期待。
我想要的是,每次打开页面时,像推开一扇通往另一个世界的门。
于是有了幻梦。
名字的由来
“幻梦”——既是"梦幻",也是"幻觉"。前者是视觉追求,后者是一种自嘲:在短视频称王的时代,还在认真做一个博客主题,大概确实是一种幻觉。
但总有人还愿意读长文,还喜欢在深夜里对着代码发呆,还会为一个毛玻璃效果的模糊半径纠结半小时。这个主题就是为他们做的。
三个核心问题
在设计幻梦的过程中,我反复问自己三个问题:
1. 阅读体验能有多沉浸?
答案藏在细节里:暖色调的浅色模式让长时间阅读不刺眼,深色模式减少蓝光,合适的行高和字间距让中文排版不再拥挤,JetBrains Mono 让代码块赏心悦目。
2. 技术实现能有多优雅?
一个 data/theme.yaml 管理所有页面内容,一个 main.scss 承载全部样式设计,一个 main.ts 驱动所有交互逻辑。没有复杂的构建工具链,没有数百个 npm 依赖。Hugo 原生的 Dart Sass 编译和 js.Build 就足够了。
3. 交互能有多有趣?
Canvas 粒子系统昼夜自动切换——白天是缤纷的糖果雨,夜里是静谧的星空和萤火虫。卡片会跟随鼠标微微倾斜。滚动时元素优雅地淡入。这些不是花里胡哨,是让你在浏览时嘴角微微上扬的小惊喜。
技术选型
// 幻梦的技术栈极其克制
const stack = {
generator: "Hugo (Go templates)",
styling: "SCSS → Hugo Dart Sass (~6200 lines)",
scripting: "TypeScript → Hugo js.Build (~1800 lines)",
animation: "AOS.js + Typed.js (CDN, local fallback)",
icons: "Font Awesome 6 (CDN, auto-fallback)",
fonts: "Inter + Noto Sans SC + JetBrains Mono",
dependencies: 0 // 零 npm 依赖
};
没有 React、没有 Vue、没有 Webpack。一个 Hugo 主题就该是 Hugo 的样子。
不止是一个主题
幻梦配备了完整的页面体系:关于页的个人介绍和数据统计,技能页的进度条和时间线,友链页的卡片网格和申请表单,工具页的分类推荐,归档页的年月分组导航。
每一个页面都由 data/theme.yaml 驱动,修改一个 YAML 文件就能定制整站。
开源与后续
幻梦以 GPL v3.0 协议开源。接下来的计划:完善英文翻译、接入评论系统、优化移动端体验、降低首次加载时间。
如果你喜欢这个主题,欢迎 star、fork、提 issue。更欢迎你把它变成你自己的样子——毕竟,每一个博客都该有自己的个性。
这个主题叫"幻梦",希望它能让你在数字世界里,做一个温柔的梦。
评论