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