May 8, 2026Budding
复刻液态玻璃:从 backdrop-filter 到光线折射
用 CSS backdrop-filter 加 SVG feDisplacementMap 做出近似 iOS 26 的玻璃质感。
cssdesign
Mar 15, 2026Budding
Framer Motion 的 layoutId:共享元素过渡的工作原理
为什么 layoutId 是 SPA 路由间共享元素过渡最稳的方案,以及它的几个坑。
reactanimation
Feb 1, 2026Seedling
为什么我放弃了 scroll-snap
原生 scroll-snap 写起来很爽,但一旦动效要超过 CSS 能表达的范围,就要换 JS。
cssux
Jan 12, 2026Budding
TypeScript 模板字面量的实用场景
Template literal types 不只是写出 'Hello, ${name}' 那么简单。一些被低估的用法。
typescriptdx
Feb 14, 2025Seedling
字体加载策略:FOIT vs FOUT 之外
Web 字体加载的两个传统问题之外,还有 size-adjust 这个新玩具。
performancetypography
Jan 20, 2025Seedling
快捷键设计的几个原则
Vim、Notion、Linear,好的快捷键有共同的纹理。
uxui
Apr 22, 2026·Evergreen·
#notes#thinking
我的阅读栈:从 Zettelkasten 到数字花园
最早是 Notion,然后是 Obsidian,再到现在的本地 Markdown + 静态站。 每次迁移都不是因为工具不够好,而是因为我的目标变了。
把"积累"和"发表"分开
笔记系统的核心张力,是「私密、未完成」与「公开、有结构」的冲突。 把这两层物理上分开(不同的目录、不同的工具),心理负担会小很多。
成熟度比时间更重要
我用 maturity: seedling | budding | evergreen 标注每篇 note 的成熟度。
这比创建日期更有用——一篇半年前写的 evergreen 比上周写的 seedling 更值得回看。
双链不是银弹
Obsidian 的反向链接很爽,但真正让我反复回头看的,是显式的索引页—— 人手维护的、按主题组织的 MOC(Maps of Content)。算法生成的图谱漂亮,但难以导航。
←→or scroll·Enterto open