Standard browser engines were built around Western text layout. For East Asian scripts like Chinese, Japanese, and Korean, text is laid out on a character grid. In default browser rendering, every punctuation mark occupies a full square cell. When two punctuation marks meet, such as a closing bracket followed by a comma, the browser leaves an unsightly gap between them.
Lines also break unevenly along the right margin because browsers lack proper CJK punctuation compression and justification rules. The W3C Chinese Layout Requirements (CLREQ) define how text should behave: consecutive punctuation must squeeze to half-width, Latin characters and Hanzi need proportional spacing, and line-breaking rules must prevent punctuation from wrapping to awkward positions.
Duo123, a designer and the project’s creator, had drafted the typography specifications and built an early Kotlin prototype for simplified Chinese. But taking those rules into production on real websites and dedicated E-ink reading devices required solving runtime, build pipeline, and compiler challenges.