Managing CSS and JavaScript
Warning: You are browsing the documentation for Symfony 4.x, which is no longer maintained.
Read the updated version of this page for Symfony 7.1 (the current stable version).
Screencast
Do you prefer video tutorials? Check out the Webpack Encore screencast series.
Symfony ships with a pure-JavaScript library - called Webpack Encore - that makes
it a joy to work with CSS and JavaScript. You can use it, use something else, or
create static CSS and JS files in your public/
directory directly and
include them in your templates.
Webpack Encore
Webpack Encore is a simpler way to integrate Webpack into your application. It wraps Webpack, giving you a clean & powerful API for bundling JavaScript modules, pre-processing CSS & JS and compiling and minifying assets. Encore gives you professional asset system that's a delight to use.
Encore is inspired by Webpacker and Mix, but stays in the spirit of Webpack: using its features, concepts and naming conventions for a familiar feel. It aims to solve the most common Webpack use cases.
Tip
Encore is made by Symfony and works beautifully in Symfony applications. But it can be used in any PHP application and even with other server side programming languages!
Symfony UX Components
- ux-turbo: Integration with Turbo Drive for a single-page-app experience
- ux-live-component: Build Dynamic Interfaces with Zero JavaScript
- ux-twig-component: Build Twig Components Backed by a PHP Class
- ux-chartjs: Easy charts with Chart.js
- ux-lazy-image: Optimize Image Loading with BlurHash
- ux-cropperjs: Form Type and tools for cropping images
- ux-dropzone: Form type for stylized "drop zone" for file uploads
- ux-swup: Integration with Swup
Other Front-End Articles
- Assetic
- How to Use a Custom Version Strategy for Assets
- Advanced Webpack Config
- Configuring Babel
- Using Bootstrap CSS & JS
- Using a CDN
- Async Code Splitting
- Copying & Referencing Images
- CSS Preprocessors: Sass, LESS, Stylus, etc.
- Adding Custom Loaders & Plugins
- Using webpack-dev-server and HMR
- FAQ and Common Issues
- Installing Encore
- jQuery Plugins and Legacy Applications
- Creating Page-Specific CSS/JS
- PostCSS and autoprefixing (postcss-loader)
- Enabling React.js
- Passing Information from Twig to JavaScript
- Creating a Shared Commons Entry
- Encore: Setting up your Project
- Enabling Source Maps
- Preventing Duplication by "Splitting" Shared Code into Separate Files
- Enabling TypeScript (ts-loader)
- Inlining files in CSS with Webpack URL Loader
- Asset Versioning
- Using Encore in a Virtual Machine
- Enabling Vue.js (vue-loader)
- The Symfony UX Initiative & Packages