困扰前端圈整整30年的难题,被一个刚出的项目干掉了
这两天,前端圈彻底炸了。

一个叫Pretext的项目横空出世,上线仅一天狂揽1.5万GitHub Star,超1800万人疯狂围观,直接刷屏外网。
而打造它的,正是React核心开发者、前端大神Cheng Lou。
大神甚至调侃说,这套系统是他用Claude和Codex等AI工具不断辅助测算迭代才搞定的——简直是用AI解决了AI惹出的麻烦。
这到底是个什么东西?为什么能让整个前端圈为之沸腾?
先问你一个问题:当你用AI大模型看着屏幕上的字一个一个往外蹦,是不是觉得还挺丝滑的?
但其实——浏览器都快被累吐血了。
打个比方,以前浏览器排版就像个笨木匠,必须等字出来后亲自把字摆上去,再拿尺子量一下有多宽、有多高。现在AI一直往外蹦字,浏览器就要一直拆了重搭。
这个过程在前端叫DOM重排重绘。

如果你写过前端代码,一定遇到过这种情况:稍微碰上点复杂的动态界面,画面就会卡成PPT。滚动列表时掉帧、调整窗口时卡顿、AI流式输出时直接崩盘。
因为传统文本测量极度依赖CSS和DOM Reflow——你没法直接算出“一段话塞进300px的框里有多高”,只能先把文本强行塞进DOM树,让浏览器排一遍版,再用getBoundingClientRect把结果“问”回来。
这个“询问”的过程,就是网页卡顿的头号元凶。而且这种测量没法并行,必须排队处理,一不小心就造成读写交错,性能直接崩盘。
过去三十年,前端开发者一直在和这个问题死磕。
直到Pretext出现。
Pretext完全绕开了浏览器那套笨办法,用纯TypeScript写了一个**“上帝视角”的算法**。
它会直接在代码层提前算好每个字有多宽、每行排多少、整段有多高。不仅是中英文,还是emoji表情,它都能算得明明白白,完全不碰DOM。

怎么做到的?
Cheng Lou找到了一条“后门”:浏览器的canvas.measureText()和DOM渲染,底层用的是同一套字体引擎。但canvas有个妙处——它完全在布局树之外运行,量多少次字都不会触发Reflow。
Pretext的整套逻辑就建立在这个突破口上:
为了把精度打磨到极致,Cheng Lou把各大浏览器“真实渲染基准”数据全部喂给了Claude Code和Codex,让它们在每一个关键的容器宽度下进行测量和迭代比对——整个过程跑了好几周。
实验结果令人震惊。
精度方面:Chrome、Safari、Firefox三大浏览器7680项穷举测试,全部满分通过,像素级吻合。
性能数据更是炸裂:
而整个引擎的体积,只有区区15KB。
这意味着有了它,哪怕是成百上千个复杂的文本框,无论怎么滑动都能带给你120帧的丝滑体验。
大神Cheng Lou只是开了个头,全网开发者上手试玩的脑洞,那才叫一个绝绝子。
文本里,看二次元热舞
一大批网友直接在文字渲染中做出了人物动画的效果。“辉夜姬”里的藤原千花跳进了文字里,标志性的舞步配上实时流动的排版,堪称二次元照进了现实。

