Three ways to install and use Buefy


Several components uses icons, you might want to add a pack

Material Design Icons CDN
<link rel="stylesheet" href="">
Font Awesome 5 CDN
<link rel="stylesheet" href="">

Refer to its documentation for latest release / CDN.

Please note that Buefy doesn't include icon packs. You have to import it as you prefer (NPM, CDN, etc.).

If you opted for Font Awesome, you should update your constructor options.

For any installation and usage method, you need Vue.js version 2.5+.


NPM or Yarn (recommended)

After creating a project with vue-cli or custom-made (usually Webpack)


npm install buefy

Even though this is gonna import ALL components to your application, Buefy full bundle is optimized and still pretty small:
  • script is 32KB min+gzip
  • style is 28KB min+gzip (with bulma included)
Full bundle (recommended)
import Vue from 'vue'
import Buefy from 'buefy'
import 'buefy/dist/buefy.css'


If you only need a couple of Buefy's components, might be a good idea to include individuals.

Bear in mind that every individual component has everything they need to work by themselves — including too many components individually will INCREASE your project's build size, adding the full bundle is recomended in that case.

In general, don't go over 3 components here. If you want more than that, add the full bundle.

Individual components as Vue plugins
import Vue from 'vue'
import Table from 'buefy/dist/components/table'
import Input from 'buefy/dist/components/input'
import 'buefy/dist/buefy.css'

Individual components
import Vue from 'vue'
import { Table } from 'buefy/dist/components/table'
import { Input } from 'buefy/dist/components/input'
import 'buefy/dist/buefy.css'

Vue.component('b-table', Table)
Vue.component('b-input', Input)



Using CDN or downloading files to serve local


Usage example

<!DOCTYPE html>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="">

    <div id="app">
        <!-- Buefy components goes here -->

    <script src=""></script>
    <!-- Full bundle -->
    <script src=""></script>

    <!-- Individual components -->
    <script src=""></script>
    <script src=""></script>

        new Vue({
            el: '#app'



Using a Nuxt.js module to keep things easier


npm install nuxt-buefy


Add nuxt-buefy to modules section of nuxt.config.js:

    modules: [
        // Simple usage

        // Or you can customize
        ['nuxt-buefy', { css: false, materialDesignIcons: false }],

This page is open source. Noticed a typo or something's unclear?

Improve this page on GitHub