CSS

自定义样式表

在项目的 .moss/theme/ 目录下创建 style.css(moss 在你打开文件夹时会自动创建 .moss/theme/)。moss 在默认主题之后加载它,你的规则会覆盖默认值。

my-site/
├── .moss/
│   └── theme/
│       └── style.css   ← 自定义 CSS 放在这里
├── index.md
└── ...
:root {
  --moss-color-accent: #2d5a2d;
  --moss-font-body: "Inter", -apple-system, sans-serif;
  --moss-content-width: 72ch;
}

不需要构建步骤,不需要配置。文件自动加载。

自托管字体

.woff2 文件放在 .moss/theme/fonts/ 下,在 style.css 中用 @font-face { src: url('fonts/myfont.woff2') } 引用。.moss/theme/ 目录作为站点根目录的兄弟目录对外提供。

变量

字体

变量默认值说明
--moss-font-body系统无衬线字体栈正文字体
--moss-font-heading继承正文标题字体
--moss-font-monoui-monospace, SFMono-Regular代码字体
--moss-font-serifIowan Old Style, 衬线字体栈衬线字体(配合字体切换使用)
--moss-font-size-base1.125rem基准字号
--moss-font-weight320默认字重

颜色

变量默认值说明
--moss-color-accent#2d5a2d链接、高亮、强调元素
--moss-color-bg#faf8f5页面背景色
--moss-color-text#2c2825主文字色
--moss-color-muted#8a8580次要/弱化文字色
--moss-color-surface#f4f1ec卡片和表面背景色

布局

变量默认值说明
--moss-content-width67ch内容最大宽度
--moss-content-width-sidebar62ch侧边栏激活时的内容宽度
--moss-nav-widthvar(--moss-content-width)导航栏和页脚最大宽度
--moss-sidebar-width280px侧边栏宽度
--moss-site-max-width1200px站点整体最大宽度
--moss-container-paddingclamp(1rem, 5vw, 2rem)容器两侧内边距

间距

变量默认值说明
--moss-space-xs0.5rem超小(8px)
--moss-space-sm1rem小(16px)
--moss-space-md1.5rem中(24px)
--moss-space-lg2rem大(32px)
--moss-space-xl3rem超大(48px)
--moss-space-2xl4rem特大(64px)

深色模式

深色模式自动跟随系统设置。用以下选择器自定义深色模式配色:

[data-theme="dark"] {
  --moss-color-bg: #0f0f0f;
  --moss-color-accent: #6abf6a;
}

组件类名

自动生成的组件使用稳定的 .moss-* 类名。在 style.css 中用这些类名来定制样式。

集合网格

类名元素
.moss-collection-grid网格容器
.moss-collection-card单张卡片
.moss-collection-card-cover封面图包裹层
.moss-collection-card-content封面下方的内容区
.moss-collection-card-title卡片标题
.moss-collection-card-count文章数量/副标题

子页面摘要

类名元素
.moss-child-summary摘要卡片
.moss-child-summary-rowFlex 行(正文 + 封面)
.moss-child-summary-body文字内容区
.moss-child-summary-meta日期或数量
.moss-child-summary-title标题
.moss-child-summary-description描述摘录
.moss-child-summary-cover侧封面图

文章列表

类名元素
.moss-article-listing列表容器
.moss-article-item单条列表项
.moss-prefix-link带前缀的链接(日期/数量)
.moss-prefix-link-prefix前缀部分(日期/数量标签)
.moss-prefix-link-title标题部分
.moss-prefix-link-suffix后缀部分(可选的尾部标签)
.moss-year-group年份分组标题
.moss-year-group--summary摘要样式的年份分组
.moss-child-section-divider子栏目之间的分隔线

Grid 短代码

类名元素
.moss-grid网格容器(:::grid N
.moss-grid-card单个网格单元格
.moss-grid-card.friend-card包裹外部链接的网格单元格(自动获取元数据)
.moss-grid-card.link-card包裹内部文章链接的网格单元格

集合封面

类名元素
.moss-collection-cover文件夹页面顶部的全宽封面区域
.moss-collection-cover-row封面内的弹性行
.moss-collection-cover-body封面的文字内容区
.moss-cover-label集合封面内的标签文字

Hero 短代码

类名元素
.moss-heroHero 容器(:::hero
.moss-hero-contentHero 内部的叠加文字区域

Buttons 短代码

类名元素
.moss-buttons按钮行容器(::::buttons
.moss-buttons.inverted深色背景上的浅色按钮行变体
.moss-btn单个按钮
.moss-btn-primary第一个(主要)按钮
.moss-btn-secondary后续(次要)按钮
类名元素
.moss-gallery图库容器(:::gallery
.moss-gallery-item单张图库图片

标注

类名元素
.callout标注外层包裹
.callout-<type>类型修饰符(如 .callout-note.callout-warning.callout-pending
.callout-title标注标题行
.callout-content标注正文内容

子文件夹列表(自动生成栏目列表)

类名元素
.moss-folder-item文件夹列表中的行
.moss-folder-link文件夹列表项中的链接
.moss-folder-title文件夹列表项中的标题
.moss-folder-description文件夹列表项中的描述

系列导航

类名元素
.moss-series-nav系列导航块
.moss-series-nav-links上一篇/下一篇链接容器
.moss-series-nav-link单个上一篇或下一篇链接
.moss-series-nav-prev上一篇链接
.moss-series-nav-next下一篇链接
.moss-series-nav-arrow系列链接内的箭头符号
.moss-series-nav-title系列链接内的文章标题
.moss-series-nav-collection-row显示所属集合的行
.moss-series-nav-collection系列导航中的集合名称/链接

其他

类名元素
.moss-colophon版权页 / 页脚注释块
.moss-summary-layout摘要布局包裹层

短代码类名

{.class} 语法给短代码块添加自定义类:

:::grid 3 {.profiles .featured}
...
:::

然后在 CSS 中定制:

.profiles .moss-grid-card {
  border-radius: 50%;
}

布局写在类里,而不是内联

需要响应式列宽时,在自定义类中定义 grid-template-columns,短代码中省略比例——用 :::grid 2 {.two-col-split} 而非 :::grid 2 2:1 {.two-col-split}。写了比例就会在容器上输出内联 style="",优先级高于 @media 规则,每条属性都得加 !important 才能覆盖。

.two-col-split {
  grid-template-columns: 2fr 1fr;
  gap: 2rem;
}
@media (max-width: 768px) {
  .two-col-split { grid-template-columns: 1fr; }
}

完整模式见 shortcodes#用 CSS 类名自定义布局

Published with moss