网友太过沉迷,熬夜爆肝了一个Pretext版的**“Bad Apple”**,那个2009年播放量过亿的经典黑白剪影MV,现在被用文字流动的方式重新演绎。
超级马里奥,塞进文字里玩
还有人做出了“超级马里奥”游戏的效果,配上背景音乐直接开大。“毁灭战士”也可以成功跑起来。
打砖块、贪吃蛇等各种游戏开脑洞的玩法层出不穷。
谁还不爱学习啊
有人把物理定律搬进了文字排版——重力、碰撞、弹性,枯燥的公式瞬间在屏幕上具象化了。还有一个小球不停撞击文字的小游戏,完美演示了胡克定律的实时效果。
在儿童绘本上应用这个效果,文字围绕插画流动,翻页就像在玩游戏。
更惊艳的是**“聊天气泡”演示**——传统CSS的fit-content做不到真正的“收缩包裹”,总有死空间。Pretext可以自动算出最紧凑的包裹宽度,不多一个像素。
这个多行文本“收缩包裹”的能力,Web上缺失了整整30年。
过去,开发者总是在炫酷好看的3D界面和流畅能用的文字排版之间被迫二选一。要么牺牲性能追求视觉,要么牺牲体验追求稳定。
但Pretext的出现直接告诉你:小孩子才做选择,大人全都要。
它解决的问题,不是小打小闹的优化,而是把文本这块一直卡着大家脖子的核心问题彻底解决掉了。
Cheng Lou自己说:“我刚从地狱深处爬出,给你们带回了未来数年UI设计最重要的基石之一。”
这句话不是夸张。
虚拟化列表(React Virtual、TanStack Virtual等)一直需要预估条目高度,要么测量不准导致滚动跳变,要么测量太慢导致掉帧。Pretext可以提前算出所有高度,滚动时线性扫描,120fps稳得一批。
Canvas/WebGL应用(Figma、Miro、Excalidraw等)以前要么近似估算文本尺寸,要么回绕DOM测量。Pretext给了这些工具一条干净的通路——不碰DOM,直接精确测量。
甚至对AI时代也有意义。Cheng Lou在设计API时就考虑了“AI友好”——测量结果可预测,AI编程助手可以直接调用。以后AI写UI组件时,不用再猜文本高度,直接调用Pretext验证不溢出。

能写出Pretext的人,绝非等闲之辈。
Cheng Lou的履历几乎串起了半部前端进化史——React Motion的创造者,ReasonML/Re语言的缔造者,Facebook Messenger前端的核心架构师。如今,他正在Midjourney用Bun撑起了整个UI体系。
但Pretext的火种,比他本人更早。
十年前,React核心团队的Sebastian Markbage就写过一个叫text-layout的实验项目——用canvas measureText做文字塑形、借pdf.js的bidi算法处理双向文本、流式逐行断行。
Pretext的架构骨架,全从这来。
Cheng Lou在2016年ReactEurope的演讲里说过一句至今被反复引用的话:“减少表达力,反而能获得更大的力量。” 十年后他亲手验证了这句话——砍掉DOM,排版反而自由了。
一个核心成员留下的实验性火种,十年后被另一个核心成员点燃成熊熊大火。
这或许就是开源世界最动人的叙事。
当然,Pretext不是万能药。
官方明确提示:system-ui在macOS上不安全,会导致测量不准;服务器端渲染还在路上;某些复杂的排版规则需要社区扩展。
但这些瑕疵,掩盖不了它的革命性。
它证明了:把浏览器字体引擎的真相前置缓存 + 纯JS布局,就能干掉DOM reflow这个老大难。
正如Django框架联合创始人Simon Willison所说:“Pretext的难点在于,它解决了不碰DOM就能计算文本换行高度的问题。传统方法是渲染再测量,非常耗时。Pretext用一系列巧妙技术让这个过程快得多,从而在浏览器应用中实现了各种新的文本渲染效果。”
更关键的是,Cheng Lou在开源推文中明确表示,这套API被设计成**“AI友好”**,AI编程助手可以直接使用。这意味着未来AI生成UI时,文本高度将不再是“猜”的,而是精确算出来的。
过去三十年,CSS一直把文本当成“黑盒”——你告诉它怎么显示,它给你结果,但过程不透明,性能不可控。
Pretext把这层黑盒彻底砸碎了。
它让开发者第一次可以在DOM生成之前,就知道每一行文字的确切位置、宽度、断点。它让文本从“渲染后才知道”变成“生成前就知道”。
Cheng Lou说这是“未来数年UI设计最重要的基石之一”,我认为他说保守了。
这可能是未来十年Web UI的基础设施。
当文字不再被布局算法委屈,当设计师不再为文本换行头疼,当AI生成的内容不再卡顿——
你会发现,那个让浏览器卡了30年的老问题,被一个15KB的引擎,温柔地解决了。
参考资料:
如果你觉得这篇文章有意思,点个“在看”,让更多人看到这个改变前端未来的15KB引擎。
暂无回复,欢迎发表第一条评论。