CSS compilation through various preprocessors including Sass, Less, Stylus, and PostCSS. Laravel Mix handles stylesheet compilation with autoprefixing, minification, and PostCSS plugin support.
Compiles CSS files through PostCSS with plugin support and autoprefixing.
/**
* Compile CSS via PostCSS
* @param src - Source CSS file path
* @param output - Output CSS file path
* @param plugins - Array of PostCSS plugins
* @returns Mix API instance for chaining
*/
css(src: string, output: string, plugins?: AcceptedPlugin[]): Api;
/**
* Compile CSS via PostCSS with plugin options
* @param src - Source CSS file path
* @param output - Output CSS file path
* @param pluginOptions - Plugin configuration object
* @param plugins - Array of PostCSS plugins
* @returns Mix API instance for chaining
*/
css(src: string, output: string, pluginOptions?: object, plugins?: AcceptedPlugin[]): Api;
/**
* Alias for css() method
*/
postCss(src: string, output: string, plugins?: AcceptedPlugin[]): Api;
postCss(src: string, output: string, pluginOptions?: object, plugins?: AcceptedPlugin[]): Api;Usage Examples:
const mix = require('laravel-mix');
// Basic CSS compilation
mix.css('resources/css/app.css', 'public/css');
// With custom PostCSS plugins
mix.css('resources/css/app.css', 'public/css', [
require('postcss-nested'),
require('postcss-custom-properties')
]);
// With plugin options
mix.css('resources/css/app.css', 'public/css', {
processCssUrls: false
}, [
require('tailwindcss')
]);Compiles Sass and SCSS files to CSS with full Sass feature support.
/**
* Compile Sass/SCSS files to CSS
* @param src - Source Sass/SCSS file path
* @param output - Output CSS file path
* @param pluginOptions - Sass compiler options
* @param postCssPlugins - Array of PostCSS plugins to apply after compilation
* @returns Mix API instance for chaining
*/
sass(src: string, output: string, pluginOptions?: object, postCssPlugins?: AcceptedPlugin[]): Api;Usage Examples:
const mix = require('laravel-mix');
// Basic Sass compilation
mix.sass('resources/sass/app.scss', 'public/css');
// With Sass options
mix.sass('resources/sass/app.scss', 'public/css', {
sassOptions: {
outputStyle: 'compressed',
precision: 8
},
additionalData: '$theme-color: #007bff;'
});
// With PostCSS plugins
mix.sass('resources/sass/app.scss', 'public/css', {}, [
require('autoprefixer'),
require('cssnano')
]);Compiles Less files to CSS with Less plugin support.
/**
* Compile Less files to CSS
* @param src - Source Less file path
* @param output - Output CSS file path
* @param pluginOptions - Less compiler options
* @param postCssPlugins - Array of PostCSS plugins to apply after compilation
* @returns Mix API instance for chaining
*/
less(src: string, output: string, pluginOptions?: object, postCssPlugins?: AcceptedPlugin[]): Api;Usage Examples:
const mix = require('laravel-mix');
// Basic Less compilation
mix.less('resources/less/app.less', 'public/css');
// With Less options
mix.less('resources/less/app.less', 'public/css', {
lessOptions: {
math: 'always',
strictUnits: true
}
});
// With PostCSS plugins
mix.less('resources/less/app.less', 'public/css', {}, [
require('autoprefixer')
]);Compiles Stylus files to CSS with Stylus plugin support.
/**
* Compile Stylus files to CSS
* @param src - Source Stylus file path
* @param output - Output CSS file path
* @param pluginOptions - Stylus compiler options
* @param postCssPlugins - Array of PostCSS plugins to apply after compilation
* @returns Mix API instance for chaining
*/
stylus(src: string, output: string, pluginOptions?: object, postCssPlugins?: AcceptedPlugin[]): Api;Usage Examples:
const mix = require('laravel-mix');
// Basic Stylus compilation
mix.stylus('resources/stylus/app.styl', 'public/css');
// With Stylus options
mix.stylus('resources/stylus/app.styl', 'public/css', {
stylusOptions: {
use: [require('nib')()],
import: ['nib']
}
});
// With PostCSS plugins
mix.stylus('resources/stylus/app.styl', 'public/css', {}, [
require('autoprefixer')
]);// PostCSS plugin can be:
type AcceptedPlugin =
| string // Plugin name
| [string, object] // Plugin name with options
| Function // Plugin function
| object; // Plugin object{
sassOptions: {
outputStyle: 'compressed' | 'expanded',
precision: number,
includePaths: string[],
sourceMap: boolean
},
additionalData: string, // Prepended to every Sass file
implementation: object // Custom Sass implementation
}{
lessOptions: {
math: 'always' | 'strict' | 'parens-division' | 'parens' | 'strict-legacy',
strictUnits: boolean,
paths: string[],
plugins: object[]
}
}{
stylusOptions: {
use: Function[], // Stylus plugins
import: string[], // Files to import
include: string[], // Include paths
compress: boolean
}
}mix.sourceMaps() is enabledprocessCssUrls optionadditionalData option