跳到主要内容

CSS自定义属性转SCSS变量转换器

将CSS自定义属性(--name、var())转换为Sass/SCSS变量($name)或反之。将:root展开为Sass全局作用域,解析var()回退值,并保留注释和结构。

输入

输出

输出
 
这对您有帮助吗?

使用此工具的更多方式

REST API

curl -X POST https://api.iotools.cloud/v1/tool/css-custom-properties-to-scss-converter \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "direction": "css-to-scss",
    "inputCode": ":root {\n  --primary-color: #464aff;\n  --spacing-…"
  }'

替换成您账户中的密钥。工具的字段即为请求体——没有额外包装。

让 AI 代理执行

Use the IOTools `css-custom-properties-to-scss-converter` tool (CSS Custom Properties to SCSS Variables Converter) on this input:

YOUR_INPUT_HERE

将此粘贴给任何已连接 IOTools MCP 服务器的代理,再加上您的输入内容。

嵌入式小组件

<iframe
  src="https://iotools.cloud/embed/css-custom-properties-to-scss-converter/"
  width="100%" height="520" frameborder="0" scrolling="no" loading="lazy"
  title="CSS自定义属性转SCSS变量转换器 — iotools.cloud"
  sandbox="allow-scripts allow-forms allow-same-origin allow-downloads allow-popups allow-popups-to-escape-sandbox"
  allow="clipboard-write"
  style="width:100%;border:1px solid #e5e7eb;border-radius:12px;overflow:hidden"></iframe>
<script src="https://iotools.cloud/embed.js" async></script>

把它放到您自己的页面上——免费,无需密钥,只需保留一个反向链接。

每次 API/MCP 调用费用5 积分起
需要更多积分?查看定价

也可通过

使用指南

该工具的作用

粘贴使用自定义属性的CSS(--primary-color: #464aff;,通过var(--primary-color)引用),获取等效的Sass,包含$primary-color: #464aff;声明和$primary-color引用——或反向运行,从基于$variable的SCSS转换回普通CSS自定义属性。选择一个方向,粘贴代码,转换后的代码将瞬间出现。一切都在浏览器中运行;您粘贴的任何内容都不会上传到任何地方。

CSS → SCSS

  • :root { ... }包装器被展开:其声明浮向Sass全局作用域,因为Sass变量不能像CSS自定义属性那样存在于选择器内部。
  • --name:root块中声明时,var(--name)变成$name
  • var(--name, fallback)--name没有声明指向时为您解析回退值——包括回退值本身是嵌套var()的情况。
  • 注释、选择器和被转换部分之外的格式保持您编写时的完全相同。

SCSS → CSS

  • 在顶层声明的$name: value;移到生成的:root { ... }块中,因为普通自定义属性不能在CSS选择器外存在。
  • 在选择器内部声明的$name: value;就地转换为--name: value;,保持其作用域。
  • 每个$name引用都变成var(--name)。尾随!default被删除——它的"仅在未设置时分配"行为在静态CSS中没有等效物。

它不会做什么

这是一个变量语法转换器,而不是Sass编译器。混合宏、@if/@each@function、字符串插值(#{...})和Sass数学不会被评估——诸如$base * 2这样的值变成普通文本var(--base) * 2,您需要手动用calc()包装才能获得有效CSS。在条件选择器内部声明的--name(如[data-theme="dark"]覆盖、@media断点调整)保持原样而不是转换,因为编译时Sass变量不能代表根据媒体查询或级联而改变的值。

常见问题

这会将我的整个Sass文件编译为CSS吗? 不会——只有变量声明和引用被转换。嵌套、&、混合宏和其他所有内容都保持不变。通过实际的Sass编译器运行结果(或使用SCSS/Sass格式化工具整理输出)以获得变量之外的任何内容。

转换到SCSS的过程中var()回退值会发生什么? 如果引用的自定义属性在您的输入的其他地方声明,则删除回退——Sass变量已经有真实值。如果它没有在任何地方声明,回退值本身会被使用,因此转换后的代码不会引用未定义的变量。

它可以处理在:root外部作用域的CSS变量,例如暗黑模式覆盖吗? 不能,这是设计限制——在媒体查询或[data-theme]选择器下重新声明的--name是运行时覆盖,在Sass的编译时变量中没有等效物,因此这些声明保持为普通CSS,而不是静默产生错误的快照。

隐私

一切都在您的浏览器中本地运行。您的代码从不上传或存储在任何地方。

sasscss variablesdesign tokensvar()preprocessorthemingstylesheet variablesroot variables

喜欢这些工具?去掉广告吧。

一次性付款即可永久移除您账户中的所有广告。无需订阅,不追踪。