What is the difference between SCSS and SASS?
They are two syntaxes for the same Sass language. SCSS (.scss) uses braces and semicolons — it is a strict superset of CSS. SASS (.sass), the original syntax, uses indentation instead of braces and skips semicolons. Both compile with the same Dart Sass binary; you choose by file extension. Variables, mixins, and nesting work identically in both.
Can I convert losslessly between SCSS and SASS?
Yes — they map one-to-one. The Sass team even ships a built-in converter (sass-convert) that handles edge cases. This browser version covers the 95% case (variables, nested rules, declarations, & references) and avoids the Node install. Multi-line declarations and inline @if blocks may need a quick visual check after conversion.
Why prefer indented SASS over SCSS?
Indented SASS is more concise — fewer keystrokes, less visual clutter. Some teams find it cleaner once they get used to whitespace-significant syntax. Others find SCSS easier because it stays compatible with copy-pasted CSS. Pick SASS for terseness; pick SCSS for CSS familiarity.
Will the SASS output compile with Dart Sass?
Yes. Save with a .sass extension (not .scss) and run sass input.sass output.css. Dart Sass autodetects the indented syntax from the file extension. sass-loader and Vite plugins do the same.
Are SCSS @mixin and @include translated correctly?
In SASS the syntax also supports @mixin / @include but additionally allows the shorthand =mixin-name and +mixin-name. The converter keeps the @mixin form (which works in both syntaxes) and only handles brace stripping. Convert =/+ shorthand manually if your style guide prefers it.
Does the converter handle multi-line CSS values?
SCSS allows multi-line values (e.g. for long box-shadow lists or grid-template). The brace-stripping pass collapses them to single lines per declaration. After conversion, manually re-flow multi-line values with Sass continuation backslashes if needed.
What about @if / @each / @for blocks?
These at-rule control structures translate to indent-based form: @if condition with the body indented underneath, no braces. The converter follows the same rules as for selector blocks. @else may need a quick visual check after conversion.
Is my source uploaded?
No. Conversion runs entirely in your browser as JavaScript. Your .scss source never leaves the device. Verify in DevTools — the Network tab stays empty when you click Convert.