Obsidian CSS片段(技巧 / 相关插件)

因为对目前的样式非常满意且相当喜欢,所以做一个简单的分享。

注意:warning::不是系统性教程,如果需要学习CSS写法,请看Obsidian主题样式修改半入门教学。如果希望实现更多丰富的效果,善用MDN

ToC

  • 善用变量
  • 一些方便的属性
    • filter
    • opacity
  • 插件(主要分享CodeblockCustomizer)

图片展示:

  • 日间
  • 夜间

善用变量

变量很好用。一是具有语义,通过变量名可以清楚地知道这个变量是做什么用的,例如:

/* 日间 */
.theme-light {
  --heading-color: #2f5f5d; /* 主题色 */
  --highlight-color: #366268; /* 强调色 */
}

二是非常方便,有时一些属性值会被反复使用,使用变量便于全局快速修改某个属性。

三是省力,通过变量嵌套可以省去很多不必要的代码(如果你有关注过原始UI的样式代码,会发现嵌套了多层变量)。例如:

:root {
  --rem-15: 1.5rem;
  --rem-20: 2.0rem;
  --h1-size: var(--rem-20);
}
@media (max-width: 768px) {
  :root {
    --h1-size: var(--rem-15);
  }
}

h1 {
  font-size: var(--h1-size);
}

/* 一级标题可以根据窗口宽度自动改变字体大小 */

你甚至可以这样写(但不推荐),一个变量最好只存一个属性值:

:root {
  --border: 1px solid #fff;
}
h1 {
  border-bottom: var(--border);
}

一些方便的属性

filter

可以当调色板用,如果不希望设置太多的颜色值。常用的相关值有:

  • brightness(明度)
  • grayscale(灰度)
  • saturate(饱和度)

还可以通过`blur`做出剧透效果,适用于记背复习。示例:

.markdown-rendered del {
  filter: blur(10px);
  transition: filter 0.3s ease;
}
.markdown-rendered del:hover {
  filter: blur(0);
}

/* 文本添加删除线后变得模糊,只有当光标悬停在文本上时才恢复正常 */

opacity

不透明度。可以用于设计简单的聚焦效果(复杂一点的如高亮当前正在编辑的段落需要用到JS)。例如:

.markdown-rendered p:not(:hover) {
  opacity: 0.5;
}
.markdown-rendered p:hover {
  opacity: 1;
  background-color: blue;
}

/* 光标悬停在某一段落时该段落完全不透明且背景高亮,其它段落半透明。 */

插件

:light_bulb: 美观程度大于实用程度!

前两个没什么好说的,CodeblockCustomizer ( GitHub - mugiwara85/CodeblockCustomizer: Codeblock Customizer plugin for Obsidian · GitHub ) 可以:

  • 折叠代码块
  • 给代码块取标题
  • 高亮某行代码
  • 显示行数
  • 把代码块复制为图片


CSS 所见即所得,反馈感强,折腾起来还是很好玩的。论坛里有不少实用又好看的 snippet 分享,在前人的基础上自己 DIY 成就感也会很强。

1 个赞