You are browsing the Symfony 4 documentation, which changes significantly from Symfony 3.x. If your app doesn't use Symfony 4 yet, browse the Symfony 3.4 documentation.

Using Bootstrap CSS & JS

4.1 version
Maintained Unmaintained

Using Bootstrap CSS & JS

Want to use Bootstrap (or something similar) in your project? No problem! First, install it. To be able to customize things further, we'll install bootstrap:

1
$ yarn add bootstrap --dev

Importing Bootstrap Styles

Now that bootstrap lives in your node_modules/ directory, you can import it from any Sass or JavaScript file. For example, if you already have a global.scss file, import it from there:

1
2
3
4
5
6
7
// assets/css/global.scss

// customize some Bootstrap variables
$primary: darken(#428bca, 20%);

// the ~ allows you to reference things in node_modules
@import "~bootstrap/scss/bootstrap";

That's it! This imports the node_modules/bootstrap/scss/bootstrap.scss file into global.scss. You can even customize the Bootstrap variables first!

Tip

If you don't need all of Bootstrap's features, you can include specific files in the bootstrap directory instead - e.g. ~bootstrap/scss/alert.

Importing Bootstrap JavaScript

Bootstrap JavaScript requires jQuery and Popper.js, so make sure you have this installed:

1
2
$ yarn add jquery --dev
$ yarn add popper.js --dev

Next, make sure to call .autoProvidejQuery() in your webpack.config.js file:

1
2
3
4
5
// webpack.config.js
Encore
    // ...
+     .autoProvidejQuery()
;

This is needed because Bootstrap expects jQuery to be available as a global variable. Now, require bootstrap from any of your JavaScript files:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
// app.js

const $ = require('jquery');
// JS is equivalent to the normal "bootstrap" package
// no need to set this to a variable, just require it
require('bootstrap');

// or you can include specific pieces
// require('bootstrap/js/dist/tooltip');
// require('bootstrap/js/dist/popover');

$(document).ready(function() {
    $('[data-toggle="popover"]').popover();
});

Thanks to autoProvidejQuery(), you can require any other jQuery plugins in a similar way:

1
2
3
4
5
6
7
// ...

// require the JavaScript
require('bootstrap-star-rating');
// require 2 CSS files needed
require('bootstrap-star-rating/css/star-rating.css');
require('bootstrap-star-rating/themes/krajee-svg/theme.css');

This work, including the code samples, is licensed under a Creative Commons BY-SA 3.0 license.