Setup
Installation
There are several ways to pull-in Glide.js into your project.
NPM
It is a recommended way. This installation method guarantees a trouble-free use with bundlers like Webpack or Rollup.
# Install the last stable version
$ npm install @glidejs/glide
Download
You can also traditionally download latest files from the Github:
CDN
You can also use a reference to some of the popular CDN services:
Explanation of Different Builds
Glide.js is built in a few different variants. They can be found in the dist/ directory.
- Complete - Builds that contains both required and optional modules.
 - Modular - Builds that contains only required modules. Optional modules are exported for import on demand.
 
| UMD | ES Module | |
|---|---|---|
| Complete | glide.js | glide.esm.js | 
| Modular | --- | glide.modular.esm.js | 
| Complete (minified) | glide.min.js | --- | 
Configuration
Styling
Glide.js styles are divided into two separate files:
glide.core- Core styles, required for Glide.js to workglide.theme- Visual styles. Optional styling for markup.
This way, the library doesn't force you to overwrite it's visual styles if you want to implement your own look.
Using <link>
Provide <link> to the stylesheets .css files.
<!-- Required Core Stylesheet -->
<link rel="stylesheet" href="node_modules/@glidejs/glide/dist/css/glide.core.min.css">
<!-- Optional Theme Stylesheet -->
<link rel="stylesheet" href="node_modules/@glidejs/glide/dist/css/glide.theme.min.css">
Using SASS @import
Import .scss files directly from the source directory.
// Required Core Stylesheet
@import "node_modules/@glidejs/glide/src/assets/sass/glide.core";
// Optional Theme Stylesheet
@import "node_modules/@glidejs/glide/src/assets/sass/glide.theme";
Structure
Prepare the main markup. Remember to add a data-glide-el="track" attribute on track element.
<div class="glide">
  <div class="glide__track" data-glide-el="track">
    <ul class="glide__slides">
      <li class="glide__slide">0</li>
      <li class="glide__slide">1</li>
      <li class="glide__slide">2</li>
    </ul>
  </div>
</div>
Controls
Creating controls involves using two data attributes:
data-glide-el="controls"- Controls wrapper indicator that contains all controls elementsdata-glide-dir="{pattern}"- Movement schema of the particular control
<div data-glide-el="controls">
  <button data-glide-dir="<<">Start</button>
  <button data-glide-dir=">>">End</button>
</div>
Schema value of the data-glide-dir attribute must be in special format:
>- Move one forward<- Move one backward={i}- Go to zero-based {i} slide (eq. '=1', will go to second slide)>>- Rewinds to the end (last slide)<<- Rewinds to the start (first slide)
Arrows
Knowing about the controls, preparing the arrows navigation is quite simple.
<div class="glide">
  <div class="glide__track" data-glide-el="track">...</div>
  <div class="glide__arrows" data-glide-el="controls">
    <button class="glide__arrow glide__arrow--left" data-glide-dir="<">prev</button>
    <button class="glide__arrow glide__arrow--right" data-glide-dir=">">next</button>
  </div>
</div>
Bullets
Making a bullets navigation is pretty similar. However, use the data-glide-el="controls[nav]" to activate toggling an activity class on control elements inside.
<div class="glide">
  <div class="glide__track" data-glide-el="track">...</div>
  <div class="glide__bullets" data-glide-el="controls[nav]">
    <button class="glide__bullet" data-glide-dir="=0"></button>
    <button class="glide__bullet" data-glide-dir="=1"></button>
    <button class="glide__bullet" data-glide-dir="=2"></button>
  </div>
</div>
Initialization
Finally, we are ready to initialize and mount a GlideUsing <script>
Simply reference a minified version of the script.
<script src="node_modules/@glidejs/glide/dist/glide.min.js"></script>
<script>
  new Glide('.glide').mount()
</script>
Using ES Modules
import Glide from '@glidejs/glide'
new Glide('.glide').mount()
Need a few selected modules? Import and mount only needed components. In pair with a bundler's tree-shaking it's a great way to reduce the total weight your code!
Notice that we are using here a path to the modular build. Go back to explanation section to learn more.
import Glide, { Controls, Breakpoints } from '@glidejs/glide/dist/glide.modular.esm'
new Glide('.glide').mount({ Controls, Breakpoints })