What is the difference between SASS and SCSS syntax?
SASS — the original Sass — uses indentation for nesting and drops braces { } and trailing semicolons entirely. SCSS keeps the CSS-like braces and semicolons. Both languages share the same Sass features (variables, mixins, partials), but SASS files use the .sass extension and SCSS files use .scss. They are not interchangeable line-by-line: a .scss file will not parse as .sass.
Why would I choose indented SASS over SCSS?
Indented SASS is more concise — no braces, no semicolons, fewer keystrokes. Teams that come from a Python or YAML background tend to prefer it; teams used to JavaScript and CSS usually prefer SCSS. Functionally the two compile to the same CSS. Pick SASS only when an existing codebase or framework (older Rails apps, Middleman) already uses it.
How does indentation work in SASS?
Each level of nesting must be indented consistently — typically 2 spaces. Tabs and spaces cannot be mixed. A property belongs to a selector if it is indented one level deeper. Children of a nested selector indent one level beyond their parent. The Sass compiler will error on inconsistent indentation, similar to Python.
Is the converted .sass file compile-compatible with Dart Sass?
Yes. The output uses the standard indented syntax that Dart Sass — the official, actively-maintained Sass implementation — accepts. Run sass input.sass output.css with no flags. The compiled CSS is identical to the original input.
Does the converter add $variables or @mixin statements?
No — the converter handles syntax translation only. Detecting which colour, size, or radius values should become $variables requires human judgment. Convert first, then refactor by hand: extract repeated values, name them, and re-run the SASS to CSS compiler to verify nothing changed.
Can I convert SASS back to CSS or SCSS?
Yes. Use sass input.sass output.css with Dart Sass for the CSS direction, or use the SASS to SCSS converter on this site. The Sass language has full bidirectional conversion between the two syntaxes — they are different surface representations of the same AST.
What about pseudo-classes and @media queries?
Pseudo-classes like :hover and ::before are kept on their owning selector — they appear on the same indentation level as the selector they belong to. @media blocks are translated to indented form: @media (min-width: 768px) on its own line, with declarations indented beneath.
Is my CSS sent to a server?
No. The conversion is performed by JavaScript running in your browser. Stylesheets containing internal class names, design tokens, or unreleased branding never leave your machine. Open DevTools Network tab — clicking Run makes zero requests.