Interweaving Bootstrap with Vue.js can transform your user interfaces, turning your applications from functional to fabulous with minimal effort. This guide is crafted to show you exactly how to add Bootstrap to Vue, enhancing both aesthetics and functionality.

In the digital workshop, a tool like Bootstrap provides ready-to-use CSS and JS components that can drastically reduce development time while ensuring responsive and appealing designs.

Vue.js, renowned for its reactivity and component-based architecture, pairs splendidly with Bootstrap, simplifying UI complexities and elevating user experience to new heights.

Through this article, dive deep into the setup essentials, learn how to seamlessly integrate Bootstrap into your Vue projects, and explore practical examples that bring theory to life.

Whether you are kicking off a new project or refining an existing one, these insights are designed to equip you with a robust framework for crafting visually stunning and highly interactive web applications.

How to Add Bootstrap to Vue: The Quick Version

To add Bootstrap to a Vue.js application, follow these steps:

1. Create a new Vue.js project

Use the Vue CLI to create a new Vue.js project by running the command vue create my-vue-bootstrap-app in your terminal.

2. Install Bootstrap and Bootstrap-Vue

Install Bootstrap and Bootstrap-Vue using npm by running the command npm install bootstrap bootstrap-vue in your project directory.

3. Configure your Vue.js application

Open the src/main.js file and add the necessary code to import Bootstrap, Bootstrap-Vue, and their corresponding styles.

import Vue from 'vue';
import { BootstrapVue, IconsPlugin } from 'bootstrap-vue';
import App from './App.vue';
import 'bootstrap/dist/css/bootstrap.css';
import 'bootstrap-vue/dist/bootstrap-vue.css';


