我认为这提供了很好的分离和真实的数据属性。例外,这才是修饰符应该有的样子。 安迪:我放弃 BEM 的部分原因是因为我发现我使用它的方式,特别是在设计系统中,修改器占主导地位,这成为一个问题,因为它就像,它的作用是什么我此时的街区?因为如果我经常将其修改到无法识别的程度,那么这种方法仍然可以发挥其应有的作用吗? 安迪:然后是整个设计代币的东西,Jina 用闪电设计系统做的东西,我们现在都开始采用了。通过这种方法,实用程序类的东西真正开始有意义了。所以我就把别人作品中所有我喜欢的东西都扔掉了,转而融入我自己的作品中。 德鲁:你谈到了边界元法(BEM),这种修改器方法有点失控。这是 CUBE 试图解决的 BEM 的主要痛点之一吗? 安迪:是的,绝对是。
我确实喜欢 BEM 的修改器方法
它确实有意义。我喜欢 BEM 的地方是我仍然在做的事情,是元素的双下划线,然后是修饰符的双破折号。我喜欢这种组织事情的方式。这只是一个好吧,好吧,我实际上可以用实用程序类来解释很多修饰符,然后是其他位…… 安迪:所以我在文章中使用的例子是,假设你有一张卡片,然后翻 拉脱维亚手机号码列表 转卡片,因此内容出现在图像之前。那么这就有意义了,看到 display: flex 然后你颠倒它,颠倒顺序。这是有道理的,为此制定一个例外规则,因为它是卡默认状态的例外,这就是我喜欢看到的方式。这就像该组件上的受影响状态,这就是异常,这是有道理的。 安迪:我最近做的很多东西,带有反应式 JavaScript 的现代前端堆栈,有很多状态变化,在 CSS 和 JavaScript 之间适当处理它是有意义的,因为它们变得越来越紧密彼此之间,无论你喜欢与否。
这是他们的共同语言
正如你从我的脸上看到的,非常不是,但你就这样了。你可能会想,“实际上,我最近经常使用 React,所以我是反过来的。” 所以我也能看到这一点。 德鲁:那么让我们进入 CUBE。所以 CUBE 代表 Composition Utility Block Exception。是对的吗? 安迪:是的。就是那个。 德鲁:这到底是什么意思? 安迪:哦,伙计,你以前应该听说过!去年我在做一个演讲。我做了一个 传真列表 演讲,名为“使用可扩展的 CSS 保持简单”,其中我介绍了它的早期版本,称为 CBEUT,即 Cascade Block Element Utility Token。这是垃圾。我讨厌它的名字。我做过几次,去年的这个演讲,我真的不喜欢这个名字。然后,当我今年开始做这些事情时,我想,“我真的需要考虑一下它到底是什么以及它叫什么。