---
title: "喵洛阁 | 喵洛阁"
description: 克喵的博客，记录前端工程、设计与日常折腾。
canonical_url: "https://www.kemiaosw.top/"
meta:
  "og:description": 克喵的博客，记录前端工程、设计与日常折腾。
  "og:title": "喵洛阁 | 喵洛阁"
---

> Index of every page on this site: [llms.txt](https://www.kemiaosw.top/llms.txt)

# 喵洛阁

[![View Transitions 不是动画库 的封面](https://www.kemiaosw.top/images/covers/view-transition.png) 全站推荐View Transitions 不是动画库前端·2025-09-18](https://www.kemiaosw.top/posts/view-transitions)

[![排版比配色更决定气质 的封面](https://www.kemiaosw.top/images/covers/typography.png) 置顶<h3>排版比配色更决定气质</h3>把同样一套颜色交给两个人排，出来的东西可以完全不同。这篇讲我怎么用字重、行距和留白，在不换颜色的前提下改变一个页面的脾气。设计#排版#设计2025-10-28 1 分钟](https://www.kemiaosw.top/posts/typography-over-color)

[![特殊字符与代码块压测：\& \< > " ' 全都要 的封面](https://www.kemiaosw.top/images/covers/charset.png) 置顶<h3>特殊字符与代码块压测：& < > " ' 全都要</h3>一篇专门用来喂 RSS/Atom 校验器的文章。正文里塞满了 & < > 引号、CDATA 边界、嵌套代码块和原始 HTML 片…工程#RSS#XML2025-10-20 1 分钟](https://www.kemiaosw.top/posts/xml-escaping-stress-test)

[![在博客里写公式 的封面](https://www.kemiaosw.top/images/covers/default.svg)<h3>在博客里写公式</h3>用 KaTeX 在 Markdown 里写行内与块级数学公式：语法、排版约定、以及写错时的表现。写作#数学#KaTeX2025-11-07 1 分钟](https://www.kemiaosw.top/posts/math-test)

[![我删掉了站点的 90% 功能 的封面](https://www.kemiaosw.top/images/covers/default.svg)<h3>我删掉了站点的 90% 功能</h3>一个博客需要什么？列表、文章、归档、搜索、订阅。其他东西我全删了，然后发现加载时间从 2.3 秒掉到了 380 毫秒。工程#性能#架构2025-10-12 1 分钟](https://www.kemiaosw.top/posts/deleted-90-percent)

[![中文分词为什么把搜索做坏了 的封面](https://www.kemiaosw.top/images/covers/default.svg)<h3>中文分词为什么把搜索做坏了</h3>MiniSearch 默认按空格切词，对中文来说等于完全失效。这篇讲 CJK 该怎么切，以及 bigram 加单字兜底为什么比单…工程#搜索#MiniSearch2025-09-30 1 分钟](https://www.kemiaosw.top/posts/cjk-tokenizer)

[![View Transitions 不是动画库 的封面](https://www.kemiaosw.top/images/covers/view-transition.png)<h3>View Transitions 不是动画库</h3>用它做页面切换、做主题扩散、做列表到详情的共享元素过渡。它真正的价值不是"让页面动起来"，而是让你不必手动管理进入和离开两套状态…前端#动画#浏览器2025-09-18 1 分钟](https://www.kemiaosw.top/posts/view-transitions)

[![静态博客的搜索为什么不用后端 的封面](https://www.kemiaosw.top/images/covers/default.svg)<h3>静态博客的搜索为什么不用后端</h3>300KB 的索引、一次懒加载、纯前端查询。对一个几百篇文章的博客来说，这个方案比任何搜索引擎都合适。工程#搜索#架构2025-09-05 1 分钟](https://www.kemiaosw.top/posts/static-search)

[![别再用卡片装一切 的封面](https://www.kemiaosw.top/images/covers/default.svg)<h3>别再用卡片装一切</h3>卡片是个好东西，但它有明确的使用条件。当每一块内容都变成同样圆角同样阴影的卡片时，页面就失去了层级，读者也失去了方向。设计#设计#布局2025-08-22 1 分钟](https://www.kemiaosw.top/posts/stop-using-cards)

[![自托管字体的一年 的封面](https://www.kemiaosw.top/images/covers/default.svg)<h3>自托管字体的一年</h3>从 Google Fonts 换成自托管，从自托管换成子集化分片。聊聊为什么一个中文字体能从 25MB 变成实际加载 180KB…前端#字体#性能2025-08-08 1 分钟](https://www.kemiaosw.top/posts/self-hosted-fonts)

[![暗色模式不是把颜色反过来 的封面](https://www.kemiaosw.top/images/covers/default.svg)<h3>暗色模式不是把颜色反过来</h3>反转配色是最省事的做法，也是最糟的做法。暗色模式需要重新设计对比度、阴影、饱和度和层级关系。设计#暗色模式#设计2025-07-25 1 分钟](https://www.kemiaosw.top/posts/dark-mode-design)

[查看全部](https://www.kemiaosw.top/archive)

```json
{"@context":"https://schema.org","@graph":[{"@id":"https://www.kemiaosw.top/#website","@type":"WebSite","description":"克喵的博客，记录前端工程、设计与日常折腾。","name":"喵洛阁","url":"https://www.kemiaosw.top/"},{"@id":"https://www.kemiaosw.top/#webpage","@type":"WebPage","description":"克喵的博客，记录前端工程、设计与日常折腾。","name":"喵洛阁","url":"https://www.kemiaosw.top/","isPartOf":{"@id":"https://www.kemiaosw.top/#website"},"potentialAction":[{"@type":"ReadAction","target":["https://www.kemiaosw.top/"]}]}]}
```

## Sitemap

See the full [sitemap](https://www.kemiaosw.top/sitemap.md) for all pages.
