我们阅读了每一条反馈,并非常认真地对待您的意见。
要查看所有可用的限定符,请参阅我们的文档.
对这个项目有疑问吗?注册一个免费的GitHub帐户以打开一个问题,并联系其维护者和社区。
单击“注册GitHub”,表示您同意我们的服务条款和隐私声明。我们偶尔会向您发送与帐户相关的电子邮件。
已经在GitHub上了?登录到您的帐户
将有关章节样式、色彩和排版的相关和重叠探索结合在一起。
虽然目前开放的PR可能无法完全实现每个单独的概念,但希望这个问题能够帮助定义6.6应该交付什么。
部分
古登堡注册块样式
对于WordPress 6.5,这个建议建议从两个方面推进。
通过扩展块样式变体,主题作者将能够更有效地设置页面和模板中不同于该块全局样式的部分的样式,而无需反复重复相同的配置,例如设置页面上较暗部分的样式。这将包括在块样式变体中设置元素和内部块类型样式的功能。
该特性的功能基本上解决了用户对单个块实例或“部分”上的颜色和排版的主要需求。
色彩和排版的可组合性在Global Styles的主题或“根”级别上具有最大的价值,因为除了释放各种可能性之外,它还将帮助用户更快地实现他们满意的网站整体外观。
单个块或部分上的可组合颜色和排版的优点可能无法保证从UI角度来看所需的增加复杂性和额外工作。特别是在移动时,强大的方块风格变化满足了同样的需求。
这不是100%固定不变的,所以请随时强调问题或就此问题提问。
注:本计划已修订为以下大纲。对于后代来说,最初的计划可以在上面的历史和背景部分中阅读。
对于WordPress 6.5,计划是:
将扩展块式变体推迟到6.5之后的想法包括:
这不是百分之百的板上钉钉,所以请随时强调问题或就此问题提出问题。
抄送/@萨克森F,@米提亚斯,@安娜扎祖,@塔尔丹
文本已成功更新,但遇到以下错误:
谢谢你!将路线图更新为6.5帖子以链接到此问题。
对不起,出了点问题。
潜在的阻碍因素遇到用于扩展块样式变体。A类详细明细可以在PR上找到问题的。
经过大量测试、讨论和探索,已就上述潜在阻滞剂达成共识。单个块实例上的元素样式将增加其特殊性,以确保尊重用户的选择,并且这些选择将覆盖块样式变化中的值。
此外,似乎v2自定义SelectControl尚未准备好在编辑器中使用。扩展块样式变化功能不依赖于任何UI更新。他们的目标是允许用户界面随着可用块样式变体的数量而扩展。目前,这不太可能是一个大问题,如果需要,可能会在6.5后发布。
自定义SelectControl
如果时间允许,可以探索一种按钮和popover组合,以实现与早期配色模型相似的UI。
此外,似乎还没有准备好在编辑器中使用v2 CustomSelectControl。
我提出了一种替代方法来更新UI,使用一个简单的下拉菜单从一些早期的配色探索到PR草案(#57780). 如果决定需要UI更新,这可能会提供前进路径。
下拉菜单
添加了一个新的全局函数:古腾堡注册块样式.
古腾堡注册块样式
这个WP_块_样式_注册表类已标记最终的在内核中,因此添加了此函数,以允许跨多个块类型注册块样式变化。它还可以接受样式对象代替样式表或句柄。
WP_块_样式_注册表
最终的
这个WP_Theme_JSON_解算器_古腾堡类将所有样式对象吸收到主题的数据中,就好像在那里定义了变体一样。
WP_Theme_JSON_解算器_古腾堡
或者,可以在不使用任何样式数据的情况下注册块样式变化。然后可以在theme.json中定义其样式,例如。styles.blocks<块类型>.variations<名称>.
styles.blocks<块类型>.variations<名称>
块样式变体将支持内部元素和块类型的样式。例如:
{“样式”:{“区块”:{“核心/群体”:{“变化”:{“黑暗”:{“元素”:{…},“块”:{…},}}}}}}
由于样式的这种过度增加的特殊性,将不支持变体内部块类型的特定元素。
为了避免在theme.json中重复定义变体的样式,有一个二次公关建议允许引用共享块样式变体定义。
到目前为止,theme.json中的引用只支持引用单个属性值,而不支持引用对象。为了避免在整个代码中必须将引用的值与用户自定义的任何值合并,上面的辅助PR正在更新过程中,因此theme.json解析器将把引用的块样式变体解析为theme.json数据。
参考块样式变体主页的初步建议是:样式.blocks.variations。其中的每个变量还可以定义一个可用的块名称数组。
样式.blocks.variations
目标#56540用于按常规生成块样式变化样式,但为其内部元素和块类型样式添加样式。
这种方法目前有两个主要问题;
我们生成的嵌套样式越多,即变体的元素和块类型样式,这些样式的特殊性就越大。目前,这导致CSS对0-2-1例如.wp-block-group.is-style-dark类型标记.
0-2-1
.wp-block-group.is-style-dark类型标记
这是一个问题,因为用户在块实例上显式配置的元素的样式只有0-1-1,例如。.wp-elements-123文件,并且块样式变体元素样式将不正确地优先。
0-1-1
.wp-elements-123文件
为了降低块样式变化的特异性,我们进行了大量的探索,但如果将其降低得太低,则意味着它们不会覆盖全局块样式。
当前的权衡#56540是为了突出块实例元素样式的特殊性,同时进一步探索减少所有全局块样式特异性为零。
就用户体验而言,这更是一个问题。一个有效的用例是,用户希望将一个变体应用于另一个已经应用了变体的块中的一个块。
用户可能希望页面上有一个深色部分,但要为该部分中的卡片指定浅色样式。
通过简单生成块样式变化的样式#56540,每个块类型定义一次。这意味着所有这些风格都具有相同的特性。
当涉及到另一个块内部块上的块样式变化时,其内部块和元素将匹配这两个选择器,因此样式表中最后定义的块将优先,可能是错误的。
生成的样式无法可靠地重新排序,因此对于#56540.
虽然可以就嵌套变体的用例发生的可能性进行讨论,但对于试图分配块样式变体而没有看到所需更改的用户来说,这将是一次失败的体验。
如果我们忽略UI中的块样式控件,则当当前选定的块具有具有变体的祖先时,尽管某些块的类型相同,但在某些块上看到控件而在其他块上看不到控件可能会令人困惑。这也不会阻止用户将带有变体的块拖动到已经有变体的容器块中。
有一些早期的探索成为另一种方法(#57908).
该备选方案建议:
虽然这种方法可能也不完美。对于解决块样式变体的嵌套应用程序的问题,它看起来确实很有希望。
但要使其发挥作用,将取决于在#57841.
注:早期的探索只是早期的,没有完全的功能或测试。因此,可能会出现更多意想不到的边缘情况。
由于该功能有望增加块样式变体的价值和使用,因此它们的数量也有望增加。每个样式的按钮的当前UI伸缩性不强,可能需要进行一些调整。
这里的早期模型包括使用自定义选择控件。目前,自定义SelectControl无法渲染所需的色样,该组件的第二个新版本还没有准备好。然而,新版本可以做到这一点。
作为一项临时措施,还有一项公关使用下拉菜单而不是组件,#57780.
当前面临的问题#56540在6.5测试版发布之前的有限时间内,值得考虑是否有可能将此功能置于合适的状态。
减少这些扩展块样式变体的范围可能意味着不支持它们的内部元素和块类型样式。如果要以MVP的身份登陆,这将严重限制该功能的价值。
这导致了三个主要问题:
抄送/@你知道riad,@萨克森F,@里奇塔博,@告诉机器,@安德鲁森,@塔尔丹
很抱歉,我想听听你的想法和反馈,这样我们就可以做出决定,并计划尽快向前迈进🙏
块实例上用户生成的元素样式的特殊性增加可以吗?
我认为这本身可能是一个突破性的变化,我们有没有尝试过它如何影响现有插件和试图覆盖这些风格的主题?不是说这是不可行的,而是想知道它的影响。
是否值得从6.5中提取该功能,以便改进该方法并开发新的解决方案?
IMO,如果我们认为我们需要更多的时间来正确处理这个问题,那么我们肯定可以从6.5中去掉这个问题。IMO很重要的一点是,不要在这里运送我们不满意的东西,这可能会在未来对我们造成伤害。
我们能否在某种表格中对现有的样式生成用例进行总结,以帮助我们思考这些特定性问题。(可能会将其添加到架构文档中)。类似于:
身体
.wp-my块
.my-元素
.wp-my块.my-element
.someinstanceid
.someinstanceid.my-element
.wp-my-block.is-style
.wp-my-block.is-style.my-element
.wp-my-block.is-style.wp-other-block文件
.wp-my-block.is-style.wp-other-block.my-element文件
我想我们可能还想在这个表中介绍一些“全球风格的变化”。
我们可以计算特异性并对其进行适当排序。我希望这能给我们提供更好的线索,让我们更好地配合。
我认为这本身可能是一个突破性的变化,
同意。
起初,我的印象是,这会阻碍扩展块样式变体以覆盖内部元素。经过与@告诉机器,@安德鲁斯隆、和@萨克森F.
这些讨论产生的一般想法是,这些样式是由用户决定显式覆盖块实例中的样式而生成的。为此,增加特定性虽然是一种更改,但并不会真正改变预期的功能。
我们尝试过如何影响现有插件和试图覆盖这些样式的主题吗?不是说这是不可行的,而是想知道它的影响。
大多数关注点都在试图找到一种方法,通过#57841.
的一些初始搜索插件和主题对于显式字符串(如.wp-元素-。执行了大量更广泛的搜索可以说.wp文件-类返回的点击数太多,无法以高确定性进行梳理。
.wp-元素-
.wp文件-
我确实在搜索结果的第一页上搜索了主题。大多数情况下,上一次搜索中的主要主题分为以下几种情况:
在结果的初始页面中,大多数样式也没有设置颜色,这是目前每个块实例元素样式支持的所有颜色。
当然,这些发现都不是很可靠,我们确实需要广泛的测试。希望它们能提供更多的信息,用于评估特异性增加的严重性和影响。
我们可以在某个表格中总结一下现有的样式生成用例,以帮助我们思考这些特定问题吗。(可能会将其添加到架构文档中)。类似于:
💯 当我们继续发展这些功能时,这无疑是有益的。
如果我们谈论的是主题风格的变化,我会将此表视为全球风格变化的范围。
我喜欢这个主意。我认为这样做很可靠。
总的来说,该表适用于大多数情况。不过,有些事情可能会让它变得不正常。
根选择器
获取样式表
__实验选择器
块样式变体类,.is样式当前已添加到块的选择器中。这也意味着,如果在一个以简单元素作为其选择器的块上使用,它将中断,例如,使用第页。这是一个次要的边缘案例,我们可以单独解决。
.is样式
第页
IMO很重要的一点是,不要在这里运送我们不满意的东西,这可能会在未来对我们造成伤害。
👍 这也是我的感想。
在这个阶段,我会更有信心给这个特性更多的时间来烘焙,但我想确保我不是太保守。
如果我们能够明确哪些内容需要更改,以及作为MVP我们对交付内容的满意程度,那么我们确实还有一点时间。
我个人目前觉得这有点模糊,特别是考虑到一些解决方案的可行性取决于正在进行的探索(#57841).
也许对于6.5,我们可以:
也就是说,我还没有100%准备好放弃这个版本的功能🤞
附言:对文章长度的回复表示歉意😅
目标是只着陆#57841在beta测试期间呼吁大家更加关注它延迟扩展块样式变化,直到发布后在Gutenberg中为其提供完整的发布周期以进行改进此外,交付#56622为网站建设提供一些增强功能
你是这里的领导。我认为这个计划对我来说很有意义。这都是关于信心的。对于列表中的第一项,如果计划切换到“增加用户生成元素样式的特殊性”,则为#57841还需要吗?
我只想补充一点:我认为块编辑器中关于“样式”、“样式变化”、“(块)变化”的语言不是最佳的,可能会让开发人员(和用户)感到困惑。这里的示例使用样式其中的键变化键是嵌套的,似乎使这一点更加复杂。“块样式”也可以是指注册的块样式(它添加了是风格-类到块),但也为块注册样式表/内联CSS(请参见寄存器块样式).这并不反对关于该功能的任何讨论要点。只是想指出,当“变体”在多个地方使用,但含义不同时,在文档或web上搜索有时会非常困难和令人困惑。因此,也许这是可以预见的,并且可以使用更清晰的命名。
样式
变化
是风格-
寄存器块样式
对于列表中的第一项,如果计划切换到“增加用户生成元素样式的特殊性”,则为#57841仍然需要
如果我们采用原来的方法(#56540),然后#57841这不是必须的。
使用最初的方法,用户无法可靠地将变体应用于另一变体中的块。这似乎是一个非常理想的用例,也是该方法的障碍。
看起来我们需要采用替代方法(#57908).
非常感谢您的反馈@长号,非常感谢👍
我认为块编辑器中关于“样式”、“样式变化”、“(块)变化”的语言不是最佳的,可能会让开发人员(和用户)感到困惑。
同意。我不得不非常明确地尝试避免一些混淆,但在我看来,这样做会使讨论变得冗长和难以阅读。
此外,“块样式”可以表示注册的块样式(将is-style-class添加到块中),也可以为块注册样式表/内联CSS(请参见register_block_style)。
对的。这些仍然应该得到支持,但这里的目的是打开theme.json,将其作为定义其中一些内容的一种方法,并让用户对调整它们有更多的控制权。
只是想指出,当“变体”在多个地方使用,但含义不同时,在文档或web上搜索有时会非常困难和令人困惑。
100%同意!
因此,也许这是可以预见的,并且可以使用更清晰的命名。
正如你所指出的,许多这样的术语已经过时了,我认为需要共同努力来重命名/重塑它们。以及与社区的一些明确沟通。类似于可重用块如何重命名为模式。
不幸的是,这可能是我们在WP6.5之后需要考虑的问题。
我已将问题描述中的计划更新如下:
对于WordPress 6.5,计划是: 尝试减少全局样式块选择器的特定性。 #57841 在6.5 beta测试期内,对不同区块和主题的特异性降低进行广泛测试 将颜色和字体预设添加到全局样式 #56622 延迟着陆扩展块样式变化,直到6.6发布计划的早期 将扩展块样式的变化推迟到6.5版之后的想法包括: 该功能需要更多时间来完善 有很多边缘案例,因此多轮测试将是有益的 需要更多的时间来确保确定正确的方法,这可能取决于围绕广泛减少风格特异性而收到的反馈
将扩展块样式的变化推迟到6.5版之后的想法包括:
与此问题相关的PR正在更新或关闭过程中。完成后,我将提供所有相关链接的另一个更新。
快速更新:
年的工作仍在进行中#57908然而,它现在功能很好,看起来有点前途🤞.
努力实现降低整体块样式的特异性也在取得进展。它需要重新调整加载样式的顺序,而这一顺序刚刚合并到核心(WordPress/WordPress-develop#6010). 古腾堡的等价物现在在#58761.
风格加载顺序的变化将是6.5的全部原因,因为只有解锁区块风格变体才能真正降低特异性。考虑到固执己见的区块风格周围出现的边缘病例,将特异性降低推迟到6.5后将有更多的时间进行测试。
由于增强的块样式变化被延迟到6.6,因此应该可以使用新的v2更新相关的UI自定义选择组件,而不必采取使用下拉菜单的过渡步骤。
自定义选择
鉴于此,我已经更新了#57780相应地。
快速更新(4月23日):
#57908在最近受到更广泛关注后,仍在取得进展。
已经解决了大量反馈和一些错误。目前的延迟是试图在获得合并的最终批准之前对功能进行一点优化,并确保令人满意的性能。
根据情况,这可能会影响到该功能是否如之前所希望的那样在18.2着陆。
现在的功能#57908已经有所稳定,计划是将PR拆分为几个较小的PR,在这些PR中,可以评估每个变更子集的性能,并在着陆前进行必要的改进。
这意味着18.2中不会出现剖面样式。
通过对降低块样式变化的选择器专用性的审查,出现了两个需要解决的问题,然后才能实现截面样式(也称为块样式变化)功能。
此外,还需要合并将全局样式数据添加到块编辑器设置中的操作。
这些问题已在该跟踪问题的任务部分中指出。
我想知道是否可以解决这个问题#9357可以考虑。谢谢
谢谢你提醒我@杰弗洛波德夫👍
#9357如果能解决这个问题当然很好,但它不属于这个问题的范围。当然,这并不意味着它不能单独处理。
就个人而言,在WP6.6之前,我没有足够的带宽来调查这个问题。
主请购单拆分流程(#57908)正在继续,大多数较小的PR已被合并。
虽然该功能即将完成,但还有一些其他功能边缘案例和问题在评估block风格变异特异性降低到零时遇到#61032.
这包括一些块库样式没有其特定性的错误,也减少到了零。这导致这些块的全局样式被破坏。
如果通过将块库样式的特定性降至零来修复这些错误,则错误地重置样式将优先,并继续破坏全局样式。这方面的主要例子是社交链接块。
目前尚不清楚这将产生什么样的确切影响。在全球风格特异性首次降至零后,反馈或问题有限#60106.
A类目录搜索对于可能导致问题的常见重置样式,例如ul、ol对于社交链接板块,披露了1800个可能受到影响的主题。要求所有这些主题都必须降低其重置的特异性,例如。:其中(ul,ol),并不理想。
ul、ol
:其中(ul,ol)
当前的计划是创建一套测试,可以针对目录中的所有主题运行,以量化潜在影响,并告知围绕该功能的任何决策。
继续向零特性推进,要求一些主题更新其重置样式表。
优势:
缺点:
通过收集有关变更真实影响的数据以及大量的沟通和文档,可以减轻其中的一些风险。
同时,正在探索一种折衷的方法,在这种方法中,特异性会大幅度降低,但不会达到零特异性。该方法背后的思想是,所有样式仍然具有“级别”特异性,这是通过将生成的选择器封装在:其中()然后在它们前面加上类似的东西html格式,:root,或身体这将充分提高它们的特异性,以克服常见的元素重置类型,例如ul、ol,小时1等。
:其中()
html格式
:root
小时1
探索此选项的公关可以在#61638.
折衷方法的优点:
wp-块-*
0-1-0
我发表了一篇关于GitHub的讨论WP6.6的CSS特定性希望在这里获得一些前进道路的明确性,并将决策记录在案。
经过一段时间讨论,并考虑到6.6 beta之前的有限时间,可以选择使用:root前缀似乎是最安全的选择,似乎得到了大多数人的支持。
我想强调的是,这并不意味着我们将来不会出现零特定性样式,只是现在不适合WP6.6。在未来的版本中,我们可以朝着这个方向发展,同时也可以利用CSS层。
特异性变化#61638现已合并,这将为获得主要截面样式PR扫清道路(#57908)也进行了审查🎉
剖面样式功能位于古腾堡18.5,正在进行WP6.6🎉
有鉴于此,我将关闭此问题,并在6.6测试版期间跟进功能文档。
感谢所有参与其中的人!🙇
阿隆·罗伯特肖
没有分支或拉请求