以码为笔 · 以屏为纸

GLSL · 手写着色器 · 此山非图片

往下卷

这一页没有框架,没有库,也没有一张位图。山是着色器算出来的,墨是扩散洇开的,琴声是延迟线里振出来的,纸纹是滤镜现场生成的。全部手写,装在一个 HTML 文件里——只另带一份按本页用字裁出的字体。

单文件零依赖842 行75 KB

卷之一

墨池

指尖过处,墨入纸纹,缓缓洇开。行笔越慢,墨越浓。

拖动书写 · 永字八法,照着描
卷之二

聚墨成字

数千墨点各自为政:聚则成字,散则成雾。

移指驱散 · 点按炸开
卷之三

七弦

无实物之琴,弦振出真声。页面里没有一个音频文件。

划过或点按拨弦 · 键盘 1–7 · 请开声音  
卷之四

折扇

这一卷没有一行 JavaScript。

悬停或点按开合 · 折进骨缝里的一幅山水,开扇归位

炫技不是目的。
目的是:每个像素都知道自己为什么在那里。

1HTML 文件
0外部依赖
842行 · 全部手写
75 KB页面体积
236 KB自裁字体子集
0位图

想验证?右键查看源代码——所见即全部。
标题字体是从 Noto Serif SC 按本页用字裁出的子集(236 KB),也在这台服务器上。
动效尊重系统「减弱动态效果」设置;画布滚出视野即歇息,不空转一帧。

丙午夏月 · 手书