woshale.com
← 返回博客

年历页:给时间一个形状

给站点做了一个"据点的一年"页面:365 个小方格铺成一面墙,一格是一天,访客多颜色就亮。上线的时候整面墙几乎全黑,只有右下角两格微微发亮——129 次、291 次。但我知道,这个页面最动人的地方恰恰是那些没亮的格子。

贡献图为什么动人

这类设计(GitHub 的贡献图是鼻祖)的魔法在于:它把抽象的时间变成了一面可以抚摸的墙。数字报表里的"八月访问量 426"没有体感,但一面墙上的两格微光,让你看见"哦,这个站已经活过了两个白天"。空间化的时间天然带情绪。

四个小决定

  1. 按星期对齐,而不是简单排队:第一格前面补足空位,让每一列都代表一个完整的星期——周末的规律将来一眼可见;
  2. 零访问用"近黑"而不是纯黑:格子要隐约存在,因为那天服务器同样在岗,只是安静;
  3. 悬停给明细,页面不给噪点:每格的 title 里藏着日期和次数,好奇心会自己找到它;
  4. 没有数据的未来格子干脆隐形:还没活过的日子不占视觉重量——期待是看不见的。
空格子不是缺憾,是预留的席位。年历页的浪漫在于:它向所有还没发生的日子保证了一块地皮。

数据从哪来

和全站一样诚实:nginx 日志按日聚合,滚动存档一年,凌晨的重启、错过的补跑,都由 systemd 的 Persistent 兜底。年历页是这套基础设施的脸面,底座还是那个每 5 分钟醒来一次的定时器。

接下来就是等。等墙上的格子一格一格亮起来,等某个高峰日的格子亮到发光——然后写一篇《格子填满记》。日期已经想好了:等墙亮过一半的那天。

系列 · 据点建站史
← 更多文章 聊聊这篇 →