伯克希尔哈撒韦本质上是一家保险公司
所谓保守背后,是一台敢用风险生钱的机器
Notes on tech, products, and life.
所谓保守背后,是一台敢用风险生钱的机器
离开地表从来不是雄心,而是一道侥幸的物理题
不用再像乔布斯,守住秩序本身已经足够难
一场兵变的缝隙里,强人政治可能重新加固
真正危险的不是 TikTok,而是懒惰立法伸出的那只手
把模糊网页压成模型时,幻觉也有自己的来处
第四次幸福感之后,未来忽然跑进我的日常
十年旧站卸下数据库,只剩文本和一点安全感
一串数字刚好抵达,时间也像在开可爱小玩笑
从居住需要算到货币底层,房子就没那么简单
从这篇起,notes 不再只是纯文字。站点按「表现复杂度」分三层来承载交互,够用就停在最轻的一层——越往下,JS 成本越高。三层都遵守同一套主题契约:跟着 data-theme 变色、尊重 prefers-reduced-motion、带无障碍标注。
几何、坐标、元素有限的图——首选这一层。矢量缩放无损,颜色用 currentColor 与 var(--color-accent) 等语义 token,所以切换明暗主题时零 JS 自动变色;动画用纯 CSS,在系统「减少动态效果」时自动静止。试试右上角切主题,下图的轨道与圆点会跟着换色:
大量点、连续曲线、需要逐帧重算的图(波形、粒子、实时模拟)——SVG 节点会爆炸,改用 Canvas。代价是 Canvas 不会自动变色:得用 getComputedStyle 取 CSS 变量、用 MutationObserver 监听 data-theme 重新取色重画,并做 devicePixelRatio 适配。下图是两条叠加正弦波,切主题时会重新取色:
多个输入互相联动、状态驱动的实时重算、需要图表库或较深组件树——才升到 React。它在 MDX 里以 client:visible 注水,进入视口才加载 JS。下面这个复利小工具拖动任一滑块,数值与增长条会实时联动(刻意不引图表库,纯 state + 内联条形):
10 年后:1,629
收益 +629(63%)
client:visible。三层的完整约定(目录、主题联动规则、client:* 默认、a11y、import 路径)写在仓库 AGENTS.md 的「交互组件分层约定」一节,也是自动化生成 note 时遵循的规范。