[{"title":"从零搭一个深空主题的 Astro 博客","description":"三栏骨架、星野首屏、玻璃卡片——好看的不是特效，而是每一处都遵守同一套规则。","category":"技术","tags":["Astro","设计","CSS"],"url":"/posts/tech/firefly-astro-blog/","date":"2026-10-18"},{"title":"用 Canvas 画一片不会打扰阅读的星空,真假，nb7666","description":"星点的密度、呼吸速度与亮度上限，决定它是氛围还是噪音。","category":"技术","tags":["Canvas","动效","前端"],"url":"/posts/tech/canvas-starfield/","date":"2026-10-16"},{"title":"我把博客首页改成了观测站","description":"一次关于「首页到底该给谁看」的自我辩论。","category":"随笔","tags":["博客","设计","写作"],"url":"/posts/notes/blog-observation/","date":"2026-10-12"},{"title":"用 CSS 变量做一套双主题色板","description":"只改十几个 token，就能让深空和黎明两套皮肤共用一套组件。","category":"技术","tags":["CSS","设计系统","前端"],"url":"/posts/tech/css-tokens/","date":"2026-10-10"},{"title":"读完《暗淡蓝点》：宇宙尺度下的谦卑","description":"我们的一切，都在这颗小小的蓝点上。","category":"读书","tags":["卡尔·萨根","科普","阅读"],"url":"/posts/reading/pale-blue-dot/","date":"2026-10-08"},{"title":"给静态博客加搜索：Pagefind 与 JSON 索引","description":"零后端的两种做法，以及我为什么先选了更笨的那一种。","category":"技术","tags":["搜索","Astro","静态站点"],"url":"/posts/tech/pagefind-search/","date":"2026-10-05"},{"title":"深夜写代码时，我在听什么","description":"一些没有歌词、不会抢注意力的声音。","category":"随笔","tags":["音乐","效率","日常"],"url":"/posts/notes/night-coding/","date":"2026-10-03"},{"title":"周末去了城市边缘的山","description":"没有信号的六个小时，反而想清楚了很多事。","category":"生活","tags":["摄影","日常","山野"],"url":"/posts/life/weekend-mountain/","date":"2026-10-01"},{"title":"《设计中的设计》：把熟悉的东西重新看一遍","description":"原研哉谈的不是技巧，而是一种观看世界的方式。","category":"读书","tags":["原研哉","设计","阅读"],"url":"/posts/reading/design-of-design/","date":"2026-09-20"}]