Are Stylus and SASS really that similar?
Yes — structurally. Both use indentation instead of braces, both omit semicolons. The key differences: SASS requires a colon between property and value (Stylus makes it optional), and SASS requires the $ sigil on every variable (Stylus does not). The converter handles those two normalisations.
What is "SASS" vs "SCSS"?
They are two syntaxes for the same Sass language. SASS (.sass extension) is the original indented syntax, no braces or semicolons. SCSS (.scss extension) is the newer brace-and-semicolon syntax compatible with plain CSS. Both compile with the same Dart Sass binary; you choose by file extension.
Why convert Stylus to SASS instead of SCSS?
If your team values the indentation aesthetic of Stylus and you want to stay on a maintained preprocessor, SASS is the closest match — both are indent-based. SCSS requires a more visible syntax change (adding braces) and may feel like a step backwards for indentation devotees. Pick SASS to preserve the visual feel of your Stylus codebase.
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 syntax from the file extension and uses the indented parser. sass-loader and Vite plugins do the same.
Are mixins translated automatically?
Mixin definitions are syntactic. Stylus uses inline calls like border-radius 4px; SASS uses =mixin-name and +mixin-name shorthand (or @mixin / @include). The converter handles syntax for variables and structure; mixins need a quick manual rewrite after conversion.
Are there any features that do not translate?
Stylus interpolation ({varName}) becomes SASS #{$varName}. Stylus property-as-callable mixins translate to SASS @include syntax. Stylus rest arguments (...) work the same in both. The 90% case (variables, declarations, nested selectors, & references) translates losslessly.
Does the converter preserve nested selectors?
Yes. Both Stylus and SASS use indentation for nesting, so the structure carries over directly. The & parent reference works identically in both languages.
Is my source uploaded?
No. Conversion runs entirely in your browser as JavaScript. Your .styl source never leaves the device. Verify in DevTools — Network tab stays empty when you click Convert.