Understanding and Using LESS CSS Functions

Fanny NyayicFanny Nyayic
3 min read

LESS (Leaner Style Sheets) is a preprocessor for CSS that adds features such as variables, nested rules, mixins, and functions to CSS, making it more maintainable and easier to write. Functions in LESS are powerful tools that allow you to manipulate values and perform calculations, helping you create dynamic and flexible styles.

What Are LESS CSS Functions?

LESS functions are built-in utilities that perform operations on values, such as colors, numbers, strings, and lists. They can be used to automate repetitive tasks and create more complex styles with less code.

Examples of LESS CSS Functions

Let's explore some commonly used LESS functions with examples to understand how they work.

1. Color Functions

LESS provides several functions to manipulate colors, such as lighten, darken, fade, and mix.

Lighten

The lighten function increases the lightness of a color by a specified percentage.

Example:

@base-color: #3498db; // Base blue color

.lighten-example {
  background-color: lighten(@base-color, 20%);
}

This will produce a background color that is 20% lighter than the base blue color.

Darken

The darken function decreases the lightness of a color by a specified percentage.

Example:

@base-color: #3498db; // Base blue color

.darken-example {
  background-color: darken(@base-color, 20%);
}

This will produce a background color that is 20% darker than the base blue color.

Mix

The mix function blends two colors together by a given percentage.

Example:

@color1: #3498db; // Blue color
@color2: #e74c3c; // Red color

.mix-example {
  background-color: mix(@color1, @color2, 50%);
}

This will produce a background color that is an equal mix of blue and red, resulting in a purple color.

2. Math Functions

LESS allows you to perform mathematical operations such as add, subtract, multiply, and divide.

Adding and Subtracting

You can use basic arithmetic operations to manipulate numeric values.

Example:

@base-padding: 10px;

.add-subtract-example {
  padding: @base-padding + 5px; // Adds 5px to base padding
  margin: @base-padding - 3px; // Subtracts 3px from base padding
}

This will result in a padding of 15px and a margin of 7px.

3. String Functions

String functions in LESS allow you to manipulate text strings. Common functions include replace and escape.

Replace

The replace function replaces occurrences of a substring within a string with a new substring.

Example:

@base-url: "https://example.com/images";

.replace-example {
  background-image: url(replace("@{base-url}/image.jpg", "image", "photo"));
}

This will produce a URL: https://example.com/photos/photo.jpg.

4. List Functions

List functions help you manipulate lists, such as length, extract, and join.

Length

The length function returns the number of items in a list.

Example:

@list: "item1", "item2", "item3";

.length-example {
  content: length(@list); // Returns 3
}

This will produce content with the number 3, indicating the list has three items.

Custom Functions

In addition to built-in functions, LESS allows you to define custom functions using mixins. Custom functions can help encapsulate reusable logic.

Example:

.custom-padding(@multiplier) {
  padding: @multiplier * 10px;
}

.custom-function-example {
  .custom-padding(3); // Applies 30px padding
}

This custom function applies a padding value based on the multiplier passed as an argument.

Conclusion

LESS functions provide a powerful way to manipulate styles dynamically and efficiently. By using color, math, string, and list functions, you can create flexible and maintainable CSS. Custom functions allow for further encapsulation and reuse of style logic. Understanding and utilizing these functions will enhance your ability to write sophisticated styles with LESS.

0
Subscribe to my newsletter

Read articles from Fanny Nyayic directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Fanny Nyayic
Fanny Nyayic

a passionate web developer, tech writer, open-source contributor & a life long learner.