Sass is, in the words of its own documentation, “a stylesheet language that’s compiled to CSS.” It extends plain CSS with programming-style features such as variables, nested rules, mixins, and functions, while keeping “a fully CSS-compatible syntax.” The result is a more powerful authoring language: developers write Sass, a compiler turns it into ordinary CSS that browsers understand, and the extra features exist only at build time. First designed by Hampton Catlin and developed with collaborators beginning in 2006, Sass became one of the most influential tools in front-end styling.
The features Sass introduced addressed real pain points in large stylesheets. Variables let a color or spacing value be defined once and reused everywhere, so a theme change is a single edit. Nesting lets related selectors be written inside one another, mirroring the structure of the markup instead of repeating long selector chains. Mixins package a reusable block of declarations that can be included anywhere, optionally parameterized, and functions compute values. As the documentation puts it, Sass “helps keep large stylesheets well-organized and makes it easy to share design within and across projects.”
Sass is notable for offering two syntaxes. The original, indentation-based syntax uses the “.sass” extension and omits braces and semicolons. The later SCSS syntax, which uses the “.scss” extension, is a strict superset of CSS: any valid CSS file is also valid SCSS, which made adoption far easier because teams could rename existing stylesheets and begin adding Sass features incrementally. SCSS became the more popular of the two precisely because of that low-friction migration path.
The language influenced the wider ecosystem well beyond its own users. Major frameworks adopted it for their internal styling, and the ideas it popularized, variables and nesting in particular, eventually fed back into the CSS standard itself, where native custom properties and native nesting later appeared. Sass also competed with and outlasted rival preprocessors, becoming the default choice for projects that wanted preprocessing.
Sass is maintained in the open, with its language specification and implementations tracked in the sass/sass repository and related projects. Over time the canonical implementation shifted from the original Ruby version to a faster implementation written in the Dart language, but the language design remained stable enough that stylesheets written years earlier continued to compile, a continuity that helped Sass remain a fixture of front-end tooling.