主题色
支持 HEX & HSL 表示颜色
style: |
字体
请注意使用字体的版权问题!
系统字体
style: |
字号基准由 root 统一控制:桌面端使用配置值,移动端在此基础上增加 2px;story 布局在当前页面基准上再增加 2px。页面字号基准使用 --fs-content-base,组件字号使用 --fs-content。旧的 style.font-size.body 字段已移除,不再生效。
外部字体
要想引用外部字体,你需要先在 _config.yml 中 inject 引入
举例,引用 Noto Serif SC 在 _config.stellar.yml 中写入
inject: |
并在 _config.stellar.yml 中填写你引入的字体名称
style: |
选择在线字体:
本地字体
若您想引用本地字体,举例,引用得意黑(SmileySans-Oblique.ttf)这个字体,先将字体放置于 blog/source/font/ 目录下,然后改动一下主题文件
@font-face |
font-family 是你引入的字体家族名,src 中填写字体文件相对于 source 文件夹的路径
同样,你需要在 _config.stellar.yml 中填写你引入的字体名称(font-family)
style: |
但是我个人并不推荐引用本地字体,相比于英文字体,中文字体囊括了众多的字符,这也无法避免地导致字体文件体积的增加,如果你想使用自己的字体而找不到在线的字体引入链接,可以自行制作字体的 woff2 切片来减少对网页加载速度的影响。
背景图片
此功能在 1.26.4 中支持,可以设置:纯色/渐变色/图片作为背景。未完全适配,慎用!
style: |
文本对齐方向
style: |
代码块复制
copycode: |
圆角大小
这个功能在 1.18.1 版本后开始支持。
style: |
连续曲率圆角(squircle)
默认开启,将圆角从普通圆弧升级为曲率连续的 squircle 曲线(superellipse(1.25),介于圆弧与完整 squircle 之间),且自动适配任意容器宽高、响应式尺寸与胶囊形按钮。该效果仅 Chromium 139+ 原生支持,其余浏览器自动回退为普通圆角,不影响显示。
style: |
头像、圆点等需要保持正圆的元素不受此配置影响,仍为圆形。
文章列表封面、置顶轮播、页面顶部横幅与{% banner %}标签的背景图覆盖层统一采用「同图模糊层」(filter + mask)实现,以兼容连续曲率圆角(Chromium 的 corner-shape 裁剪与 backdrop-filter 不兼容),并在文字所在边缘常驻黑色渐变蒙版(边缘不透明度约 0.25,垂直中线为 0);hover 时背景图与模糊层同步缓慢放大(scale 1.05)并整体变暗(亮度 75%、饱和度 120%)。
封面/轮播/横幅的图片角落同样跟随该配置:图片 URL 由容器自身背景承载(Chromium 的corner-shape只作用于元素自身背景绘制,不会传递给子图片的 overflow 裁剪),因此角落与其它元素观感一致;Safari/Firefox 不支持corner-shape,自动回退普通圆角。
页面切换过渡
Stellar 默认使用浏览器原生的跨文档 View Transition 平滑衔接同源页面。它不会恢复 PJAX,也不会保留旧页面 DOM;浏览器仍然完整加载新页面,但会在新页面首帧就绪前保留旧页面快照。左侧栏作为独立过渡区域,内容未变化时不会跟随整页闪烁。
style: |
减少动态效果模式会自动关闭过渡。不支持该能力的浏览器、跨域链接、刷新、地址栏导航和页内锚点会保持普通导航,不需要额外兼容配置。
卡片鼠标光效与倾斜
Stellar 可以为文章、笔记、笔记本、Wiki 项目、置顶轮播、专栏列表的最新文章、{% link %} 链接卡片和 {% grid bg:card %} 单元格启用鼠标跟随光斑与轻量 3D 倾斜;Wiki Hero 操作按钮、搜索结果链接及菜单、摘要列表、文档树、链接网格和 dropdown 等标准 UI Collection 条目只启用光斑,不会倾斜。默认关闭:
plugins: |
单个自定义组件也可以复用同一能力:
<div class="card-hover card-hover--spotlight card-hover--tilt"> |
其中 .card-hover 接入通用生命周期,两个修饰类可以按需单独使用;光斑颜色可在组件上用 --card-hover-spotlight-color 覆盖。动态插入组件后可调用 stellar.cardHover.mountAll(root),移除动态容器前可调用 stellar.cardHover.unmountAll(root),销毁全部实例时调用 stellar.cardHover.destroy()。
鼠标离开时,倾斜会立即回正,光斑则停在最后指针位置淡出,不会先闪回卡片中心;完全透明后才会无感复位。键盘聚焦时只显示居中光斑。触屏、非精细指针和系统“减少动态效果”模式下会自动停用动态效果;插件关闭或脚本加载失败时,组合类不会影响链接点击与原有卡片样式。搜索结果仅可点击的章节/摘要链接参与光效,不会倾斜或上浮,链接外的页面标题保持静止。轮播内部切换轨道、专栏标题/描述/归档式文章条目、非 Collection 的侧栏组件、TOC、sites、albums、posters 与 chat 内嵌链接不参与倾斜效果。
页面缓入效果
# 默认关闭 |
此效果会和图片懒加载插件冲突,导致部分卡片和footer可能加载不出来
图片懒加载
# 基础依赖 |
开启 fix_ratio 时,使用 {% image %} 标签的图片会被固定长宽比,防止懒加载时页面高度发生跳变。需要至少先本地运行一次 hexo s 以完成图片比例数据填充。
JS 动态插入的图片(例如置顶内容轮播)会被自动注册到懒加载,无需手动调用更新。
按需加载
主题的资源按需加载,无需额外配置:swiper、fancybox、mermaid 与评论系统的样式/脚本只在页面出现对应元素时加载,main.css 仅包含基础与防闪烁样式;utils、主题切换、数据服务等脚本外置为独立文件并被浏览器缓存,减少每个页面的 HTML 体积。
加载提示
加载动态时间线、动态友链等显示提示
# 默认打开 |
渐变色
这个功能在 1.18.2 版本后开始支持。
您可以在 wiki 项目的封面开始按钮处设置渐变色 CSS 代码
style: |
当然,如果只想设置纯色的话可以直接设置单色,支持 HEX 和 HSL,例如 search: 'hsl(212 16% 98%)'
顶部 tab 栏
这个功能在 1.25.0 版本重构。
site_tree: |
顶部 tab 栏(navbar top)的背景条在页面顶部未滚动/未吸顶时为卡片样式(var(--card) 底色 + 文章卡片同款阴影),页面滚动 2px 后吸顶恢复玻璃效果;回到顶部恢复卡片样式。
置顶内容轮播
置顶内容的展示样式由 article.pin_style 控制,默认 carousel(轮播),可切换为 flat(平铺)。
carousel(默认):所有带顶部 tab 栏的博客类列表页(首页/归档/标签/分类/专栏等)上方自动展示置顶文章轮播,无需开关配置;只要有置顶内容即渲染,自动轮播间隔固定 5000ms,首页第一页列表不再重复展示置顶文章。flat(平铺):博客类列表页不渲染文章轮播;首页第一页文章列表顶部按轮播同款规则展示全部置顶文章(含超出单页切片的老文章),同页不重复;归档/分类/标签/首页第二页起的列表中置顶文章按日期正常出现。
置顶文章判定与排序(两种样式通用):在文章 front-matter 中设置 pin: true|number(兼容 sticky 别名,设置即置顶,数字越大越靠前,true 视作 1,0/负数同样参与,非数字视作 0,权重相同保持原顺序)。
- wiki 列表页展示置顶的 wiki 项目:在项目数据文件(
source/_data/wiki/*.yml)中设置pin: true|number,规则同上。 - wiki 置顶项目始终以轮播展示,不受
article.pin_style影响。 - 轮播区宽高比与非置顶文章统一,由
article.cover_ratio控制(修改该值即可整体调整)。 - 置顶文章卡片为固定「标题 + 一行小字」结构:标题取
title,小字取subtitle>description> excerpt(截断 50 字);文章幻灯片与 wiki 项目幻灯片共用与 hero 卡片同款覆盖层:常驻底部渐变模糊层与黑色渐变蒙版,hover 时背景图与模糊层缓慢放大并变暗;有封面时封面铺满,无封面时为纯白卡片(文字按普通文章颜色)。 - 鼠标悬停轮播区时左右两侧显示翻页按钮(样式同 swiper 导航按钮),点击切换上一张/下一张。
- 没有置顶内容时不渲染;置顶文章卡片不再显示置顶图标(由轮播展示)。
阅读信息与文章标签
文章页顶部横幅第一行右侧可以显示字数和预计阅读时长(默认关闭);文章卡片可以在时间/分类那行小字旁显示标签(标签前缀为 hashtag 图标,最多 5 个,默认关闭);文章页正文结束后、页脚(article-footer)之前默认显示一行本文标签(胶囊样式,点击进入对应标签页):
article: |
三个配置可以独立开关。
AI 成分标签
文章可以在 front-matter 中用 ai_label 字段标记 AI 成分:manual(本文完全由人类完成)、reviewed(已 AI 审核)、polished(已 AI 润色)、generated(由 AI 生成)。未设置 ai_label 时取 article.ai_label.default:为空则不显示,非空(如 manual)则按该档渲染。文章页显示在顶部横幅第一行右侧(阅读时长右侧),为彩色文字(无底色);当文章 banner 含图片时,标签文字使用默认颜色。文章列表卡片不显示该标签。
文案由多语言系统提供(languages/*.yml 的 meta.ai_label.*,随站点语言切换;缺失翻译时标签不渲染),颜色与图标由 article.ai_label 配置,主题提供默认值,可按需覆盖:
article: |
每档可选配 icon(取值同站内图标系统,如 default:shield-user),渲染在标签文案前。自定义文案需修改主题语言文件(languages/*.yml)。
站点地图
页面底部的站点导航,你也可以在 content 中自定义一些文字信息,支持 Markdown 格式。
footer: |
自定义样式
如果要修改样式,您需要删掉主题的样式文件的 CDN 链接,使用本地文件,然后在 themes/stellar/source/css/_custom.styl 中进行修改。
使用其它 highlight.js 代码高亮主题
Hexo 官方有文档:https://hexo.io/docs/syntax-highlight.html#hljs
Tip: When line_number is set to false, wrap is set to false and hljs is set to true, you can then use highlight.js theme directly in your site.
以 atom-one-dark 主题为例,翻译过来就是 _config.yml 找到 highlight 并修改为:
highlight: |
然后再找到 highlightjs_theme 修改 css 链接:
style: |
外部文件注入
在主题配置文件中进行修改 inject.head 以在 <head> 标签末尾处注入代码,修改 inject.script 以在 <body> 标签末尾处注入代码。
inject: |
不蒜子统计插件
直接贴到要显示的地方(支持 markdown 的组件)就行:
footer: |