我个人并不是原子 CSS 的忠实粉丝。我不喜欢所有这些类。我喜欢用 CSS 来表达我的样式,因为我发现 CSS……很好。但我欣赏很多人似乎喜欢它,它确实有一些明显的优势,比如生成的样式表通常比其他方式编写的纯手工 CSS 更小——此外,可用的类就像护栏一样,确保在设计系统中更一致地使用。
我也欣赏在这个领域发生的创新。它似乎已经从
这里有数十亿个你可以使用的类,但是,嘿,至少 CSS 仍然相当小并且不会改变!
到
是的,就是这样,但我们将删除您未使用的那部分。
以及现在
我们将根据您的实际使用情况动态生成样式表。
Anthony Fu 在 “重新构想原子 CSS” 中很好地概述了这段历史,然后他带着 UnoCSS 进一步参与其中。我不能说我完全理解这一切,但它看起来可以做其前辈可以做的一切,甚至更多,主要通过规则配置。它也非常快(基于 Vite),我一直很喜欢快速的工具——尤其是在目标是紧密的反馈循环时。
在我看来,它看起来相当复杂,并且集成的可能性有限。我不喜欢将样式转换为任意 HTML 属性的那一部分。如果它们像 JSX 属性一样,那很好。但我认为完全进入 DOM 的 HTML 属性很危险,应该使用 data-*
范围。
同时,我一直喜欢人们思考问题并分享他们解决问题的思路,就像 Anthony 在这里所做的那样。此外,还有一个 游乐场,这很有趣。
根据我对原子 CSS 历史的了解,它最初并非为了减少样式表的大小而创建(这只是设计的结果)。
雅虎的那些人最初试图解决的问题是如何在一个大型组织中管理 CSS,这个组织有多个前端团队在全球不同时区工作于不同的产品,团队成员的经验和技能水平也各不相同。
原子 CSS 的诞生是为了尝试解决其中的一些问题,通过将样式整合到一个架构中,避免 CSS 类命名冲突,在所有产品中重复使用相同的 CSS,由于自动生成的类而减少回归错误等等,还有很多我可能忘记了。
样式表大小的减少只是设计的一个意外收获 :)
哈哈,看来我在一两个月前发明了 UnoCSS,但当时以为我只是在开玩笑。
实际上,ACSS 自 2014 年以来一直在做**完全一样的事情**!但在当时,“原子 CSS”被认为是如此糟糕,以至于大多数人甚至都没有费心去了解 ACSS 是什么 :-(