上个月,超过200人聚集在我家乡安大略省剑桥,聊天、交流和窥探我们正在工作的最新项目。
Tailwind Connect 起初只是一个在团队来城镇时举办小型本地聚会的想法,但自然发展成我们租用一个大型大厅,聘请四名摄像师,并累积的餐饮费用令我自己的婚礼相形见绌。
尽管我们在制作上有些失控,但我们真的尽力让它更像一个聚会而不是全面的会议。我们在晚上举办了活动,并仅进行了一场演讲,尽可能多地留出时间让人们聚在一起,享用披萨和啤酒。
我们原本预计这将是一个“下班后开车到达”的地方性活动,但几乎半数与会者是乘飞机前来的。因此,为了帮助大家充分利用在这里的时间,我们为活动设置了一个 Discord 服务器,以方便来自外地的人员互相计划,并在活动空间旁边的 Foundry Tavern 租下了一个露台,以便大家有借口提前见面,结交新朋友。

我们在下午五点半左右打开了活动的大门,并以一个小时的开幕酒会开始夜晚,大家可以聚在一起聊天,享用一些小吃。
我认为我们真的做得很好的一个细节是徽章——当你购买门票时,我们给你一个简单的 markdown 字段,你可以在上面写下任何你想分享的内容,以帮助他人开启有趣的对话。
我在整晚都在看大家的徽章,这是一种绝妙的方式,可以立即打破僵局,给人们提供谈话的机会。
在下午六点半左右,大家都坐下来了,开始了 主旨演讲。我以一点关于 Tailwind CSS 项目的历史作为开场,讲述它是如何发展到今天的。
六年前,它只是我在各个项目之间复制粘贴的几份样式表。今天,它每月被数百万开发者下载超过 2500 万次,并被一些世界上最大的公司用于构建一些最大的网站。能有机会亲自庆祝我们在社区中取得的成就对我来说真的很特别。
之后,Sam Selikoff 演示了 一些精彩的演示,展示了 CSS 中一些最酷的新特性。他演示了诸如强调颜色、流体排版、标题平衡、容器查询,甚至是砖石网格等功能,所有这些都是使用 Tailwind CSS 和工具优先工作流程实现的。
Sam 是个令人惊叹的朋友,我邀请他来参加活动,并在没有真正计划的情况下成为主旨演讲的一部分,在他到达后大约 36 小时内,他就准备好了整个演讲,并且表现得非常出色。没有幻灯片,全部是现场编码,并且表现得像个专业人士。强烈推荐他的 YouTube 频道 和培训网站 Build UI —— 这个家伙是个极好的老师。
接下来,我给大家 提前展示了 Oxide,Tailwind CSS 引擎的下一个版本。
Oxide 有很多不同的组件,但它们都归结为两个目标——提升性能,简化开发者的体验。
我们正在通过集成 Lightning CSS 将 Tailwind 打造成一个一体化的 CSS 处理工具,这意味着在下一个版本的 Tailwind 中,导入其他 CSS 文件、嵌套、供应商前缀以及未来 CSS 特性的语法转换等功能将直接可用——不需要安装或配置任何额外的工具,如 autoprefixer
或 postcss-import
。
Lightning CSS 是用 Rust 编写的,这使得它非常快,而我们也在重新编写一些关键的路径,例如扫描您所有模板文件中的类名,来逐渐接触 Rust。
通过这些改进,我们看到在实际项目中的构建时间减少了超过 50%,使得我们最大项目的生产构建时间降至大约 150 毫秒。

Oxide 还将带来简化的配置体验。我们正在添加自动内容检测,因此您无需再配置所有模板文件的路径,并通过在 CSS 文件顶部用简单的 @import "tailwindcss"
调用来替代所有 @tailwind
指令,从而使 Tailwind 更易于添加到您自己的 CSS 中。
我还分享了我们正在探索的一个想法的早期版本,旨在直接在您的 CSS 文件中配置 Tailwind CSS,而不是在 JavaScript 中进行配置。通过基于 CSS 的配置、自动内容检测和简化的导入方式,未来配置 Tailwind 的一些自定义颜色和字体可能看起来简单如以下:
@import "tailwindcss";@import "./fonts" layer(base);:theme { --colors-neon-pink: oklch(71.7% 0.25 360); --colors-neon-lime: oklch(91.5% 0.258 129); --colors-neon-cyan: oklch(91.3% 0.139 195.8); --font-family-sans: "Inter", sans-serif; --font-family-display: "Satoshi", sans-serif;}
我们计划在没有任何破坏性更改的情况下引入所有这些东西,许多这些改进(包括 Lightning CSS 集成和基于 Rust 的模板解析器)将在接下来的几个月内在 Tailwind CSS v3.4 中可用。
我肯定会在发布前更详细地写到这些内容,但如果您想在此之前更仔细地了解,可以 观看主旨演讲。
我们以 Catalyst 预览 结束了主旨演讲,这是一款我们自去年底以来一直在开发的新的 React UI 套件。
这是我们目前计划中的一项项目,经过几个月的探讨,我们最终在去年十月开始了它的开发。
Catalyst 是一个集成了所有必要组件的系统,配备了经过精心设计的 API,包括构建您自己应用程序所需的所有基本构件。它包括按钮、表单控件、对话框、滑动层、表格、下拉菜单等。

Catalyst 和我们现有的应用程序 UI 组件示例之间最大的区别在于,Catalyst 中的组件都是像真实项目一样连接在一起,而不是孤立的复制粘贴代码片段。
但就像我们的 网站模板 一样,Catalyst 中的代码是属于您的。如果您想微调某些内容,只需打开文件进行调整——它不是通过 npm 安装的库。
把它想象成您自己组件系统的起点。您从我们这里下载最新版本,将 /components
目录的内容复制到项目中,然后开始构建。
如果您需要更改某些内容,您就去更改它。
当您想创建自己的新组件时,请创建它们。
整个想法是,在经历了六个月后,代码基看起来如此 属于您,以至于您几乎忘记了最初是通过 Catalyst 启动的。
在介绍了该项目并给大家讲解了一些内容后,我把时间转给了 Steve Schoger,他出色地讲解了 所有小的设计细节,让 Catalyst 感觉像是一个经过打磨的设计系统。
我通过展示一些我们必须使用的高级 Tailwind CSS 技巧来总结,来实现这些设计细节,例如如何使用 Framer Motion 和 CSS 变量实施响应式过渡,以及 Tailwind 的任意属性特性。
Catalyst 仍在不断完善中,所以不需要太过期待,但如果一切顺利,我们将在下个月左右为 Tailwind UI 客户提供早期版本和更多细节。
在接下来的三个小时里,我们在活动空间内享用小吃,结识所有参加活动的人。
我在主旨演讲中提到,这是该项目历史上第一次有一群 Tailwind 爱好者聚在一起,这对我来说是一个非常特别的经历,能亲自见到那么多人,他们从使用这个框架中获益良多。当一切都仅仅存在于 GitHub 和 Twitter 上时,很容易低估我们所做工作的影响,现在看到它以实体空间和真实人群体现出来,让我充满了自豪感。
为这些项目工作并帮助如此多人在构建 web 时更加愉快,真是一种荣幸。期待未来能够举办更多这样的活动——这绝对是我生活中的一大亮点。
如果您想查看更多活动照片,请访问 Tailwind Connect 2023 照片库,如果您无法亲自到场,可以 在 YouTube 上观看主旨演讲。