new Vue({
render: h => h(App),

4. Create a sample component using Bootstrap and Vue.js

Create a new file named SampleComponent.vue in the src/components directory and add the code to create a simple Vue.js component using Bootstrap styling.

<div class="container">
<b-card title="Welcome to Vue.js with Bootstrap">
<p>This is a sample component demonstrating how to integrate Bootstrap with Vue.js.</p>
<b-button variant="primary">Click me</b-button>

export default {
name: 'SampleComponent'

5. Use the sample component in your application

Open the src/App.vue file and replace its content with the code to include the SampleComponent.

<div id="app">

import SampleComponent from './components/SampleComponent.vue';

export default {
name: 'App',
components: {

6. Run your application

Execute the command npm run serve to run your Vue.js application with Bootstrap integrated. Open your browser and navigate to http://localhost:8080 to see your application in action.For Vue 3, you can install Bootstrap 5 and link the CSS and JavaScript files in your main.js file.

You can then use Bootstrap components in your Vue 3 application.Remember to import the Bootstrap and Bootstrap-Vue CSS files in the correct order, as specified in the official BootstrapVue documentation.

Prerequisites for Integration

Technical Requirements

Node.js and npm versions

Diving into the world where JavaScript reigns supreme, any seasoned builder knows the cornerstone of a modern JavaScript stack: Node.js and npm.

The journey to successfully add Bootstrap to Vue begins under the hood with these tools. It’s not just about having them installed; it’s about ensuring their versions harmonize with your project’s demands.

Picture this: you’re setting up a cutting-edge application. You tentatively type in your console, querying Node’s version.

The response needs to align closely with the current stable releases. Why? Old versions are like expired milk in the fridge—technically still milk, but likely to ruin your perfect cup of coffee.

Similarly, npm, Node’s inseparable companion, should be up-to-date, acting as your faithful butler, managing packages swiftly and smoothly.

Vue CLI tools and setup

Next up in our toolkit is the Vue CLI. This isn’t just another tool; think of it as the master key to unlocking Vue’s full potential. Setting up a project without it would be like navigating a ship without a compass—possible, but unnecessarily challenging.

Initiating a new Vue project with Vue CLI is akin to laying a robust foundation for a skyscraper. It ensures that all structural components, from Webpack configurations to Babel presets, are in place, ready to support the towering ambitions of your application.

Initial Setup Considerations

Understanding of HTML, JavaScript, and CSS

Before embarking on integrating frameworks or libraries, a solid grasp of the trinity of web development—HTML, JavaScript, and CSS—is essential. These aren’t just coding languages; they are the canvas, paint, and brush that help bring your web creations to life.

HTML provides the structure, or the bones, of your pages. Without it, there would be no framework to drape your styles or scripts upon.

JavaScript adds the functionality, the muscles that move and interact, bringing vitality to the static skeleton. And CSS? It’s the skin and clothes, presenting everything in an aesthetically pleasing and accessible way.

Creating a Vue.js Project

Steps to Initialize a Vue.js Project

Imagine this. It’s a sunny Tuesday morning. The kind of morning that begs for the birth of something new, something exciting. In the world of web development, what could be more exciting than initiating a fresh Vue.js project? Here’s how this goes down:

Open your favorite terminal—yes, that dark screen where all the magic starts. It’s not just a tool; think of it as the gatekeeper to your creative realm. Now, dance your fingers across the keyboard and execute this spell:

vue create my-awesome-project

This command is the digital equivalent of knocking on the door of a new adventure. Once you run it, a series of questions will appear, asking for your preferences about presets including configurations like Babel, Router, and Linter. Each choice is like selecting the flavor of your project—choose wisely, but remember, the beauty of Vue is its flexibility. You can always tweak it later.

Project Directory Structure

Post the euphoria of creation, it’s time to step into the structure of what you’ve just built—a new Vue.js project. Enter the directory:

cd my-awesome-project

As you peek into this newly formed digital realm, you’ll find several directories and files, each holding a significant purpose, like knights guarding a castle. Here’s what you typically see:

  • node_modules/: A bustling market where all the modules and packages hang out after you’ve invited them via npm.
  • src/: Consider this the throne room. Here lies the heart of your application—the Vue components, the JavaScript that stirs life into your site, and the assets that beautify it.
  • public/: The outer courtyard. It houses the index.html, which is like the main gate of your castle—everything starts here.
  • package.json: This is the royal scroll, detailing what scripts and dependencies your project holds dear.

Installing and Configuring Bootstrap in Vue.js

YouTube player

Installation Methods

Let’s talk about getting Bootstrap up and running in a Vue.js environment. It’s like choosing whether to brew coffee at home or grab one from your favorite café—both serve the purpose, but the experience differs.

Using npm to install Bootstrap and Bootstrap-Vue

Imagine npm as a friendly neighborhood shop where you can pick up everything you need to turn your Vue project into a stylish powerhouse. Open your terminal—this gateway to productivity—and enter:

npm install bootstrap bootstrap-vue

It’s straightforward, almost like ordering a pizza. With this, you’ve asked npm to fetch Bootstrap and its Vue-specific companion, Bootstrap-Vue. Why Bootstrap-Vue? Because it translates Bootstrap’s components into something Vue can chat with fluently, ensuring seamless integration.

Alternative: Using a CDN for Bootstrap integration

Now, not everyone likes to store all their goodies locally. Sometimes, reaching out to a CDN (Content Delivery Network) makes things a bit faster, especially if your project is on the lighter side. Here’s how you spin this:

Incorporate this slice of code into your project’s main HTML file:

<!-- Add this inside the <head> tag -->
<link rel="stylesheet" href="">

And just like that, you’re pulling in Bootstrap’s CSS straight from the clouds of the internet. Fast, efficient, and no extra storage needed on your part.

Configuration Details

Modifications in main.js or other configuration files

Once Bootstrap and possibly Bootstrap-Vue are nestled comfortably in your project, the next step is akin to introducing them properly to the rest of the codebase. Open the main.js file—it’s essentially the conductor of your Vue orchestra.

Here’s a snippet on how to make that introduction:

import Vue from 'vue'
import { BootstrapVue, IconsPlugin } from 'bootstrap-vue'

// Install BootstrapVue
// Optionally install the BootstrapVue icon components plugin

This code snippet is more than just syntax; it’s the handshake that brings Vue and Bootstrap together, ready to cooperate and create responsive, visually appealing interfaces.

Importing Bootstrap CSS and JavaScript files

But wait, integration isn’t just about JavaScript. The visual glamour of Bootstrap lies in its CSS. To ensure that your application dresses to impress, you need to import Bootstrap’s CSS into your project. If you’re using Vue CLI, this can typically be done within your main entry file or a dedicated SCSS file if you’re sassily inclined:

import 'bootstrap/dist/css/bootstrap.css'

This line weaves Bootstrap’s CSS magic into your application, ensuring that every button, navbar, and dropdown menu looks exactly as intended. Pair this with Vue’s component magic, and you’ve got a recipe for a web application that not only works great but looks fantastic too.

Developing with Bootstrap and Vue.js

Building a Sample Component

Let’s roll up the sleeves and dive into the heart of Vue, spiced up with Bootstrap. Imagine crafting a widget—not just any widget, but one that looks impeccable on any device, thanks to Bootstrap’s responsive superpowers.

Start by brewing a simple Vue component. Here’s a little concoction that embodies simplicity and style:

  <div class="container">
    <button class="btn btn-primary">Click Me!</button>

export default {
  name: 'AwesomeButton'

<style scoped>

This snippet is a minimalist portrait: a button wrapped in a Bootstrap container ensuring it’s centered and padded aesthetically.

The btn and btn-primary classes are pure Bootstrap seasoning, giving the button a bold, blue, and beautiful demeanor that’s hard to miss.

Utilizing Bootstrap Components

Now, to escalate the intrigue, let’s integrate some of Bootstrap’s renowned components.

The goal? Enhance functionality while maintaining Vue’s reactivity. Consider the example of a modal—Bootstrap’s dialog box for displaying content front and center.

First, a simple Bootstrap modal structure:

    <!-- Button trigger modal -->
    <button type="button" class="btn btn-warning" data-toggle="modal" data-target="#exampleModal">
      Launch demo modal

    <!-- Modal -->
    <div class="modal fade" id="exampleModal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
      <div class="modal-dialog">
        <div class="modal-content">
          <div class="modal-header">
            <h5 class="modal-title" id="exampleModalLabel">Modal Title</h5>
            <button type="button" class="close" data-dismiss="modal" aria-label="Close">
              <span aria-hidden="true">&times;</span>
          <div class="modal-body">
            Here’s a fascinating modal body pulling you deeper into Bootstrap’s charm!
          <div class="modal-footer">
            <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
            <button type="button" class="btn btn-primary">Save Changes</button>

export default {
  name: 'ExampleModal'

This block sets up a modal that emerges with pizzazz when the button is clicked. Notice the unmistakable button classes btn and btn-warning, spicing up the trigger with a pleasant yellow touch.

The modal element itself carries Bootstrap’s DNA with classes like modal and modal-fade.

These are not just stylistic choices but enhancers that hook into Bootstrap’s JavaScript to breathe life into the modal with smooth animations and accessibility features.

Finally, integrating BootstrapVue components into Vue.js templates marries the power of Vue’s reactivity with the familiarity and robustness of Bootstrap’s component design.

Using BootstrapVue simplifies the process, turning complex dynamic behaviors into a breezy task.

There it is—a peek into weaving Bootstrap and Vue into a seamless web tapestry, rich with interactions and styled with purpose.

As these components find their place in the broader canvas of your application, they create an ecosystem where form meets function, engaging users with every click and scroll.

Running and Testing the Application

Running the Vue.js Application

Imagine pressing the ignition button on a sleek, new sports car. That’s what firing up a Vue.js development server feels like. Exciting, right? Here’s how it unfolds:

Open the command prompt—the black canvas where all creations begin to take form. Dive into the project’s root directory; it’s the core where your application’s soul resides. Now, let those keys tap dance across the board:

npm run serve

This command spins up the development server, a temporary stage where your app performs during its rehearsal phase.

A URL flies onto the screen, usually something like http://localhost:8080. This is your golden ticket. Click it, and watch the browser breathe life into your Vue application.

This moment, this very action, sends a ripple of excitement—it’s where digital concepts transform into tangible realities.

Ensuring Proper Integration

Now, with the application smoothly running, it’s time to don the detective hat. Every element from the Bootstrap framework should meld seamlessly with Vue’s dynamic components. Here’s how you ensure everything is working harmoniously:

Open several browser tabs. Resize them, play around—mimic a tech-savvy user who’s testing the limits of your creation.

Are the Bootstrap styles intact? Does the responsive grid adjust, maintaining elegance across devices? It’s a ballet of pixels, and each one needs to pirouette perfectly on every screen size.

Inspect elements, delve into developer tools. Look for Bootstrap’s CSS applying its magic.

Encounter a glitch? Don’t fret. It’s part of the journey. Debug, tweak, and transform it into an opportunity to refine. This is more than just testing; it’s a dance with technology, where you lead with creativity and follow with analytics.

Best Practices for Bootstrap and Vue.js Integration

Modular Component Usage

In the realm of coding, less can often be more. Especially when integrating frameworks like Bootstrap with Vue.js.

Why pull in the entire arsenal when just a select array of tools will do? This approach not only keeps the application lightweight but also zips performance into hyperdrive.

Advantages of importing only needed Bootstrap components

Think of a toolkit. Is it better stuffed with gadgets you never use, or tailored to your needs? The same logic applies here.

Importing only necessary Bootstrap components ensures that the application loads faster, reacts quicker, and remains sleek. It’s about making every byte count in the grand computation ballet.

This precision cuts down not only on load times but potentially wards off those sneaky bugs that love a complex, cluttered environment.

Maintaining Code Quality

Now, about knitting the fabric of the code — it’s an art and a discipline. Like a tidy room invites calm and creativity, clean code invites efficiency and innovation.

Tips for clean code and efficient component management

Here’s a snippet of wisdom: Always comment your code thoughtfully. Why? Because the ‘you’ in six months may not remember why that line of code exists.

Plus, if someone else ever dances through these digital pages, those comments are like hidden treasures aiding their quest.

Stick to a naming convention. Vue tends to favor camelCase for JavaScript and kebab-case for HTML attributes.

Consistency is key—it’s like following a map; predictable landmarks make the journey smoother and less prone to errors.

Split components into small, manageable files. Think puzzles—smaller pieces make it easier to see the big picture and swap pieces out as needed.

Plus, it’s easier to test smaller components, ensuring they perform impeccably in their roles.

By approaching the integration of Bootstrap into Vue.js with a mindset geared towards modular architecture and pristine coding practices, you pave the way for a project that’s not only manageable but scalable—a true digital masterpiece ready to evolve with both tech trends and business needs.

FAQ On Add Bootstrap To Vue

How do I add Bootstrap to a Vue.js project?

Bootstrap can be integrated into your Vue project by either installing via npm with commands like npm install bootstrap vue bootstrap-vue or by linking directly to Bootstrap’s CDN in your project’s HTML file.

This flexibility allows you to choose based on project needs or personal preference.

What are the benefits of using Bootstrap with Vue.js?

Using Bootstrap with Vue.js enhances your UI with responsive design features quickly. It provides a vast array of ready-made components that streamline the development process, ensuring consistency and functionality across your application, significantly reducing the time needed for styling.

How do I ensure that Bootstrap is properly working with Vue.js?

To ensure Bootstrap is properly integrated, include Bootstrap CSS and JS files in your project and check elements like modals or buttons.

If they render correctly and are interactive, your integration is successful. Regularly running your Vue app will help catch integration issues early on.

Can I use BootstrapVue instead of Bootstrap with Vue.js?

Absolutely, BootstrapVue is specifically designed for integration with Vue.js, offering Vue-specific counterparts to traditional Bootstrap components.

This not only harnesses the reactive power of Vue but also simplifies the incorporation of Bootstrap’s style and responsiveness into your Vue applications.

What are the key files to modify when adding Bootstrap to Vue.js?

Important files for integration include main.js or app.js where you import Bootstrap or BootstrapVue plugins. Additionally, adjustments may be needed in component files or App.vue to utilize Bootstrap classes and components effectively within your Vue templates.

How does BootstrapVue enhance the development process?

BootstrapVue enhances development by offering Bootstrap components as Vue components, making them reactive and more integrated with your Vue app’s data-driven logic.

This saves time coding interactions and maintaining UI consistency, allowing for more focus on application logic and user experience.

Are there any performance concerns when combining Bootstrap with Vue.js?

Minimally. Using Bootstrap with Vue can slightly increase load times due to additional CSS and JS files.

However, by selectively importing only the needed Bootstrap components and optimizing your assets, you can mitigate much of the potential bloat, maintaining a snappy, responsive user interface.

How do I customize Bootstrap components in a Vue project?

Customizing Bootstrap components in a Vue project can be achieved through scoped CSS in single-file components or by using deeper selectors to override Bootstrap’s styles.

For a more integrated approach, modify Bootstrap’s Sass variables before importing the styles into your project.

What is the best way to manage Bootstrap dependencies in large Vue.js projects?

For large projects, manage Bootstrap dependencies effectively by using module bundlers like Webpack or Vue CLI to import only the necessary Bootstrap files and components.

This keeps the build light and efficient, reducing load times and streamlining updates or modifications.

Can I use alternative methods to add Bootstrap to Vue if I don’t want to use npm or CDN?

Yes, another method involves manually downloading Bootstrap’s source files and integrating them into your project’s assets.

This approach provides full control over which files are included, potentially reducing overhead and allowing deeper customization of Bootstrap’s core features.


In wrapping up, the journey to seamlessly add Bootstrap to Vue is not only achievable but also immensely rewarding. By integrating Bootstrap’s robust framework into your Vue.js projects, you elevate both function and aesthetics, marrying utility with beauty.

The process enhances your applications, making them responsive and user-friendly across all devices.

Keep in mind the essential steps from incorporating Bootstrap using npm or CDN, to initializing BootstrapVue for a smoother Vue-specific experience.

Ensure each component operates harmoniously, maintain clean, structured code, and you will see your user interfaces transform spectacularly.

With these tools and techniques, your pathway to developing professionally styled Vue.js applications is clear.

Now, take these insights, apply them to your projects, and watch as your digital creations flourish in both form and function.

Categorized in: