finds.dev← search

// the find

sofish/typo.css

★ 4,535 · HTML · NOASSERTION · updated Jun 2026

中文网页重设与排版 CSS,面向现代中文阅读优化字体、行高、CJK 断行、中西文间距与着重号。

A CSS reset and typography stylesheet specifically designed for Chinese web content. It handles the things browsers get wrong for CJK text: line breaking, spacing between Chinese and Latin characters, emphasis marks, and vertical writing. Aimed at anyone building a Chinese-language reading experience — blogs, documentation, news sites.

The scope is narrow and well-executed: it tackles real CJK-specific pain points (inter-script spacing via `text-autospace`, proper `word-break` for CJK, native emphasis dots via `text-emphasis`) that generic resets ignore entirely. The two-layer design — base reset for the whole page, `.typo` scoped to article content — is sensible and avoids the 'now I have to undo everything' problem of normalize.css. Recent activity (June 2026) and an actual evolution plan document (`docs/library-evolution-plan.md`) suggest this isn't abandoned. The automated contract tests (`typography.test.js`) verify that the typographic rules stay consistent as the file evolves, which is unusual discipline for a single-file CSS library.

It's a raw CSS file with no build tooling, no PostCSS/SCSS source, no minified distribution — you either copy-paste the file or link it directly, which makes versioned updates manual. The helper class naming is inconsistent: some things are `.typo-foo`, others are standalone (`.clearfix`, `.textwrap`, `.serif`), which pollutes the global namespace and will collide in any larger project. Traditional Chinese font fallback is handled via `lang` attributes, but the README doesn't explain what happens if your CMS doesn't set `lang` correctly — silent fallback to simplified fonts with no warning. Documentation is entirely in Chinese, which is fine given the audience but worth knowing if you're evaluating it from outside that context.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →