#0 说明

你或许之前看到过我写的一篇文章,说我打算写一个叫做 Marvel 的新主题,然后又看到了这篇文章...

是的,我要弃坑了。

这主要是因为最近在学习平面设计,越学越觉得自己以前做的东西和以前的想法都是垃圾,毕竟那些东西都是根据我的审美和主观感受,在没有具体规划的情况下一点一点捏出来的,有许许多多的瑕疵。所以,我打算改变我原有的设计风格,重新写主题。

这次的设计我主要会参考报刊杂志的排版,并尝试融入一些国风的设计风格,取消阴影和明显的边框,而采用更加细腻的线条或适当的空白作为内容分割,少量地在页面中运用明亮的色彩作为点缀或强调。并且,在用户体验方面,我想减少用户在页面中滚动鼠标的次数,尽量多的采用翻页设计,在移动端,减少用户需要点击的次数,尽量多地采用滑动的设计。我也想突破自我,尝试一下我之前一直不怎么会用的 CSS 动画。所以,总的来说,这会是一个整体简洁而充满细节的主题。

仔细一想,这样的风格,也不违背我「简洁而不失优雅」的初衷。

我认为,新的风格并不适合被命名为「Marvel」或是任何与「奇迹」相关的词语,我本来想用「空气」来描述这个主题在我脑中浮现的「轻盈」的感觉,并用英语词根瞎造了一个「Aerobellus(空气的美丽)」,但我突然想起,之前在设计 Miracles 的时候,曾将它命名为「Windbell(风铃)」。「风」有空气动态的美感,「铃」有清脆的声响,象征着新的开始,同时「bell」作为词根的时候,也有「美」的意思,所以,新主题的名字就这样确定下来了。

Windbell 是未来的预告,也是过去的怀旧。

#1 主体框架

大概就是把 Typecho 主题最基本的一些东西写好了,是没有什么营养的枯燥过程,就不多说了。

但值得一提的是,我在主题中加入了一个「子主题」的系统,初步的设计是这样的:

子主题文件储存在主题的 assets/themes/ 目录下,文件夹下包含三个主要文件:

  • theme.json
  • layout.json
  • style.css

分别储存主题信息、布局方式和页面样式。

主题在渲染的时候,会读取设置中选中的子主题选项,并按照 layout.json 中书写的内容进行排版,然后引入 style.css。这样大大提升了主题的自定义性,用户只需要动手改几个文件,只用 json 和 css 就可以把博客变成自己想要的样子。关于 layout.json 的书写,我是这样想的:允许用户嵌套多个容器,每个容器的排版方式会用到栅格系统。这样用户就能在水平和垂直方向上自由排版。

或许 layout.json 换成 layout.xml 会更适合排版,但这还是初步方案,具体我还在尝试。