SuperAPI AI 工具集

svelte-styling

前端与建站

查看项目

更新于 10-16 07:23

技能介绍

用途:编写与调试 Svelte 5 组件样式,处理样式隔离、CSS 变量传递、style: 指令、动画 keyframes,以及理解编译器如何处理样式。

主要能力:<style> 默认作用域化,编译时给选择器加哈希类(如 svelte-123xyz),并额外增加 +0-1-0 特异性;同一作用域类重复出现时后续被 :where() 包裹,贡献零特异性。@keyframes 名称同样作用域化,同块内 animation 引用会被重写。:global(...) 可让单个选择器退出作用域,支持嵌套与 :global 块;全局 keyframe 用 -global- 前缀。CSS 自定义属性可跨作用域级联,父组件通过 --var 传值,编译时插入 svelte-css-wrapper(display: contents),可能影响 > 子选择器。style: 指令是 style 属性的简写,支持表达式、style:--var、|important,且优先于 style="" 属性;数值不会自动加单位。Svelte 5.16+ 的 class 支持对象与数组(clsx 规则),class: 指令已不推荐。

使用方式:在组件 <style> 中写作用域样式;需要穿透时用 :global 或 CSS 变量;动态类用 class={[...]} 或对象形式;动态动画名用 @keyframes -global-name。

限制:作用域样式不穿透组件边界,{@html} 内容无作用域类,动态添加的类需 :global;style=""、JS、style: 指令中的 keyframe 名不会被重写;嵌套 <style> 不经编译器处理,规则全局生效且 keyframe 会冲突;:global 不降低特异性,且样式化不可控 HTML 有 XSS 风险。