# Custom loading with Nuxt.js > Nuxt.js uses it's own component to show a progress bar between the routes. You can customize it, disable it or create your own component. ## Disable Nuxt.js progress bar If you don't want to display the progress bar between the routes, just add `loading: false` in your `nuxt.config.js` file: ```js // nuxt.config.js module.exports = { loading: false } ``` ## Customize Nuxt.js progress bar Here are the properties you can customize for Nuxt.js progress bar. | Key | Type | Default | Description | |-----|------|---------|-------------| | `color` | String | `'black'` | CSS color of the progress bar | | `failedColor` | String | `'red'` | CSS color of the progress bar when an error appended during rendering the route (if `data` or `fetch` sent back an error for example). | | `height` | String | `'2px'` | Height of the progress bar (used in the `style` property of the progress bar) | | `duration` | Number | `5000` | In ms, the maximum duration of the progress bar, Nuxt.js assumes that the route will be rendered before 5 seconds. | Example: ```js // nuxt.config.js module.exports = { loading: { color: 'blue', height: '5px' } } ``` ## Create a custom loading component You can create your own component that Nuxt.js will call instead of its default component. To do so, you need to give a path to your component in the `loading` option. Your custom component will be called by Nuxt.js, so make sure your component exposes some of theses methods: | Method | Required | Description | |--------|----------|-------------| | `start()` | Required | Called when a route changes, this is here where you should show your component. | | `finish()` | Required | Called when a route is loaded (and data fetched), this is here where you should hide your component. | | `fail()` | *Optional* | Called when a route could not be loaded (failed to fetch data for example). | | `increase(num)` | *Optional* | Called during loading the route component, `num` is an Integer < 100. | Example: ```js // nuxt.config.js module.exports = { loading: 'components/loading.vue' } ``` And then, in `components/loading.vue`: ```html ``` ## Demo ```bash npm install npm start ``` Go to [http://localhost:3000](http://localhost:3000) and navigate trough the app.