Sass is easy to use and easy to turn into an unmaintainable mess. These questions check whether a candidate writes structured, scalable styles.
Hiring a Sass / SCSS developer is easy. Telling a real one from a convincing résumé is the hard part — and it’s most of what we do. These are grouped by level, because the same question that stretches a junior is a warm-up for a senior.
Junior Sass / SCSS interview questions
0–2 years
Fundamentals.
What is Sass and why use it?
A CSS preprocessor adding variables, nesting, mixins and functions, compiled to plain CSS, improving maintainability.
Thinks browsers run Sass directly.
What is the difference between SCSS and the indented Sass syntax?
SCSS is CSS-superset syntax with braces/semicolons; the older indented syntax uses whitespace. SCSS is the common choice.
Doesn’t know there are two syntaxes.
What are variables in Sass?
Reusable stored values ($primary) for colours, spacing, etc., keeping styles consistent and easy to change.
Hardcodes the same values everywhere.
What is nesting and its main risk?
Writing selectors inside others to mirror structure; over-nesting produces overly-specific, brittle selectors.
Nests five levels deep and creates specificity problems.
What is a mixin?
A reusable block of declarations included with @include, optionally parameterised, reducing duplication.
Copy-pastes the same declarations repeatedly.
What is partials and @use/@import?
Splitting styles into partial files combined into one stylesheet; modern Sass uses @use over the deprecated @import.
Still relies on the deprecated @import everywhere.
What is the difference between a mixin and a placeholder (%)?
Mixins can take arguments and are included; placeholders are extended with @extend and share rules without arguments.
Uses the wrong one and bloats output.
How do operators and math work in Sass?
Arithmetic on numbers/units for computed sizing, though modern CSS calc() covers many cases.
Hardcodes values that could be derived.
Mid-level Sass / SCSS interview questions
2–5 years
Structure and reuse.
When should you use @extend vs a mixin?
Mixins for parameterised or independent reuse; @extend to share a rule set, but it can create surprising, coupled selector groups.
Overuses @extend and produces tangled output.
What are Sass functions and control directives?
Built-in and custom functions plus @if, @each, @for for generating styles programmatically.
Writes repetitive utility classes by hand.
What are maps and where are they useful?
Key-value collections for theming and design tokens, iterated to generate consistent styles.
Duplicates theme values across files.
How do you keep specificity under control with Sass?
Shallow nesting, a naming methodology (BEM), and avoiding deep descendant selectors the preprocessor makes easy to overuse.
Deep nesting causes specificity wars.
How do you organise a Sass codebase?
A structure like the 7-1 pattern (base, components, layout, utilities, etc.) with clear responsibilities.
One giant unstructured stylesheet.
How do design tokens work with Sass?
Central variables/maps for colours, spacing and type feeding mixins and components for consistency and theming.
Scatters magic numbers throughout.
What are the pitfalls of Sass output size?
Overusing @extend, generating huge utility sets, and deep nesting can bloat compiled CSS.
Ships megabytes of generated CSS.
How does Sass relate to CSS custom properties?
Sass variables are compile-time; CSS custom properties are runtime and enable dynamic theming — often used together.
Thinks Sass variables can change at runtime.
Senior Sass / SCSS interview questions
5+ years
Architecture at scale.
How do you architect scalable styles for a large team?
A methodology (BEM/ITCSS), tokens, shallow specificity, modular partials, and linting to prevent drift.
Ad-hoc styles with no system.
When is Sass unnecessary given modern CSS?
Native custom properties, nesting and calc() cover much of what Sass provided; Sass still helps for logic, maps and mixins.
Insists Sass is always required, unaware of modern CSS.
How do you migrate a legacy Sass codebase?
Incremental adoption of @use/modules, removing dead styles, introducing tokens, and reducing specificity gradually.
Proposes a risky full rewrite.
How do you prevent CSS output bloat at scale?
Audit generated output, limit @extend and utility explosion, purge unused styles, and monitor bundle size.
Never measures the compiled CSS size.
How do you support theming and dark mode?
CSS custom properties for runtime themes, driven by Sass tokens/maps, respecting prefers-color-scheme.
Hardcodes colours and can’t theme.
How do you integrate Sass into a modern build pipeline?
Compilation, autoprefixing, minification and dead-code purging in the build, with sourcemaps for debugging.
Compiles Sass by hand with no optimisation.
How do you enforce consistency across a component library?
Shared tokens, mixins and lint rules so every component draws from the same design system.
Each component reinvents spacing and colours.
What are the tradeoffs of Sass vs CSS-in-JS vs utility frameworks?
Sass is framework-agnostic and mature; CSS-in-JS colocates styles with components; utility frameworks trade verbosity for speed — each fits different teams.
Presents one approach as universally correct.
Build and score a full interview with our free interview scorecard tool, browse the full question hub, or see how we interview engineers.