Skip to main content

Introduction to Sass Selector Functions

Sass Selector Functions​

Sass selector functions are functions that allow you to manipulate and create selectors in your Sass code.

Here are some of the most commonly used Sass selector functions:

  • selector-nest($selectors...): This function allows you to nest one or more selectors inside another selector.

As an example:

.my-class {
#{selector-nest(".inner-class", "&")} {
color: red;
}
}

This will compile to:

.my-class .inner-class {
color: red;
}
  • selector-append($selector, $suffix): This function allows you to append a string to the end of a selector.

As an example:

.my-class {
#{selector-append("&", "-suffix")} {
color: red;
}
}

This will compile to:

.my-class-suffix {
color: red;
}
  • selector-replace($selector, $original, $replacement): This function allows you to replace a substring within a selector with another string.

As an example:

.my-class {
#{selector-replace("&", "class", "replaced-class")} {
color: red;
}
}

This will compile to:

.my-replaced-class {
color: red;
}
  • selector-unify($selectors...): This function allows you to unify two or more selectors into a single selector.

As an example:

.class-one, .class-two {
#{selector-unify("&:hover", "&:focus")} {
color: red;
}
}

This will compile to:

.class-one:hover,
.class-one:focus,
.class-two:hover,
.class-two:focus {
color: red;
}
  • selector-extend($selector, $extendee): This function allows you to extend a selector with another selector.

As an example:

.my-class {
color: red;
}

.my-other-class {
#{selector-extend("&", ".my-class")} {
font-weight: bold;
}
}

This will compile to:

.my-class,
.my-other-class {
color: red;
}

.my-other-class.my-class {
font-weight: bold;
}
  • selector-parse($selector): This function allows you to parse a selector into its individual parts (such as tag name, class names, and ID).

As an example:

$selector: selector-parse(".my-class");

// Output: (
// type: null,
// class: (my-class,),
// id: null
// )
  • selector-unquote($string): This function allows you to remove the quotes from a string. This is useful when you want to use a variable as a selector.

As an example:

$selector-name: "my-selector";

.#{$selector-name} {
color: red;
}

This will compile to:

.my-selector {
color: red;
}
  • selector-append-selector($selector, $suffix): This function is similar to selector-append(), but it allows you to append a selector to the end of another selector.

As an example:

.my-class {
#{selector-append-selector("&", ".inner-class")} {
color: red;
}
}

This will compile to:

.my-class .inner-class {
color: red;
}