Just like CSS, most Sass stylesheets are mainly made up of style rules that contain property declarations. But Sass stylesheets have many more features that can exist alongside these.
A Sass stylesheet is made up of a series of statements, which are evaluated in order to build the resulting CSS. Some statements may have blocks, defined using {
and }
, which contain other statements. For example, a style rule is a statement with a block. That block contains other statements, such as property declarations.
In SCSS, statements are separated by semicolons (which are optional if the statement uses a block). In the indented syntax, they’re just separated by newlines.
These types of statements can be used anywhere in a Sass stylesheet:
$var: value
.@if
and @each
.@error
, @warn
, and @debug
rules.These statements produce CSS. They can be used anywhere except within a @function
:
h1 { /* ... */ }
.@media
and @font-face
.@include
.@at-root
rule.These statements can only be used at the top level of a stylesheet, or nested within a CSS statement at the top level:
@use
.@import
.@mixin
.@function
.width: 100px
may only be used within style rules and some CSS at-rules.@extend
rule may only be used within style rules.An expression is anything that goes on the right-hand side of a property or variable declaration. Each expression produces a value. Any valid CSS property value is also a Sass expression, but Sass expressions are much more powerful than plain CSS values. They’re passed as arguments to mixins and functions, used for control flow with the @if
rule, and manipulated using arithmetic. We call Sass’s expression syntax SassScript.
The simplest expressions just represent static values:
12
or 100px
."Helvetica Neue"
or bold
.#c6538c
or blue
.true
or false
.null
.1.5em 1em 0 2em
, Helvetica, Arial, sans-serif
, or [col1-start]
.("background": red, "foreground": pink)
.Sass defines syntax for a number of operations:
==
and !=
are used to check if two values are the same.+
, -
, *
, /
, and %
have their usual mathematical meaning for numbers, with special behaviors for units that matches the use of units in scientific math.<
, <=
, >
, and >=
check whether two numbers are greater or less than one another.and
, or
, and not
have the usual boolean behavior. Sass considers every value “true” except for false
and null
.+
, -
, and /
can be used to concatenate strings.(
and )
can be used to explicitly control the precedence order of operations.$var
.nth($list, 1)
or var(--main-bg-color)
, which may call Sass core library functions or user-defined functions, or which may be compiled directly to CSS.
calc(1px + 100%)
or url(http://myapp.com/assets/logo.png)
, that have their own unique parsing rules.&
.!important
, which is parsed as an unquoted string.
© 2006–2022 the Sass team, and numerous contributors
Licensed under the MIT License.
https://sass-lang.com/documentation/syntax/structure