[{"data":1,"prerenderedAt":36},["ShallowReactive",2],{"tag-css":3},{"name":4,"posts":5},"CSS",[6,18,28],{"path":7,"title":8,"description":9,"date":10,"updated":11,"tags":12,"category":14,"cover":15,"draft":16,"pinned":17,"featured":16},"\u002Fposts\u002Ftypography-over-color","排版比配色更决定气质","把同样一套颜色交给两个人排，出来的东西可以完全不同。这篇讲我怎么用字重、行距和留白，在不换颜色的前提下改变一个页面的脾气。","2025-10-28",null,[13,14,4],"排版","设计","\u002Fimages\u002Fcovers\u002Ftypography.png",false,true,{"path":19,"title":20,"description":21,"date":22,"updated":11,"tags":23,"category":26,"cover":27,"draft":16,"pinned":16,"featured":17},"\u002Fposts\u002Fview-transitions","View Transitions 不是动画库","用它做页面切换、做主题扩散、做列表到详情的共享元素过渡。它真正的价值不是\"让页面动起来\"，而是让你不必手动管理进入和离开两套状态。","2025-09-18",[24,25,4],"动画","浏览器","前端","\u002Fimages\u002Fcovers\u002Fview-transition.png",{"path":29,"title":30,"description":31,"date":32,"updated":11,"tags":33,"category":26,"cover":11,"draft":16,"pinned":16,"featured":16},"\u002Fposts\u002Fcss-variables-as-api","我把 CSS 变量当成了 API","设计 token 写进配置文件，构建期编译成 CSS 变量，组件只读变量。这套做法让「改一处，全站生效」从口号变成了构建期保证。","2025-04-20",[4,34,35],"设计系统","构建",1794113901486]