fix(compiler-sfc): keep scope id on :deep() selector lists with nesting (fix #15205) - #15206
fix(compiler-sfc): keep scope id on :deep() selector lists with nesting (fix #15205)#15206lazerg wants to merge 1 commit into
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (2)
📝 WalkthroughWalkthroughThe scoped CSS plugin now detects ChangesScoped CSS deep selector handling
Estimated code review effort: 2 (Simple) | ~10 minutes Suggested labels: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Warning There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure. 🔧 ESLint
ESLint install failed. For unrecoverable errors, disable the tool in CodeRabbit configuration. Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
@vue/compiler-core
@vue/compiler-dom
@vue/compiler-sfc
@vue/compiler-ssr
@vue/reactivity
@vue/runtime-core
@vue/runtime-dom
@vue/server-renderer
@vue/shared
vue
@vue/compat
commit: |
Size ReportBundles
Usages
|
|
Thanks for the fix. Closing in favor of #15270 |
When a scoped style rule mixes a comma-separated selector list, a
:deep()member, and nested child rules, one of the plain members can end up without a scope id, so its selector leaks to the whole page.The rule's
:deepstatus is set as a side effect while each member of the list is rewritten. A member that comes before the:deep()one reads the status as not-yet-deep and skips the scope id. This resolves the status once for the whole list before any member is rewritten, so every member gets scoped regardless of its position.Fixes #15205
Summary by CodeRabbit
Bug Fixes
:deep()selectors when combined with nested rules.Tests