LESS - Pattern Matching



Description

You can change the behavior of mixin by passing parameters to it.

Consider one simple LESS code snippet −

.mixin(@a; @color) { ... }

.line {
   .mixin(@color-new; #888);
}

You can use different values for @color-new to make different mixin behaviors as shown in the code given below.

.mixin(dark; @color) {
   color: darken(@color, 15%);
}

.mixin(light; @color) {
   color: lighten(@color, 15%);
}

@color-new: dark;

.line {
   .mixin(@color-new; #FF0000);
}

If you set the value of the @color-new to dark, then it will display the result in darker color as mixin definition matches the dark as first argument.

Example

The following example demonstrates the use of pattern matching in the LESS file −

<!doctype html>
   <head>
      <title>Pattern Matching</title>
      <link rel = "stylesheet" href = "style.css" type = "text/css" />
   </head>

   <body>
      <h2>Example of Pattern Matching</h2>
      <p class = "myclass">Welcome to Tutorialspoint...</p>
   </body>
</html>

Next, create the style.less file.

style.less

.mixin(dark; @color) {
   color: darken(@color, 15%);
}

.mixin(light; @color) {
   color: lighten(@color, 15%);
}

@color-new: dark;

.myclass {
   .mixin(@color-new; #FF0000);
}

You can compile the style.less to style.css by using the following command −

lessc style.less style.css

Execute the above command; it will create the style.css file automatically with the following code −

style.css

.myclass {
   color: #b30000;
}

Output

Follow these steps to see how the above code works −

  • Save the above html code in the pattern-matching.html file.

  • Open this HTML file in a browser, the following output will get displayed.

Pattern Matching
less_parametric_mixins.htm
Advertisements