我可以复现这个问题。这看起来是 R2 中的一个 bug。
如果向编译器传递 :rtl 选项,它会通过 R2 处理 CSS,并执行神奇的 RTL 转换。
这通常运行良好,但由于某种原因,我们似乎遇到了一种边缘情况,导致它返回混乱的 CSS。我们使用一种模式为移动导航菜单创建淡入淡出效果,如下所示。
这并不是唯一使用该模式的地方;这只是一个示例。
看起来这种模式超出了 R2 的处理能力。我们调用了一个 RGBA 函数并将 CSS 变量传递给它,然后我们还添加了一个停止点。
当通过 R2 处理时,它返回类似这样的内容:
如果关闭该功能(即使在 RTL 本地环境中),我们会得到以下内容:
![]()
混乱的 CSS 导致编译器出错,并将该规则之后的任何 CSS 压缩为无法生效的无用代码。
因此,在该样式表之后有多个样式表在移动 RTL 模式下从未被加载。用户卡片样式表就是其中之一。
我尝试通过移除停止点来降低该模式的复杂度,结果似乎可以正常工作。因此,我们从以下内容:
background: linear-gradient(
to right,
rgba(var(--secondary-rgb), 0) 0%,
rgba(var(--secondary-rgb), 1) 100%
);
改为以下内容:
background: linear-gradient(
to right,
rgba(var(--secondary-rgb), 0),
rgba(var(--secondary-rgb), 1)
);
这不会造成任何视觉变化——因为这些本来就是默认的停止点——并且解决了该问题。
我已提交了一个 PR,以更新我们所有使用该模式的地方:
感谢报告此问题 @nildarar ![]()
