Sunlit 是一个仅用 CSS 实现的动态场景:阳光透过百叶窗和树叶的影子投射在墙面上,还带日出日落的光色过渡。作者详细拆解了实现技巧:全部用带背景色的 div 堆叠;用多层带 mask-image 约束作用区的 backdrop-filter 做出越靠墙越模糊的渐进虚化;用 feTurbulence 与 feDisplacementMap 给树叶加一层随机噪声以营造被风吹动的起伏;最后用矩阵代数解出 4D 透视矩阵,再填入 CSS 的 matrix3d 实现墙面透视变形,日出日落颜色则从无数小时的观日月中手工挑选。
backdrop-filter 配合 mask-image 做出渐进虚化的光影扩散。