Cookies setting

Cookies help us enhance your experience on our site by storing information about your preferences and interactions. You can customize your cookie settings by choosing which cookies to allow. Please note that disabling certain cookies might impact the functionality and features of our services, such as personalized content and suggestions. Cookie Policy

Cookie Policy
Essential cookies

These cookies are strictly necessary for the site to work and may not be disabled.

Information
Always enabled
Advertising cookies

Advertising cookies deliver ads relevant to your interests, limit ad frequency, and measure ad effectiveness.

Information
Analytics cookies

Analytics cookies collect information and report website usage statistics without personally identifying individual visitors to Google.

Information
mageplaza.com

The Ultimate Guide to Using LESS in Magento 2

Vinh Jacker | 09-17-2024

The Ultimate Guide to Using LESS in Magento 2

Magento 2 is a strong and flexible eCommerce platform. It takes advantage of various front-end technologies to deliver a seamless user experience. One such technology is LESS (Leaner Style Sheets), a dynamic preprocessor style sheet language that extends CSS with features like variables, mixins, operations, and functions. In this article, we will guide you through using LESS files in Magento 2 and delve into the various compilation modes for customizing and styling your store.

Compilation of LESS into CSS

Magento 2 uses a LESS preprocessor to convert LESS files into CSS stylesheets. With your LESS files ready, you can proceed. To understand how Magento 2 compiles LESS files into CSS, it’s necessary to explore the step-by-step overview of how this process works:

1. Compiled CSS Output

Let’s look at this typical example of LESS syntax


@newcolor: #fff8e3;
#a {
    background-color: @newcolor;
}
#b {
    color: @newcolor;
}

After compilation, the above LESS code translates to CSS:

#a {
    background-color: #fff8e3;
}
#b {
    color: #fff8e3;
}

Now, you can deploy LESS in Magento 2. Let’s use the Magento Blank theme as an example. You need to include the following CSS file in the head section.


<head>
    <link rel="stylesheet" type="text/css" href="css/styles-m.css" />
    <link rel="stylesheet" type="text/css" media="screen and (min-width: 768px)" href="css/styles-l.css" />
    <link rel="stylesheet" type="text/css" media="print" href="css/print.css" />
</head>

2. File Locations

You need to ensure that these source CSS files are located in the following directories related to your Magento Blank theme:

  • <Magento_Blank_theme_dir>/web/css/styles-m.css
  • <Magento_Blank_theme_dir>/web/css/styles-l.css
  • <Magento_Blank_theme_dir>/web/css/print.css

By following these steps, you can use LESS in Magento 2 to manage and style your themes efficiently. This approach ensures cleaner, more maintainable CSS code for enhanced development workflows.

Three Less Compilation Modes for Compiling

Magento 2 provides three modes for compiling .less files into .css files, meeting various development requirements:

Client-side Compilation

  • Description: Compile fewer files in the user’s browser during development
  • Advantages: Reduced Server Load, Immediate feedback, Ease of * Debugging
  • Disadvantages: Slow initial page load due to on-the-fly compilation

Server-side Compilation

  • Description: Compile LESS files on the server, serving precompiled CSS to users
  • Advantages: Faster page loads, and reduced client-side processing
  • Disadvantages: Less immediate feedback during development, and dependency on server availability

Compilation using Automation Tools

  • Description: Uses tools like Grunt or Gulp to automate LESS to CSS compilation.
  • Advantages: Continuous integration, consistency and scalability
  • Disadvantages: Limited flexibility, and configuration requirements

Implementation in Magento 2

In Magento 2, the system prioritizes .css files specified in layout handles. If these files aren’t found, Magento will automatically search for .less files with the same name and compile them according to the configured compilation mode. Understanding these modes helps developers optimize their workflow based on project requirements. This will balance development convenience and production performance in Magento 2 theme development.

To configure this, follow the steps below:

Go to admin panel > Go to store > Configuration > Developer > Frontend Development Workflow

frontend-development-workflow

Client-side LESS Compilation Mode in Magento 2

Client-side LESS Compilation Mode in Magento 2 compiles LESS files directly in the client’s browser using lib/web/less/config.less.js and lib/web/less/less.min.js. It publishes .less files to pub/static/frontend/<Vendor>/<theme>/<locale>, ensuring immediate updates for @import directives upon page reload.

Unlike server-side compilation, clearing pub/static/frontend/<Vendor>/<theme>/<locale> after modifying LESS files is typically unnecessary. However, ensure correct handling of @import directives and file changes to avoid directory clearance issues. This mode optimizes Magento 2 frontend customization by delivering real-time updates, enhancing development efficiency without server-side delays.

Server-side LESS Compilation Mode

In server-side compilation mode, Magento 2 uses the PHP LESS compiler

Key points:

  • Cleaning Directories: Clear pub/static/frontend/<Vendor>/<theme>/<locale>/ and /var/view_preprocessed/* directories after modifying LESS files.

  • Developer Mode: Automatically compiles to .css files when pages are loaded for quick development feedback.

  • Production Mode: Deploy CSS changes using the following command to ensure all necessary static files, including CSS generated from LESS, are ready for production:

php bin/magento setup:static-content:deploy

By choosing the appropriate mode, developers can adjust the workflow to fit the specific needs of their Magento 2 theme development, balancing between real-time updates and production efficiency.

Wrap Up

We hope that this straightforward and easy-to-follow guide will help you use LESS in Magento 2 easily. By taking advantage of LESS, you’ll enhance your front-end development workflow and create more maintainable styles. If you have any problems while following this tutorial, feel free to let us know.

Table of content
    Jacker

    With over a decade of experience crafting innovative tech solutions for ecommerce businesses built on Magento, Jacker is the mastermind behind our secure and well-functioned extensions. With his expertise in building user-friendly interfaces and robust back-end systems, Mageplaza was able to deliver exceptional Magento solutions and services for over 122K+ customers around the world.



    Related Post

    Website Support
    & Maintenance Services

    Make sure your store is not only in good shape but also thriving with a professional team yet at an affordable price.

    Get Started
    mageplaza services