<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel>
<title>未完 — 记录构建，也记录生活。</title><link>https://still-notes-blog.pages.dev</link><description>一个关于技术、设计与日常的个人博客。把想法写下来，把有趣的东西做出来。</description><language>zh-CN</language>
<atom:link href="https://still-notes-blog.pages.dev/rss.xml" rel="self" type="application/rss+xml"/>
<item><title>在互联网的一角，留一块自己的空间。</title><link>https://still-notes-blog.pages.dev/posts/a-space-of-my-own</link><guid isPermaLink="true">https://still-notes-blog.pages.dev/posts/a-space-of-my-own</guid><pubDate>Mon, 07 Sep 2026 01:00:00 GMT</pubDate><category>生活</category><description>&lt;p&gt;本文为博客初版示例文章。&lt;/p&gt;&lt;p&gt;互联网很大，但真正属于自己的角落，可以很小。&lt;/p&gt;
&lt;p&gt;一张干净的页面，几段认真写下的文字，一些还不成熟的想法。没有一定要追上的热点，也没有必须被看见的压力。这个博客想提供的，就是这样一块空间。&lt;/p&gt;
&lt;h2 id=&quot;section-1&quot;&gt;为什么还要写博客&lt;/h2&gt;&lt;p&gt;我们每天都在接收很多东西。读过的文章、收藏的链接、突然冒出来的灵感，常常在下一次刷新后就被忘掉。&lt;/p&gt;
&lt;p&gt;写下来是一种整理。模糊的感受一旦变成句子，就开始有了轮廓。一个问题写到一半，答案也许就出现了。即便没有答案，至少留下了一条可以继续思考的线索。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;不必等到想清楚所有事情，才开始记录。记录本身，就是想清楚的过程。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;博客还有一种珍贵的连续性。今天写的东西，不需要明天立刻得到回应。过几个月重新打开，仍然可以和当时的自己聊上几句。&lt;/p&gt;
&lt;h2 id=&quot;section-2&quot;&gt;这个空间会记录什么&lt;/h2&gt;&lt;p&gt;这里会沿着三个方向慢慢生长。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;技术&lt;/strong&gt;：做东西时遇到的问题、验证过的方法，以及值得留下的小工具。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;设计&lt;/strong&gt;：关于界面、排版与细节的观察，试着解释一个东西为什么让人感觉舒服。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;生活&lt;/strong&gt;：读书、散步，以及那些不该只留在相册里的普通时刻。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这些方向之间没有很硬的边界。一个技术问题可能从生活里冒出来，一次设计尝试也可能改变处理日常事务的方法。&lt;/p&gt;
&lt;h2 id=&quot;section-3&quot;&gt;给表达留一点余地&lt;/h2&gt;&lt;p&gt;不想把这里变成另一个需要精心运营的账户。更新可以不规律，文章可以有长有短。比起一个漂亮的发布计划，更希望每次写作都有真实的出发点。&lt;/p&gt;
&lt;p&gt;有些文章会被修改，有些观点会随着新的经验改变。保留这些变化，比假装每一次表达都已经完美更有意思。&lt;/p&gt;
&lt;h2 id=&quot;section-4&quot;&gt;从这一页开始&lt;/h2&gt;&lt;p&gt;「未完」是一个提醒：作品可以先有一个小版本，想法也可以先有一个初稿。&lt;/p&gt;
&lt;p&gt;先让它存在，再慢慢变好。下一次遇到值得记下来的事情，就回到这里。&lt;/p&gt;
&lt;p&gt;这是博客的第一篇示例文章，也是留给未来内容的一张邀请函。&lt;/p&gt;
</description></item>
<item><title>从一个小工具开始，把想法变成作品。</title><link>https://still-notes-blog.pages.dev/posts/build-small-things</link><guid isPermaLink="true">https://still-notes-blog.pages.dev/posts/build-small-things</guid><pubDate>Thu, 03 Sep 2026 01:00:00 GMT</pubDate><category>技术</category><description>&lt;p&gt;本文为博客初版示例文章。&lt;/p&gt;&lt;p&gt;打开一个空文件的时候，最容易想的，是它最终会变得多么完整。登录、数据库、统计、设置，一张功能清单很快就能写满一页。&lt;/p&gt;
&lt;p&gt;但一个值得被使用的工具，通常从更具体的地方开始：有件事，自己已经重复做了很多次。&lt;/p&gt;
&lt;h2 id=&quot;section-1&quot;&gt;先观察，再写代码&lt;/h2&gt;&lt;p&gt;可以花几天记下工作里的小摩擦。比如每次发布文章都要手动检查链接，每次分享图片都要调整尺寸，或者每周都在重新整理同样的笔记。&lt;/p&gt;
&lt;p&gt;问题越具体，越容易知道工具是否真的有用。与其说「我要做一个效率平台」，不如说「我想让整理这十个链接少花五分钟」。&lt;/p&gt;
&lt;h2 id=&quot;section-2&quot;&gt;让第一个版本只有一条路径&lt;/h2&gt;&lt;p&gt;画出使用工具的最短过程：输入是什么，工具做什么，结果是什么。&lt;/p&gt;
&lt;p&gt;以整理链接为例，第一版可以只有一个输入框和一个复制按钮。用户粘贴链接，工具移除空行和重复项，然后输出一份干净的列表。&lt;/p&gt;
&lt;div class=&quot;code-block&quot;&gt;&lt;div class=&quot;code-header&quot;&gt;&lt;span&gt;javascript&lt;/span&gt;&lt;button type=&quot;button&quot; class=&quot;copy-code&quot; aria-label=&quot;复制代码&quot;&gt;复制代码&lt;/button&gt;&lt;/div&gt;&lt;pre&gt;&lt;code&gt;function uniqueLines(input) {
  const lines = input
    .split(&amp;#39;\n&amp;#39;)
    .map(line =&amp;gt; line.trim())
    .filter(Boolean);

  return [...new Set(lines)].join(&amp;#39;\n&amp;#39;);
}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;这段代码不是完整产品，却已经解决了一个真实问题。先把这条路径做好，再考虑其他入口。&lt;/p&gt;
&lt;h2 id=&quot;section-3&quot;&gt;把完成条件写清楚&lt;/h2&gt;&lt;p&gt;「做得更好」没有终点。「粘贴二十行文字，复制去重后的结果」则可以直接验证。&lt;/p&gt;
&lt;p&gt;为第一版写下三个条件：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;正常输入能得到预期结果。&lt;/li&gt;
&lt;li&gt;空输入和重复点击不会让页面出错。&lt;/li&gt;
&lt;li&gt;刷新后，用户知道怎样重新开始。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;完成条件足够具体，开发过程就更容易保持方向。暂时想不到怎样验证的功能，可以先留在笔记里。&lt;/p&gt;
&lt;h2 id=&quot;section-4&quot;&gt;用几次，再决定下一步&lt;/h2&gt;&lt;p&gt;第一次使用时，常常会发现按钮位置不顺手、提示不清楚，或者真正需要的功能和开始想的不一样。&lt;/p&gt;
&lt;p&gt;这些发现很有价值。让实际使用决定第二版，比沿着最初的功能清单一路做下去更可靠。&lt;/p&gt;
&lt;p&gt;小工具不一定要长成大产品。能稳定解决一个问题，已经是一件完整的作品。&lt;/p&gt;
</description></item>
<item><title>好的设计，始于删减。</title><link>https://still-notes-blog.pages.dev/posts/less-but-better</link><guid isPermaLink="true">https://still-notes-blog.pages.dev/posts/less-but-better</guid><pubDate>Fri, 28 Aug 2026 01:00:00 GMT</pubDate><category>设计</category><description>&lt;p&gt;本文为博客初版示例文章。&lt;/p&gt;&lt;p&gt;一个页面觉得不够好时，第一反应常常是再加一点什么。加一个渐变、一组图标、一张装饰性的卡片。&lt;/p&gt;
&lt;p&gt;有时问题恰恰出在相反的方向：页面上每一样东西都在争夺注意力。&lt;/p&gt;
&lt;h2 id=&quot;section-1&quot;&gt;先找到主角&lt;/h2&gt;&lt;p&gt;每个页面都应该能回答一个简单的问题：希望读者先看到什么？&lt;/p&gt;
&lt;p&gt;文章页的主角是文字。作品页的主角是作品。确认这个顺序后，其他元素就有了明确的任务：导航帮助抵达，元信息提供背景，按钮让下一步变得容易。&lt;/p&gt;
&lt;p&gt;如果删掉一个元素，页面仍然同样清楚，甚至更清楚，那它可能暂时没有存在的必要。&lt;/p&gt;
&lt;h2 id=&quot;section-2&quot;&gt;留白也在说话&lt;/h2&gt;&lt;p&gt;留白并不意味着什么都没有。它让相邻元素形成关系，也让不同部分之间保持距离。&lt;/p&gt;
&lt;p&gt;标题与正文靠近，读者就能理解它们属于同一段内容。两个章节之间多留一些距离，读者就有机会换一口气。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;留白是一种节奏。密的地方要有理由，松的地方也一样。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;与其在每个位置加分割线，不如先尝试调整间距。页面常常会因此变得更轻。&lt;/p&gt;
&lt;h2 id=&quot;section-3&quot;&gt;建立少而稳定的规则&lt;/h2&gt;&lt;p&gt;一个小网站不需要几十种文字样式。可以先从几条朴素的规则开始：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;正文保持相同的字号与行距。&lt;/li&gt;
&lt;li&gt;标题通过大小和字重形成层级。&lt;/li&gt;
&lt;li&gt;次要信息使用稳定的灰度，但仍然保持可读。&lt;/li&gt;
&lt;li&gt;强调色留给真正需要被注意到的位置。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;规则越少，越容易贯彻。重复本身会建立一种安静的秩序。&lt;/p&gt;
&lt;h2 id=&quot;section-4&quot;&gt;删减不是终点&lt;/h2&gt;&lt;p&gt;极简不等于把所有东西都变成黑白，也不等于让读者猜测按钮在哪里。&lt;/p&gt;
&lt;p&gt;如果一个说明能减少困惑，就应该留下。如果一个颜色能明确状态，就值得使用。判断依据是内容是否更清楚，而不是页面是否足够空。&lt;/p&gt;
&lt;p&gt;好的删减，是把表达的重量留在恰当的位置。&lt;/p&gt;
</description></item>
<item><title>周末，把注意力还给生活。</title><link>https://still-notes-blog.pages.dev/posts/a-slow-weekend</link><guid isPermaLink="true">https://still-notes-blog.pages.dev/posts/a-slow-weekend</guid><pubDate>Sat, 22 Aug 2026 01:00:00 GMT</pubDate><category>生活</category><description>&lt;p&gt;本文为博客初版示例文章。&lt;/p&gt;&lt;p&gt;周末有时候会变成另一种工作日：读完收藏的文章，补上落下的课程，再整理一遍下周的计划。&lt;/p&gt;
&lt;p&gt;直到傍晚才发现，好像完成了不少事情，却没有真正休息过。&lt;/p&gt;
&lt;h2 id=&quot;section-1&quot;&gt;不给散步安排任务&lt;/h2&gt;&lt;p&gt;试着出门走一段路，不计步数，也不一定听播客。遇到想停下来的地方，就停一会儿。&lt;/p&gt;
&lt;p&gt;街角新开的店、阳光移动到墙上的位置、经过身边的自行车，都是平时赶路时容易错过的细节。&lt;/p&gt;
&lt;p&gt;这段时间不用产生一个结论。看见本身就够了。&lt;/p&gt;
&lt;h2 id=&quot;section-2&quot;&gt;把空闲留成空闲&lt;/h2&gt;&lt;p&gt;很多时候，我们习惯把每一个空档都填满。等一杯咖啡的几分钟，排队的几分钟，睡前的几分钟，都能拿来刷一点什么。&lt;/p&gt;
&lt;p&gt;偶尔让手机待在口袋里，会发现时间的感觉不太一样。几分钟依然是几分钟，却不再被很多碎片切开。&lt;/p&gt;
&lt;p&gt;不需要把它变成严格的自律计划。只是给自己一个选择：现在也可以什么都不看。&lt;/p&gt;
&lt;h2 id=&quot;section-3&quot;&gt;留下一件小事&lt;/h2&gt;&lt;p&gt;晚上回到家，可以用一句话记下今天最想保留的画面。不是总结，也不是复盘。&lt;/p&gt;
&lt;p&gt;「今天走进一条平时总会路过的巷子。」&lt;/p&gt;
&lt;p&gt;「傍晚的风已经有一点秋天的意思。」&lt;/p&gt;
&lt;p&gt;这些句子看起来很轻，却能在很久以后，把一个普通的日子重新带回来。&lt;/p&gt;
&lt;h2 id=&quot;section-4&quot;&gt;明天再继续&lt;/h2&gt;&lt;p&gt;想法不会因为休息一天就消失。有些问题离开屏幕之后，反而慢慢变得清楚。&lt;/p&gt;
&lt;p&gt;今天先到这里。合上电脑，明天再继续。&lt;/p&gt;
</description></item>
<item><title>让排版成为设计的主角。</title><link>https://still-notes-blog.pages.dev/posts/type-is-the-interface</link><guid isPermaLink="true">https://still-notes-blog.pages.dev/posts/type-is-the-interface</guid><pubDate>Sat, 15 Aug 2026 01:00:00 GMT</pubDate><category>设计</category><description>&lt;p&gt;本文为博客初版示例文章。&lt;/p&gt;&lt;p&gt;拿掉图片和颜色，一个页面还剩下什么？大多数时候，是文字和文字之间的距离。&lt;/p&gt;
&lt;p&gt;这也是为什么排版值得尽早考虑。它不是内容完成后的装饰，而是内容被阅读的方式。&lt;/p&gt;
&lt;h2 id=&quot;section-1&quot;&gt;从正文开始&lt;/h2&gt;&lt;p&gt;先放入一段真实长度的正文，再调整字号、行距与宽度。占位文字太短，往往会掩盖阅读中的问题。&lt;/p&gt;
&lt;p&gt;同样的字号，在不同字体和屏幕上会有不同的观感。判断标准可以很朴素：读一整段，是否需要反复找下一行？页面缩小后，是否仍然能轻松看清？&lt;/p&gt;
&lt;h2 id=&quot;section-2&quot;&gt;用宽度控制节奏&lt;/h2&gt;&lt;p&gt;一行过长，眼睛从行尾回到下一行开头时容易迷失。过短，则会让段落碎成很多不自然的停顿。&lt;/p&gt;
&lt;p&gt;正文容器不必和整个网站一样宽。宽屏上的留白，可以用来安放目录，也可以什么都不放。&lt;/p&gt;
&lt;div class=&quot;code-block&quot;&gt;&lt;div class=&quot;code-header&quot;&gt;&lt;span&gt;css&lt;/span&gt;&lt;button type=&quot;button&quot; class=&quot;copy-code&quot; aria-label=&quot;复制代码&quot;&gt;复制代码&lt;/button&gt;&lt;/div&gt;&lt;pre&gt;&lt;code&gt;.reading-column {
  width: min(100% - 3rem, 42rem);
  margin-inline: auto;
  font-size: 1.0625rem;
  line-height: 1.9;
  overflow-wrap: break-word;
}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;这是一组起点，不是通用答案。放进实际文章，在手机和电脑上各读一遍，再做调整。&lt;/p&gt;
&lt;h2 id=&quot;section-3&quot;&gt;让层级少一些&lt;/h2&gt;&lt;p&gt;一篇普通文章，有正文、二级标题、三级标题和辅助信息，通常就足够了。&lt;/p&gt;
&lt;p&gt;如果每一小段都加粗，每一句话都强调，读者最后反而不知道重点在哪里。强调应该有节制，标题也应该描述后面的内容，而不是只追求醒目。&lt;/p&gt;
&lt;h2 id=&quot;section-4&quot;&gt;细节要为阅读服务&lt;/h2&gt;&lt;p&gt;链接需要能被识别，代码块需要可以横向滚动，键盘焦点需要清楚可见。深色背景下的辅助文字，也应该保持足够的明度。&lt;/p&gt;
&lt;p&gt;这些细节不一定在第一眼就被注意到，却决定了一个页面是否适合停留。&lt;/p&gt;
&lt;p&gt;让读者忘记界面的存在，安心读完一篇文章，就是排版很好的结果。&lt;/p&gt;
</description></item>
<item><title>小步发布，让反馈早点发生。</title><link>https://still-notes-blog.pages.dev/posts/ship-small-learn-fast</link><guid isPermaLink="true">https://still-notes-blog.pages.dev/posts/ship-small-learn-fast</guid><pubDate>Mon, 10 Aug 2026 01:00:00 GMT</pubDate><category>技术</category><description>&lt;p&gt;本文为博客初版示例文章。&lt;/p&gt;&lt;p&gt;有些项目迟迟没有发布，是因为始终觉得还差一点。一个页面还可以更精致，一个功能还可以覆盖更多场景。&lt;/p&gt;
&lt;p&gt;质量当然重要。但在真实环境里验证一个小版本，也是一种提高质量的方法。&lt;/p&gt;
&lt;h2 id=&quot;section-1&quot;&gt;先定义一个完整的闭环&lt;/h2&gt;&lt;p&gt;小版本不等于随意拼出的半成品。它应该让一个具体的人，完成一件具体的事。&lt;/p&gt;
&lt;p&gt;对于博客，这个闭环可以是：找到一篇文章，打开它，读完，再发现另一篇感兴趣的内容。先把这条路径做顺，再考虑评论、邮件和复杂的内容管理。&lt;/p&gt;
&lt;h2 id=&quot;section-2&quot;&gt;发布前，验证真正的使用路径&lt;/h2&gt;&lt;p&gt;构建成功只是第一步。还需要确认打开一个文章链接时，服务器能返回内容；窄屏上没有横向溢出；键盘用户也能打开菜单和搜索。&lt;/p&gt;
&lt;p&gt;检查可以围绕结果来写：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;直接访问文章地址，能看到正确的标题和正文。&lt;/li&gt;
&lt;li&gt;输入文章中的关键词，能找到对应结果。&lt;/li&gt;
&lt;li&gt;打开不存在的地址，能看到明确的返回入口。&lt;/li&gt;
&lt;li&gt;切换主题并刷新后，选择仍然保留。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这些检查对应读者真实会做的事，比单纯追求测试数量更有价值。&lt;/p&gt;
&lt;h2 id=&quot;section-3&quot;&gt;给每次发布留下记录&lt;/h2&gt;&lt;p&gt;记录这一版改了什么、验证了什么，以及怎样回到前一版。以后出现问题时，就不需要靠记忆重建现场。&lt;/p&gt;
&lt;p&gt;改动范围小，通常也更容易理解问题来自哪里。一篇文章的调整不应该顺手带上所有依赖升级，一次样式修复也不必变成结构重写。&lt;/p&gt;
&lt;h2 id=&quot;section-4&quot;&gt;从反馈里选择下一步&lt;/h2&gt;&lt;p&gt;第一批反馈未必来自很多用户。自己在不同设备上认真用几次，就能发现不少细节。&lt;/p&gt;
&lt;p&gt;先修复妨碍使用的地方，再改善经常遇到的摩擦。新功能可以排队，但不需要抢在基本体验前面。&lt;/p&gt;
&lt;p&gt;每一版都有一个清楚的目的，项目就会在一连串可以看见的进步中慢慢长大。&lt;/p&gt;
</description></item>
</channel></rss>