Ripple
Bootstrap 5 Ripple
The ripple method provides a radial action in the form of a visual ripple expanding outward from the user’s touch. Ripple is a visual form of feedback for touch events providing users a clear signal that an element is being touched.
Note: Read the API tab to find all available options and advanced customization
Basic example
By default, ripple is added to every button (via .btn
class) and it does not
require any additional classes or attributes.
<button type="button" class="btn btn-primary btn-lg">Primary</button>
It's also automatically added to the .ripple
class. Thanks to this you can use
the .ripple
class to apply the ripple effect to the given clickable element - for
example to the image wrapped in <a>
element.
<a class="ripple" href="#!">
<img alt="Los Angeles Skyscrapers" class="img-fluid rounded" src="https://mdbcdn.b-cdn.net/img/new/standard/city/043.webp"/>
</a>
Colors
By using data-mdb-ripple-color
attribute you can change the color of the ripple.
You can use the colors from the basic MDB palette, for example
data-mdb-ripple-color="primary"
or data-mdb-ripple-color="danger"
:
<button data-mdb-ripple-color="primary" type="button" class="btn btn-light">Primary</button>
<button data-mdb-ripple-color="secondary" type="button" class="btn btn-light">Secondary</button>
<button data-mdb-ripple-color="success" type="button" class="btn btn-light">Success</button>
<button data-mdb-ripple-color="danger" type="button" class="btn btn-light">Danger</button>
<button data-mdb-ripple-color="info" type="button" class="btn btn-light">Info</button>
<button data-mdb-ripple-color="light" type="button" class="btn btn-dark">Light</button>
<button data-mdb-ripple-color="dark" type="button" class="btn btn-light">Dark</button>
You can also use any CSS color name:
<button data-mdb-ripple-color="red" type="button" class="btn btn-light">Red</button>
<button data-mdb-ripple-color="green" type="button" class="btn btn-light">Green</button>
<button data-mdb-ripple-color="blue" type="button" class="btn btn-light">Blue</button>
<button data-mdb-ripple-color="yellow" type="button" class="btn btn-light">Yellow</button>
<button data-mdb-ripple-color="orange" type="button" class="btn btn-light">Orange</button>
<button data-mdb-ripple-color="purple" type="button" class="btn btn-light">Purple</button>
<button data-mdb-ripple-color="aqua" type="button" class="btn btn-light">Aqua</button>
Or simply use the hex color code:
<button data-mdb-ripple-color="#c953d6" type="button" class="btn btn-light">#c953d6</button>
<button data-mdb-ripple-color="#44c6e3" type="button" class="btn btn-light">#44c6e3</button>
<button data-mdb-ripple-color="#fcc834" type="button" class="btn btn-light">#fcc834</button>
<button data-mdb-ripple-color="#386f06" type="button" class="btn btn-light">#386f06</button>
<button data-mdb-ripple-color="#c1303a" type="button" class="btn btn-light">#c1303a</button>
<button data-mdb-ripple-color="#a57c3e" type="button" class="btn btn-light">#a57c3e</button>
<button data-mdb-ripple-color="#192ced" type="button" class="btn btn-light">#192ced</button>
<button data-mdb-ripple-color="#525740" type="button" class="btn btn-light">#525740</button>
Duration
By using data-mdb-ripple-duration
attribute you can modify the duration of the
ripple.
<button type="button" class="btn btn-primary btn-lg">Default (500ms)</button>
<button data-mdb-ripple-duration="1000ms" type="button" class="btn btn-primary btn-lg">Duration 1S</button>
<button data-mdb-ripple-duration="3s" type="button" class="btn btn-primary btn-lg">Duration 3s</button>
<button data-mdb-ripple-duration="5s" type="button" class="btn btn-primary btn-lg">Duration 5s</button>
<button data-mdb-ripple-duration="10s" type="button" class="btn btn-primary btn-lg">Duration 10s</button>
Centered
If you add data-mdb-ripple-centered="true"
attribute the ripple always starts in
the center of the element instead of in the touched place.
<button type="button" data-mdb-ripple-centered="true" class="btn btn-primary btn-lg">Centered ripple</button>
Unbound
If you use data-mdb-ripple-unbound="true"
attribute, the ripple won't be bonded to
the given element and it will exceed its borders.
<button data-mdb-ripple-unbound="true" data-mdb-ripple-color="dark" type="button" class="btn btn-primary">Unbound</button>
Radius
By using data-mdb-ripple-radius
attribute you can modify the radius of the
ripple. The numeric value is expressed in pixels, for example:
data-mdb-ripple-radius="10"
<button type="button" class="btn btn-primary btn-lg">Default</button>
<button type="button" data-mdb-ripple-radius="10" class="btn btn-primary btn-lg">10</button>
<button type="button" data-mdb-ripple-radius="25" class="btn btn-primary btn-lg">25</button>
<button type="button" data-mdb-ripple-radius="50" class="btn btn-primary btn-lg">50</button>
JavaScript implementation
You can apply the ripple to multiple elements at once by using JavaScript. In the example
below, we added a sample class .example-class
to the
<a>
element wrapping the image, and then we use JavaScript to apply ripple
to this class.
You can apply the ripple to any selector - classes, ID's or even native HTML elements.
Card title
Some quick example text to build on the card title and make up the bulk of the card's content.
ButtonCard title
Some quick example text to build on the card title and make up the bulk of the card's content.
ButtonCard title
Some quick example text to build on the card title and make up the bulk of the card's content.
Button
<div class="row">
<div class="col-md-4">
<!-- Card -->
<div class="card">
<!-- Custom class for applying ripple -->
<a href="#!" class="example-class">
<img src="https://mdbcdn.b-cdn.net/img/new/standard/city/024.webp" class="card-img-top" alt="Palms by the Pool"/>
</a>
<div class="card-body">
<h5 class="card-title">Card title</h5>
<p class="card-text">
Some quick example text to build on the card title and make up the bulk of the
card's content.
</p>
<a href="#!" class="btn btn-primary">Button</a>
</div>
</div>
<!-- Card -->
</div>
<div class="col-md-4">
<!-- Card -->
<div class="card">
<!-- Custom class for applying ripple -->
<a href="#!" class="example-class">
<img src="https://mdbcdn.b-cdn.net/img/new/standard/city/025.webp" class="card-img-top" alt="Empire State Building"/>
</a>
<div class="card-body">
<h5 class="card-title">Card title</h5>
<p class="card-text">
Some quick example text to build on the card title and make up the bulk of the
card's content.
</p>
<a href="#!" class="btn btn-primary">Button</a>
</div>
</div>
<!-- Card -->
</div>
<div class="col-md-4">
<!-- Card -->
<div class="card">
<!-- Custom class for applying ripple -->
<a href="#!" class="example-class">
<img src="https://mdbcdn.b-cdn.net/img/new/standard/city/032.webp" class="card-img-top" alt="Paris - Eiffel Tower"/>
</a>
<div class="card-body">
<h5 class="card-title">Card title</h5>
<p class="card-text">
Some quick example text to build on the card title and make up the bulk of the
card's content.
</p>
<a href="#!" class="btn btn-primary">Button</a>
</div>
</div>
<!-- Card -->
</div>
</div>
document.querySelectorAll('.example-class').forEach((cardRipple) => {
new mdb.Ripple(cardRipple, {
rippleColor: 'light'
})
});
Ripple - API
Usage
Via class
Add the .ripple
class to the clickable element to apply the ripple effect.
<a class="ripple" href="#!">
<img alt="example" class="img-fluid rounded" src="https://mdbootstrap.com/img/new/standard/city/043.webp"/>
</a>
Via javascript
You can apply the ripple to any element using JavaScript. In the example below, we added a
sample class .example-class
to the <a>
element wrapping the
image, and then we use JavaScript to apply ripple to this clas
<a class="example-class" href="#!">
<img alt="example" class="img-fluid rounded" src="https://mdbootstrap.com/img/new/standard/city/043.webp" style="max-width: 27rem;"/>
</a>
document.querySelectorAll('.example-class').forEach((cardRipple) => {
new mdb.Ripple(cardRipple, {
color: 'light'
})
});
Via jQuery
Note: By default, MDB does not include jQuery and you have to add jQuery to the project on your own.
<a class="example-class" href="#!">
<img alt="example" class="img-fluid rounded" src="https://mdbootstrap.com/img/new/standard/city/043.webp" style="max-width: 27rem;"/>
</a>
$(document).ready(() => {
$('.example-class').ripple(options);
});
Options
Options can be passed via data attributes, JavaScript, or jQuery. For data attributes, append
the option name to data-mdb-
, as in data-mdb-ripple-centered=""
.
Name | Type | Default | Description |
---|---|---|---|
rippleCentered
|
Boolean | false |
Centers the position of ripple |
rippleColor |
String | '' |
Changes color of ripple |
rippleDuration
|
String | '500ms' |
Sets duration of animation |
rippleRadius |
Number | 0 |
Sets radius value |
rippleUnbound
|
Boolean | false |
Sets whether the effect should go beyond the wrapper's boundaries |
Methods
Name | Description | Example |
---|---|---|
dispose
|
Manually dispose of component | ripple.dispose() |
getInstance
|
Static method which allows you to get the ripple instance associated to a DOM element. |
Ripple.getInstance(rippleElement)
|
getOrCreateInstance
|
Static method which returns the ripple instance associated to a DOM element or create a new one in case it wasn't initialized. |
Ripple.getOrCreateInstance(rippleElement)
|
const rippleElement = document.getElementById('rippleElement')
const ripple = new mdb.Ripple(rippleElement)
ripple.dispose()
Import
MDB UI KIT also works with module bundlers. Use the following code to import this component:
import { Ripple } from 'mdb-ui-kit';