
距离我上一次改版,或是从头设计博客,已经过去了十几年。这几天我花了点功夫,慢慢重新设计它。因为有了 AI 的加持,整个设计过程全部是 Vibe Coding,我没有写一行代码,甚至包括你现在看到的内容,也是由一整套 AI 流程生成的。导航和头像部分我花了大量精力表达我的想法,刚好就让 AI 来帮我写下这一整套过程吧。
最近我给博客顶部导航做了一次小改动。它不是功能上的大变化,导航还是那几个链接:博客首页、日志存档、新用户请进、我的原则、我的愿望清单、关于我。但我希望它不只是“能点”,而是在访问博客的第一秒,就传递出一点网站的气质——一种轻、柔、流动、有回应的气息。
一开始,我想给导航加一个动效。但仔细思考后,我意识到,它不只是动效的问题,更是一种哲学表达。我希望它能体现李小龙的理念:“Be Water”——水的状态,既顺势而动,又有包容力,既柔韧又能穿透。
这里的“水”,不是把导航染成蓝色,也不是加上明显的水波纹特效。太直白反而俗。我的想法更接近意境:当鼠标触碰导航时,它像轻轻触到了一条水平面——文字微微上浮,下面出现像小水滴一样的点,水线被轻轻触动,一滴水落下,沿着线缓缓流走。这不仅是视觉效果,更是一种哲学体验:微小动作也能带来流动与回应,正如生活中顺势而为的智慧。
这个效果,我拆成了几个部分来实现。
第一,是头像动画。
博客顶部的头像是网站最早的视觉中心,所以导航不能突然跳出来,它需要与头像保持连续性。我设计了一个顺序:头像动画先出现,然后一条线从中间向两边延展,同时出现一句话:
Be water, my friends. — Bruce Lee
这句话停留片刻后消失,随后导航才慢慢显现。这样,头部不是几个孤立元素的拼凑,而像一个完整的开场节奏——正如李小龙所言,水无形,却能包容、流动、影响周遭。
第二,是导航文字的状态。
鼠标移到文字上时,文字轻轻上浮,但不急不躁。它像被水面托起,而不是像按钮弹起来。位移和缓动速度经过多次调试:太快显得轻浮,太慢又拖沓。最终,文字轻柔浮动,缓动自然,仿佛触碰水面的一瞬感受——柔而有力,顺势而动。
第三,是下划线。
普通实线太过常规,我想做成“点线共生”的形式:文字下方是一组大小不一的小水滴点,不完全均匀。它既像下划线,又不完全像下划线。当前页面也用这个点点提示状态,但颜色不亮,也不脏。最终,我没有选蓝色,而是从头像里的暖色调——棕色、橙色——取色,让它和头像保持关联。点线就像水的脉动,静中有动,柔中带韵。
第四,是水线。
导航下方有一条极细的线,鼠标触碰时轻微摆动。水滴落下后,沿线缓缓流动。这一小细节,让 hover 不再只是“文字变色”,而是一个完整动作:触碰、落下、流动、消失。就像水顺势而动,它不会强行改变方向,却能影响整个表面。
通过这次设计,我也意识到:动效最难的,不是做出来,而是“不过度”。水的主题很容易被过度装饰,比如强行做蓝色水波、大面积涟漪、明显的液体变形。但博客不是游戏界面,它需要安静、耐看、可阅读。最终原则是:让人感受到水,而不是把水画给人看。
性能也是关键考虑。
这个效果只在桌面端完整运行,手机端仍然保留折叠导航。水线动画不是持续播放,而只在加载、hover 或水滴落下时才触发,结束后停止。它更像微交互,而不是持续消耗注意力的装饰。
我喜欢这次设计的原因,是它把头像、导航、颜色、文字、交互和哲学意境串联起来。它不是单独给导航加一个炫酷效果,而是让顶部区域有了完整节奏感——一种轻、柔、顺势、有回应的水的状态。
水导航最终想表达的,其实不是“水”的视觉,而是水的哲学:顺势而动、包容、回应、自然流淌。鼠标轻移,它回应你一下;点击,它不会突兀地断掉;页面打开,它安静停在那里,像一条静水,柔韧而有力量。
这大概就是我想要的博客体验——不响亮,但有一点自己的气息,一点哲学的呼吸。
