Dan*_*Mil 5 css vaadin web-component shadow-dom
作为https://github.com/vaadin/web-components/issues/5214的替代解决方案,我们现在在头像(-group)的影子 DOM 中设置了一些 css 部分的样式。
我想知道的是:
我们可以/应该在 Vaadin 中(但一般而言)设置 CSS(部分)样式到什么程度而不破坏向后兼容性?
构建良好 Web 组件的最佳实践是什么/在哪里,以便 API 消费者不会太快地破坏向后兼容性。
例如:当 API 使用者更改 css 显示属性时,使用根 Flex 容器构建 Web 组件将会中断,因此在这种情况下,将 Flex 容器移动到 Shadow DOM 可以使组件不那么脆弱。但是,消费者仍然可能会破坏很多东西......
这同样适用于 CSS 部分。
Vaadin 组件的产品负责人位于此处。您问的问题与我们多年来一直在问自己的问题完全相同:
\nETC。
\n在 Vaadin 10 中,我们最初的方法是在基于 Web Component 的组件首次发布时,在 Shadow DOM 中尽可能隐藏组件的内部结构,并仅定义具有部件名称(和根元素)的元素作为部件“公共样式 API”的。
\n然而这种方法有很多缺点:
\n今天,我对此事的看法是,试图阻止这一切都是徒劳的。我们在组件中仍然有影子 DOM,但样式封装方面并不是我们真正尝试利用的。我们将任何元素移动到从中受益的 light DOM(同时出于不同的技术原因将其他部分保留在 Shadow DOM 中),并且我们准备将任何元素公开为命名部分,对于自定义 CSS 有明确的用例。
\n当然,我在这里所说的是一个非常通用的组件库,它并不是供特定产品或公司内部使用,而是供数千家公司以他们喜欢的任何方式使用,其中通常包括调整外观和感觉,在某些情况下甚至布局/结构 CSS,以满足他们的需求。
\n如果我要为特定公司或产品量身定制的设计系统构建一组组件,我可能会更倾向于限制可定制性,但我仍然需要在可访问性等方面进行平衡。
\n因此,为了回答您的问题:
\n 归档时间: |
|
查看次数: |
92 次 |
最近记录: |