Managing CSS and JavaScript
Warning: You are browsing the documentation for Symfony 6.1, which is no longer maintained.
Read the updated version of this page for Symfony 7.1 (the current stable version).
Managing CSS and JavaScript
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-autocomplete: Transform
EntityType
,ChoiceType
or any<select>
element into an Ajax-powered autocomplete field (see demo) - ux-chartjs: Easy charts with Chart.js (see demo)
- ux-cropperjs: Form Type and tools for cropping images (see demo)
- ux-dropzone: Form Type for stylized "drop zone" for file uploads (see demo)
- ux-lazy-image: Optimize Image Loading with BlurHash (see demo)
- ux-live-component: Build Dynamic Interfaces with Zero JavaScript (see demo)
- ux-notify: Send server-sent native notification with Mercure (see demo)
- ux-react: Render React component from Twig (see demo)
- ux-swup: Integration with Swup (see demo)
- ux-turbo: Integration with Turbo Drive for a single-page-app experience (see demo)
- ux-twig-component: Build Twig Components Backed by a PHP Class (see demo)
- ux-typed: Integration with Typed (see demo)
- ux-vue: Render Vue component from Twig (see demo)
Other Front-End Articles
- 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
- PostCSS and autoprefixing (postcss-loader)
- Enabling React.js
- Passing Information from Twig to JavaScript
- Encore: Setting up your Project
- Enabling Source Maps
- Preventing Duplication by "Splitting" Shared Code into Separate Files
- Enabling TypeScript (ts-loader)
- Inlining Images & Fonts in CSS
- Asset Versioning
- Using Encore in a Virtual Machine
- Enabling Vue.js (vue-loader)
- The Symfony UX Initiative & Packages