Animations

React Bootstrap 5 Animations

Subtle and smooth MDB animations provide the user with a unique experience when interacting with UI. There are several dozen animations at your disposal along with many customization and implementation options.

Note: Read the API tab to find all available options and advanced customization

Move the mouse over the squares below to launch the animation.

fade-in
fade-in-down
fade-in-left
fade-in-right
fade-in-up
fade-out
fade-out-down
fade-out-left
fade-out-right
fade-out-up
slide-in-down
slide-in-left
slide-in-right
slide-in-up
slide-out-down
slide-out-left
slide-out-right
slide-out-up
slide-down
slide-left
slide-right
slide-up
zoom-in
zoom-out
tada
pulse

Basic example

To implement animation use MDBAnimation component. In the example below, we use the component with icon tag <MDBAnimation tag="i"> and props reset={true} animation="slide-out-right" duration={500} to give it animation on click.

reset={true} lets you decide if the animation can be repeated

duration={500} lets you specify duration of the animation

animation="slide-out-right" lets you specify which animation apply to the element. In the demo section above you can find available animations.

Click the car to start the animation.

        
            
          import React from 'react';
          import { MDBAnimation } from 'mdb-react-ui-kit';
          
          export default function App() {
            return (
              <MDBAnimation
                reset={true}
                tag='i'
                animation='slide-right'
                className='fas fa-car-side fa-3x'
                start='onClick'
                duration={500}
              />
            );
          }
        
        
    
        
            
          import React from 'react';
          import { useAnimatedRef } from 'mdb-react-ui-kit';

          export default function App() {
            const basicExampleRef = useAnimatedRef({ animation: 'slide-right', duration: 500, start: 'onClick', reset: true })

            return (
              <i ref={basicExampleRef} className='fas fa-car-side fa-3x'></i>
            );
          }
          
        
    

Animation list

By default, you have access to the basic animations. However, you can also import _animate-extended.scss and compile extended animations.

Basic Animations

  • fade-in
  • fade-in-down
  • fade-in-left
  • fade-in-right
  • fade-in-up
  • fade-out
  • fade-out-down
  • fade-out-left
  • fade-out-right
  • fade-out-up
  • slide-in-down
  • slide-in-left
  • slide-in-right
  • slide-in-up
  • slide-out-dDown
  • slide-out-left
  • slide-out-right
  • slide-out-up
  • slide-down
  • slide-left
  • slide-right
  • slide-up
  • zoom-in
  • zoom-out
  • tada
  • pulse

Extended Animations

  • drop-in
  • drop-out
  • fly-in
  • fly-in-up
  • fly-in-down
  • fly-in-left
  • fly-in-right
  • fly-out
  • fly-out-up
  • fly-out-down
  • fly-out-left
  • fly-out-right
  • browse-in
  • browse-out
  • browse-out-left
  • browse-out-right
  • jiggle
  • flash
  • shake
  • glow

Launch options

There are several options for launching the animation.

On click

Animation on click is a default launching option, so it does not require any data-mdb-attribute.

        
            
            import React from 'react';
            import { MDBAnimation } from 'mdb-react-ui-kit';
            
            export default function App() {
              return (
                <MDBAnimation
                  reset={true}
                  tag='i'
                  animation='slide-right'
                  className='fas fa-car-side fa-3x'
                  start='onClick'
                  duration={500}
                />
              );
            }
          
        
    
        
            
            import React from 'react';
            import { useAnimatedRef } from 'mdb-react-ui-kit';
  
            export default function App() {
              const basicExampleRef = useAnimatedRef({ animation: 'slide-right', duration: 500, start: 'onClick', reset: true })
  
              return (
                <i ref={basicExampleRef} className='fas fa-car-side fa-3x'></i>
              );
            }
            
        
    

On hover

Use start='onHover' to launch the animation on mouse hover.

        
            
            import React from 'react';
            import { MDBAnimation } from 'mdb-react-ui-kit';
            
            export default function App() {
              return (
                <MDBAnimation
                  reset={true}
                  tag='i'
                  animation='slide-right'
                  className='fas fa-car-side fa-3x'
                  start='onHover'
                  duration={500}
                />
              );
            }
          
        
    
        
            
            import React from 'react';
            import { useAnimatedRef } from 'mdb-react-ui-kit';
  
            export default function App() {
              const basicExampleRef = useAnimatedRef({ animation: 'slide-right', duration: 500, start: 'onHover', reset: true })
  
              return (
                <i ref={basicExampleRef} className='fas fa-car-side fa-3x'></i>
              );
            }
            
        
    

On Load

Use start='onLoad' to start the animation after loading the page. Refresh your browser to see this effect.

        
            
            import React from 'react';
            import { MDBAnimation } from 'mdb-react-ui-kit';
            
            export default function App() {
              return (
                <MDBAnimation
                  tag='i'
                  animation='zoom-in'
                  className='fas fa-car-side fa-3x'
                  start='onLoad'
                  duration={500}
                />
              );
            }
          
        
    
        
            
            import React from 'react';
            import { useAnimatedRef } from 'mdb-react-ui-kit';
  
            export default function App() {
              const basicExampleRef = useAnimatedRef({ animation: 'zoom-in', duration: 500, start: 'onLoad' })
  
              return (
                <i ref={basicExampleRef} className='fas fa-car-side fa-3x'></i>
              );
            }
            
        
    

On scroll

Use start='onScroll' to launch the animation when you scroll the page and reach the element.

Notice that the animation will launch only once - even if you reach it when scrolling multiple times.

        
            
            import React from 'react';
            import { MDBAnimation } from 'mdb-react-ui-kit';
            
            export default function App() {
              return (
                <MDBAnimation
                  reset={true}
                  tag='i'
                  animation='slide-in-left'
                  className='fas fa-car-side fa-3x'
                  start='onScroll'
                  duration={500}
                />
              );
            }
          
        
    
        
            
            import React from 'react';
            import { useAnimatedRef } from 'mdb-react-ui-kit';
  
            export default function App() {
              const basicExampleRef = useAnimatedRef({ animation: 'slide-in-left', duration: 500, start: 'onScroll', reset: true })
  
              return (
                <i ref={basicExampleRef} className='fas fa-car-side fa-3x'></i>
              );
            }
            
        
    

Repeat animation on scroll

If you want to launch the animation every time it's reached when scrolling use repeatOnScroll.

        
            
            import React from 'react';
            import { MDBAnimation } from 'mdb-react-ui-kit';
            
            export default function App() {
              return (
                <MDBAnimation
                  reset={true}
                  repeatOnScroll
                  tag='i'
                  animation='slide-in-left'
                  className='fas fa-car-side fa-3x'
                  start='onScroll'
                  duration={500}
                />
              );
            }
          
        
    
        
            
            import React from 'react';
            import { useAnimatedRef } from 'mdb-react-ui-kit';
  
            export default function App() {
              const basicExampleRef = useAnimatedRef({
                animation: 'slide-in-left',
                duration: 500,
                start: 'onScroll',
                reset: true,
                repeatOnScroll: true,
              });
                
              return (
                <i ref={basicExampleRef} className='fas fa-car-side fa-3x'></i>
              );
            }
            
        
    

Examples

Examples of practical usage of the animation.

Launching via external element

Click or hover the button to launch the animation.

        
            
            import React, { useState } from 'react';
            import { MDBAnimation, MDBBtn } from 'mdb-react-ui-kit';
           
            export default function App() {
              const [clickAnimation, setClickAnimation] = useState(false);
              const [hoverAnimation, setHoverAnimation] = useState(false);

              const toggleClick = () => {
                setClickAnimation(!clickAnimation)
              }

              const toggleHover = () => {
                setHoverAnimation(!hoverAnimation)
              }

              return (
                <div className='d-flex justify-content-around'>
                  <div>
                    <MDBBtn className='me-5' onClick={toggleClick}>
                      Animation on Click
                    </MDBBtn>
                    <MDBAnimation
                      reset={true}
                      enableTarget
                      target={clickAnimation}
                      setTarget={setClickAnimation}
                      tag='i'
                      animation='slide-right'
                      className='fas fa-car-side fa-3x'
                      start='onClick'
                      duration={500}
                    />
                  </div>
                  <div>
                    <MDBBtn className='me-5' onMouseEnter={toggleHover}>
                      Animation on Hover
                    </MDBBtn>
                    <MDBAnimation
                      reset={true}
                      enableTarget
                      target={hoverAnimation}
                      setTarget={setHoverAnimation}
                      tag='i'
                      animation='slide-right'
                      className='fas fa-car-side fa-3x'
                      start='onHover'
                      duration={500}
                    />
                  </div>
                </div>
              );
            }
          
        
    
        
            
          import React from 'react';
          import { useAnimatedRef } from 'mdb-react-ui-kit';

          export default function App() {
            const refExternalClickBtn = useRef(null);
            const refExternalClick = useAnimatedRef({
              animation: 'slide-right',
              reset: true,
              externalElement: refExternalClickBtn,
            });
          
            const refExternalHoverBtn = useRef(null);
            const refExternalHover = useAnimatedRef({
              start: 'onHover',
              animation: 'slide-right',
              reset: true,
              externalElement: refExternalHoverBtn,
            });
              
            return (
              <div className='d-flex justify-content-around'>
                <div>
                  <MDBBtn className='me-5' ref={refExternalClickBtn}>
                    Animation on Click
                  </MDBBtn>
                  <i className='fas fa-car-side fa-3x' ref={refExternalClick}></i>
                </div>
                <div>
                  <MDBBtn className='me-5' ref={refExternalHoverBtn}>
                    Animation on Hover
                  </MDBBtn>
                  <i className='fas fa-car-side fa-3x' ref={refExternalHover}></i>
                </div>
              </div>
            );
          }
          
        
    

Start animation manually

You can use the setTarget prop to start or stop the animation at the right moment.

        
            
            import React, { useState } from 'react';
            import { MDBAnimation, MDBBtn } from 'mdb-react-ui-kit';
            
            export default function App() {
              const [infiniteAnimation, setInifiniteAnimation] = useState(false);

              return (
                <div>
                  <MDBAnimation
                    infinite
                    enableTarget
                    target={infiniteAnimation}
                    setTarget={setInifiniteAnimation}
                    tag='i'
                    animation='fade-in'
                    className='fas fa-car-side fa-3x'
                    start='onClick'
                    duration={500}
                  />
                  <MDBBtn className='ms-3' onClick={() => setInifiniteAnimation(true)}>
                    start
                  </MDBBtn>
                  <MDBBtn className='ms-3' onClick={() => setInifiniteAnimation(false)}>
                    stop
                  </MDBBtn>
                </div>
              );
            }
          
        
    

Change animation type

You can change the element's animation type at any time.

        
            
            import React, { useState } from 'react';
            import { MDBAnimation, MDBBtn } from 'mdb-react-ui-kit';
            
            export default function App() {
              const [changeAnimation, setChangeAnimation] = useState(false);

              const toggleClick = () => {
                setChangeAnimation(!changeAnimation);
              }

              return (
                <>
                  <MDBAnimation
                    infinite
                    tag='i'
                    animation={changeAnimation ? 'zoom-in' : 'zoom-out'}
                    className='fas fa-car-side fa-3x'
                    start='onLoad'
                    duration={500}
                  />
                  <MDBBtn className='ms-3' onClick={toggleClick}>
                    change animation
                  </MDBBtn>
                </>
              );
            }
          
        
    

List group

Click "Add" button to add a new item to the list.

  • Cras justo odio
  • Dapibus ac facilisis in
  • Vestibulum at eros
        
            
            import React, { useState } from 'react';
            import { 
              MDBAnimation,
              MDBBtn,
              MDBListGroup,
              MDBListGroupItem,
            } from 'mdb-react-ui-kit';
            
            export default function App() {
              const [list, setList] = useState(['Cras justo odio', 'Dapibus ac facilisis in', 'Vestibulum at eros']);

              const addListRow = () => {
                setList([...list, `element ${list.length}`]);
              };
            
              const removeListRow = (id: number) => {
                setList(list.filter((row, i) => i !== id));
              };

              return (
                <div className='d-flex'>
                  <MDBListGroup style={{ minWidth: '22rem' }}>
                    {list.map((el, i) => (
                      <MDBListGroupItem key={i} onClick={() => removeListRow(i)}>
                        <MDBAnimation animation='slide-in-down' start='onLoad'>
                          {el}
                        </MDBAnimation>
                      </MDBListGroupItem>
                    ))}
                  </MDBListGroup>
                  <div className='ms-3'>
                    <MDBBtn onClick={addListRow}>add</MDBBtn>
                  </div>
                </div>
              );
            }
          
        
    

Accordion

Click the collapsible group of the accordion to see the animation.

Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft beer farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus labore sustainable VHS.

Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft beer farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus labore sustainable VHS.

Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft beer farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus labore sustainable VHS.
        
            
              import React, { useState, useEffect } from 'react';
              import { 
                MDBAnimation,
                MDBBtn,
                MDBCard,
                MDBCardHeader,
                MDBCardBody,
                MDBCollapse,
              } from 'mdb-react-ui-kit';
              
              export default function App() {
                const [collapseAnimation, setCollapseAnimation] = useState([true, false, false]);
                const [collapseOpened, setCollapseOpened] = useState('accordionCollapse1');
  
                const toggleAccordion = (value: string) => {
                  value !== collapseOpened ? setCollapseOpened(value) : setCollapseOpened('');
                };
  
                useEffect(() => {
                  if (collapseOpened === 'accordionCollapse1') {
                    setCollapseAnimation([true, false, false]);
                  } else if (collapseOpened === 'accordionCollapse2') {
                    setCollapseAnimation([false, true, false]);
                  } else if (collapseOpened === 'accordionCollapse3') {
                    setCollapseAnimation([false, false, true]);
                  } else {
                    setCollapseAnimation([false, false, false]);
                  }
                }, [collapseOpened]);
  
                return (
                  <>
                    <MDBCard>
                      <MDBCardHeader background='white'>
                        <h2 className='mb-0'>
                          <MDBBtn
                            onClick={() => toggleAccordion('accordionCollapse1')}
                            block
                            className='btn-link text-start'
                            outline
                            style={{ border: 'none' }}
                          >
                            Collapsible Group Item #1
                          </MDBBtn>
                        </h2>
                      </MDBCardHeader>
                      <MDBAnimation
                        enableTarget
                        target={collapseAnimation[0]}
                        tag='div'
                        animation='fade-in-up'
                        duration={500}
                        delay={500}
                      >
                        <MDBCollapse id='accordionCollapse1' open={collapseOpened === 'accordionCollapse1'}>
                          <MDBCardBody>
                            Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid.
                            3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt
                            laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin
                            coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes
                            anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings
                            occaecat craft beer farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard
                            of them accusamus labore sustainable VHS.
                          </MDBCardBody>
                        </MDBCollapse>
                      </MDBAnimation>
                    </MDBCard>
                    <MDBCard>
                      <MDBCardHeader background='white'>
                        <h2 className='mb-0'>
                          <MDBBtn
                            onClick={() => toggleAccordion('accordionCollapse2')}
                            block
                            className='btn-link text-start'
                            outline
                            style={{ border: 'none' }}
                          >
                            Collapsible Group Item #2
                          </MDBBtn>
                        </h2>
                      </MDBCardHeader>
                      <MDBAnimation
                        enableTarget
                        target={collapseAnimation[1]}
                        tag='div'
                        animation='fade-in-up'
                        duration={500}
                        delay={500}
                      >
                        <MDBCollapse id='accordionCollapse2' open={collapseOpened === 'accordionCollapse2'}>
                          <MDBCardBody>
                            Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid.
                            3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt
                            laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin
                            coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes
                            anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings
                            occaecat craft beer farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard
                            of them accusamus labore sustainable VHS.
                          </MDBCardBody>
                        </MDBCollapse>
                      </MDBAnimation>
                    </MDBCard>
                    <MDBCard>
                      <MDBCardHeader background='white'>
                        <h2 className='mb-0'>
                          <MDBBtn
                            onClick={() => toggleAccordion('accordionCollapse3')}
                            block
                            className='btn-link text-start'
                            outline
                            style={{ border: 'none' }}
                          >
                            Collapsible Group Item #3
                          </MDBBtn>
                        </h2>
                      </MDBCardHeader>
                      <MDBAnimation
                        enableTarget
                        target={collapseAnimation[2]}
                        tag='div'
                        animation='fade-in-up'
                        duration={500}
                        delay={500}
                      >
                        <MDBCollapse id='accordionCollapse3' open={collapseOpened === 'accordionCollapse1'}>
                          <MDBCardBody>
                            Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid.
                            3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt
                            laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin
                            coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes
                            anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings
                            occaecat craft beer farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard
                            of them accusamus labore sustainable VHS.
                          </MDBCardBody>
                        </MDBCollapse>
                      </MDBAnimation>
                    </MDBCard>
                  </>
                );
              }
            
        
    
        
            
            import React, { useState, useRef } from 'react';
            import {
              useAnimatedRef,
              MDBBtn,
              MDBCard,
              MDBCardHeader,
              MDBCardBody,
              MDBCollapse,
            } from 'mdb-react-ui-kit';

            export default function App() {
              const [collapseOpened, setCollapseOpened] = useState('accordionCollapse1');

              const toggleAccordion = (value: string) => {
                value !== collapseOpened ? setCollapseOpened(value) : setCollapseOpened('');
              };

              const refCollapseBtn1 = useRef(null);
              const refCollapse1 = useAnimatedRef({
                animation: 'fade-in-up',
                reset: true,
                delay: 500,
                externalElement: refCollapseBtn1,
              });

              const refCollapseBtn2 = useRef(null);
              const refCollapse2 = useAnimatedRef({
                animation: 'fade-in-up',
                reset: true,
                delay: 500,
                externalElement: refCollapseBtn2,
              });

              const refCollapseBtn3 = useRef(null);
              const refCollapse3 = useAnimatedRef({
                animation: 'fade-in-up',
                reset: true,
                delay: 500,
                externalElement: refCollapseBtn3,
              });

              return (
                <>
                  <MDBCard>
                    <MDBCardHeader background='white'>
                      <h2 className='mb-0'>
                        <MDBBtn
                          onClick={() => toggleAccordion('accordionCollapse1')}
                          block
                          className='btn-link text-start'
                          outline
                          style={{ border: 'none' }}
                          ref={refCollapseBtn1}
                        >
                          Collapsible Group Item #1
                        </MDBBtn>
                      </h2>
                    </MDBCardHeader>
                    <div ref={refCollapse1}>
                      <MDBCollapse id='accordionCollapse1' open={collapseOpened === 'accordionCollapse1'}>
                        <MDBCardBody>
                          Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid.
                          3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt
                          laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin
                          coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes
                          anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings
                          occaecat craft beer farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard
                          of them accusamus labore sustainable VHS.
                        </MDBCardBody>
                      </MDBCollapse>
                    </div>
                  </MDBCard>
                  <MDBCard>
                    <MDBCardHeader background='white'>
                      <h2 className='mb-0'>
                        <MDBBtn
                          onClick={() => toggleAccordion('accordionCollapse2')}
                          block
                          className='btn-link text-start'
                          outline
                          style={{ border: 'none' }}
                          ref={refCollapseBtn2}
                        >
                          Collapsible Group Item #2
                        </MDBBtn>
                      </h2>
                    </MDBCardHeader>
                    <div ref={refCollapse2}>
                      <MDBCollapse id='accordionCollapse2' open={collapseOpened === 'accordionCollapse2'}>
                        <MDBCardBody>
                          Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid.
                          3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt
                          laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin
                          coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes
                          anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings
                          occaecat craft beer farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard
                          of them accusamus labore sustainable VHS.
                        </MDBCardBody>
                      </MDBCollapse>
                    </div>
                  </MDBCard>
                  <MDBCard>
                    <MDBCardHeader background='white'>
                      <h2 className='mb-0'>
                        <MDBBtn
                          onClick={() => toggleAccordion('accordionCollapse3')}
                          block
                          className='btn-link text-start'
                          outline
                          style={{ border: 'none' }}
                          ref={refCollapseBtn3}
                        >
                          Collapsible Group Item #3
                        </MDBBtn>
                      </h2>
                    </MDBCardHeader>
                    <div ref={refCollapse3}>
                      <MDBCollapse id='accordionCollapse3' open={collapseOpened === 'accordionCollapse3'}>
                        <MDBCardBody>
                          Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid.
                          3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt
                          laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin
                          coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes
                          anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings
                          occaecat craft beer farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard
                          of them accusamus labore sustainable VHS.
                        </MDBCardBody>
                      </MDBCollapse>
                    </div>
                  </MDBCard>
                </>
              );
            }
            
        
    

Animations - API


Import

        
            
            import { MDBAnimation } from 'mdb-react-ui-kit';
          
        
    
        
            
            import { useAnimatedRef } from 'mdb-react-ui-kit';
          
        
    

Properties

MDBAnimation

Name Type Default Description Example
animation | '' | 'fade-in' | 'fade-in-down' | 'fade-in-left' | 'fade-in-right' | 'fade-in-up' | 'fade-out' | 'fade-out-down' | 'fade-out-left' | 'fade-out-right' | 'fade-out-up' | 'slide-in-down' | 'slide-in-left' | 'slide-in-right' | 'slide-in-up' | 'slide-out-down' | 'slide-out-left' | 'slide-out-right' | 'slide-out-up' | 'slide-down' | 'slide-left' | 'slide-right' | 'slide-up' | 'zoom-in' | 'zoom-out' | 'tada' | 'pulse' | 'drop-in' | 'drop-out' | 'fly-in' | 'fly-in-up' | 'fly-in-down' | 'fly-in-left' | 'fly-in-right' | 'fly-out' | 'fly-out-up' | 'fly-out-down' | 'fly-out-left' | 'fly-out-right' | 'browse-in' | 'browse-out' | 'browse-out-left' | 'browse-out-right' | 'jiggle' | 'flash' | 'shake' | 'glow' 'slide-right' Animation type <MDBAnimation animation='fade' />
animationRef React.RefObject - Refetence to MDBAnimation element. <MDBAnimation animationRef={exampleRef} />
delay number 0 Set the animation delay <MDBAnimation delay={200} />
duration number 500 Animation duration time <MDBAnimation duration={1000} />
enableTarget boolean false Enables activating an animation through an external element <MDBAnimation enableTarget />
infinite boolean false Set the animation infinite <MDBAnimation infinite />
repeatOnScroll boolean false Set it to start the animation each time the item appears on the screen <MDBAnimation start='onScroll' repeatOnScroll />
reset boolean true Allows to repeat the animation <MDBAnimation reset={false} />
setTarget Function - Change animation state <MDBAnimation setTarget={setAnimation} />
start string 'onLoad' | 'onHover' | 'onClick' | 'onScroll' Animation start type <MDBAnimation start='onHover' />
tag string 'div' Defines tag of the MDBAnimation element <MDBAnimation tag="section" />
target boolean false Animation state <MDBAnimation target={animation} />

useAnimatedRef

Name Type Default Description Example
animation | 'fade-in' | 'fade-in-down' | 'fade-in-left' | 'fade-in-right' | 'fade-in-up' | 'fade-out' | 'fade-out-down' | 'fade-out-left' | 'fade-out-right' | 'fade-out-up' | 'slide-in-down' | 'slide-in-left' | 'slide-in-right' | 'slide-in-up' | 'slide-out-down' | 'slide-out-left' | 'slide-out-right' | 'slide-out-up' | 'slide-down' | 'slide-left' | 'slide-right' | 'slide-up' | 'zoom-in' | 'zoom-out' | 'tada' | 'pulse' | 'drop-in' | 'drop-out' | 'fly-in' | 'fly-in-up' | 'fly-in-down' | 'fly-in-left' | 'fly-in-right' | 'fly-out' | 'fly-out-up' | 'fly-out-down' | 'fly-out-left' | 'fly-out-right' | 'browse-in' | 'browse-out' | 'browse-out-left' | 'browse-out-right' | 'jiggle' | 'flash' | 'shake' | 'glow' 'slide-right' Animation type useAnimatedRef({ animation: 'fade' })
delay number 0 Set the animation delay useAnimatedRef({ delay: 200 })
duration number 500 Animation duration time useAnimatedRef({ duration: 1000 })
externalTarget React.RefObject 500 Enables activating an animation through an external element useAnimatedRef({ externalTarget: externalTargetRef })
infinite boolean false Set the animation infinite useAnimatedRef({ infinite: true })
reset boolean false Allows to repeat the animation useAnimatedRef({ reset: false })
repeatOnScroll boolean false Set it to start the animation each time the item appears on the screen useAnimatedRef({ start: 'onScroll' repeatOnScroll: true })
start 'onLoad' | 'onHover' | 'onClick' | 'onScroll' onClick Animation start type useAnimatedRef({ start: 'onHover' })

CSS variables

As part of MDB’s evolving CSS variables approach, animations now uses local CSS variables on .animation for enhanced real-time customization. Values for the CSS variables are set via Sass, so Sass customization is still supported, too.

        
            
          // .animation
          --#{$prefix}animation-delay-1s: #{$animation-delay-1s};
          --#{$prefix}animation-delay-2s: #{$animation-delay-3s};
          --#{$prefix}animation-delay-3s: #{$animation-delay-3s};
          --#{$prefix}animation-delay-4s: #{$animation-delay-4s};
          --#{$prefix}animation-delay-5s: #{$animation-delay-5s};
          --#{$prefix}animation-fast-duration: #{$animation-fast-duration};
          --#{$prefix}animation-faster-duration: #{$animation-faster-duration};
          --#{$prefix}animation-slow-duration: #{$animation-slow-duration};
          --#{$prefix}animation-slower-duration: #{$animation-slower-duration};

          // .fade-in-down {
          --#{$prefix}animation-fade-in-down-transform-from: #{$animation-fade-in-down-transform-from};
          --#{$prefix}animation-fade-in-down-transform-to: #{$animation-fade-in-down-transform-to};

          // .fade-in-left 
          --#{$prefix}animation-fade-in-left-transform-from: #{$animation-fade-in-left-transform-from};
          --#{$prefix}animation-fade-in-left-transform-to: #{$animation-fade-in-left-transform-to};

          // .fade-in-right 
          --#{$prefix}animation-fade-in-right-transform-from: #{$animation-fade-in-right-transform-from};
          --#{$prefix}animation-fade-in-right-transform-to: #{$animation-fade-in-right-transform-to};

          // .fade-in-up 
          --#{$prefix}animation-fade-in-up-transform-from: #{$animation-fade-in-up-transform-from};
          --#{$prefix}animation-fade-in-up-transform-to: #{$animation-fade-in-up-transform-to};

          // .fade-out-down 
          --#{$prefix}animation-fade-out-down-transform-to: #{$animation-fade-out-down-transform-to};

          // .fade-out-left 
          --#{$prefix}animation-fade-out-left-transform-to: #{$animation-fade-out-left-transform-to};

          // .fade-out-right 
          --#{$prefix}animation-fade-out-right-transform-to: #{$animation-fade-out-right-transform-to};

          // .fade-out-up 
          --#{$prefix}animation-fade-out-up-transform-to: #{$animation-fade-out-up-transform-to};

          // .slide-in-down 
          --#{$prefix}animation-slide-in-down-transform-from: #{$animation-slide-in-down-transform-from};
          --#{$prefix}animation-slide-in-down-transform-to: #{$animation-slide-in-down-transform-to};

          // .slide-in-left 
          --#{$prefix}animation-slide-in-left-transform-from: #{$animation-slide-in-left-transform-from};
          --#{$prefix}animation-slide-in-left-transform-to: #{$animation-slide-in-left-transform-to};

          // .slide-in-right 
          --#{$prefix}animation-slide-in-right-transform-from: #{$animation-slide-in-right-transform-from};
          --#{$prefix}animation-slide-in-right-transform-to: #{$animation-slide-in-right-transform-to};

          // .slide-in-up 
          --#{$prefix}animation-slide-in-up-transform-from: #{$animation-slide-in-up-transform-from};
          --#{$prefix}animation-slide-in-up-transform-to: #{$animation-slide-in-up-transform-to};

          // .slide-out-down 
          --#{$prefix}animation-slide-out-down-transform-from: #{$animation-slide-out-down-transform-from};
          --#{$prefix}animation-slide-out-down-transform-to: #{$animation-slide-out-down-transform-to};

          // .slide-out-left 
          --#{$prefix}animation-slide-out-left-transform-from: #{$animation-slide-out-left-transform-from};
          --#{$prefix}animation-slide-out-left-transform-to: #{$animation-slide-out-left-transform-to};
        
          // .slide-out-right 
          --#{$prefix}animation-slide-out-right-transform-from: #{$animation-slide-out-right-transform-from};
          --#{$prefix}animation-slide-out-right-transform-to: #{$animation-slide-out-right-transform-to};
        
          // .slide-out-up 
          --#{$prefix}animation-slide-out-up-transform-from: #{$animation-slide-out-up-transform-from};
          --#{$prefix}animation-slide-out-up-transform-to: #{$animation-slide-out-up-transform-to};

          // .slide-down 
          --#{$prefix}animation-slide-down-transform-from: #{$animation-slide-down-transform-from};
          --#{$prefix}animation-slide-down-transform-to: #{$animation-slide-down-transform-to};

          // .slide-left 
          --#{$prefix}animation-slide-left-transform-from: #{$animation-slide-left-transform-from};
          --#{$prefix}animation-slide-left-transform-to: #{$animation-slide-left-transform-to};

          // .slide-right 
          --#{$prefix}animation-slide-right-transform-from: #{$animation-slide-right-transform-from};
          --#{$prefix}animation-slide-right-transform-to: #{$animation-slide-right-transform-to};

          // .slide-up 
          --#{$prefix}animation-slide-up-transform-from: #{$animation-slide-up-transform-from};
          --#{$prefix}animation-slide-up-transform-to: #{$animation-slide-up-transform-to};

          // .zoom-in 
          --#{$prefix}animation-zoom-in-transform-from: #{$animation-zoom-in-transform-from};

          // .zoom-out 
          --#{$prefix}animation-zoom-out-transform-50: #{$animation-zoom-out-transform-50};

          // .tada 
          --#{$prefix}animation-tada-transform-from: #{$animation-tada-transform-from};
          --#{$prefix}animation-tada-transform-20: #{$animation-tada-transform-20};
          --#{$prefix}animation-tada-transform-90: #{$animation-tada-transform-90};
          --#{$prefix}animation-tada-transform-80: #{$animation-tada-transform-80};
          --#{$prefix}animation-tada-transform-to: #{$animation-tada-transform-to};

          // .pulse 
          --#{$prefix}animation-pulse-transform-from: #{$animation-pulse-transform-from};
          --#{$prefix}animation-pulse-transform-50: #{$animation-pulse-transform-50};
          --#{$prefix}animation-pulse-transform-to: #{$animation-pulse-transform-to};

          // .drop-in 
          --#{$prefix}animation-drop-in-transform-0: #{$animation-drop-in-transform-0};
          --#{$prefix}animation-drop-in-transform-100: #{$animation-drop-in-transform-100};
          --#{$prefix}animation-drop-in-timing-function: #{$animation-drop-in-timing-function};
        
          // .drop-out 
          --#{$prefix}animation-drop-out-transform-0: #{$animation-drop-out-transform-0};
          --#{$prefix}animation-drop-out-transform-100: #{$animation-drop-out-transform-100};
          --#{$prefix}animation-drop-out-timing-function: #{$animation-drop-out-timing-function};

          // .fly-in 
          --#{$prefix}animation-fly-in-transform-0: #{$animation-fly-in-transform-0};
          --#{$prefix}animation-fly-in-transform-20: #{$animation-fly-in-transform-20};
          --#{$prefix}animation-fly-in-transform-40: #{$animation-fly-in-transform-40};
          --#{$prefix}animation-fly-in-transform-60: #{$animation-fly-in-transform-60};
          --#{$prefix}animation-fly-in-transform-80: #{$animation-fly-in-transform-80};
          --#{$prefix}animation-fly-in-transform-100: #{$animation-fly-in-transform-100};
          --#{$prefix}animation-fly-in-timing-function: #{$animation-fly-in-timing-function};

          // .fly-in-up 
          --#{$prefix}animation-fly-in-up-transform-0: #{$animation-fly-in-up-transform-0};
          --#{$prefix}animation-fly-in-up-transform-60: #{$animation-fly-in-up-transform-60};
          --#{$prefix}animation-fly-in-up-transform-75: #{$animation-fly-in-up-transform-75};
          --#{$prefix}animation-fly-in-up-transform-90: #{$animation-fly-in-up-transform-90};
          --#{$prefix}animation-fly-in-up-transform-100: #{$animation-fly-in-up-transform-100};
          --#{$prefix}animation-fly-in-up-timing-function: #{$animation-fly-in-up-timing-function};
        
          // .fly-in-down 
          --#{$prefix}animation-fly-in-down-transform-0: #{$animation-fly-in-down-transform-0};
          --#{$prefix}animation-fly-in-down-transform-60: #{$animation-fly-in-down-transform-60};
          --#{$prefix}animation-fly-in-down-transform-75: #{$animation-fly-in-down-transform-75};
          --#{$prefix}animation-fly-in-down-transform-90: #{$animation-fly-in-down-transform-90};
          --#{$prefix}animation-fly-in-down-timing-function: #{$animation-fly-in-down-timing-function};

          // .fly-in-left 
          --#{$prefix}animation-fly-in-left-transform-0: #{$animation-fly-in-left-transform-0};
          --#{$prefix}animation-fly-in-left-transform-60: #{$animation-fly-in-left-transform-60};
          --#{$prefix}animation-fly-in-left-transform-75: #{$animation-fly-in-left-transform-75};
          --#{$prefix}animation-fly-in-left-transform-90: #{$animation-fly-in-left-transform-90};
          --#{$prefix}animation-fly-in-left-timing-function: #{$animation-fly-in-left-timing-function};

          // .fly-in-right 
          --#{$prefix}animation-fly-in-right-transform-0: #{$animation-fly-in-right-transform-0};
          --#{$prefix}animation-fly-in-right-transform-60: #{$animation-fly-in-right-transform-60};
          --#{$prefix}animation-fly-in-right-transform-75: #{$animation-fly-in-right-transform-75};
          --#{$prefix}animation-fly-in-right-transform-90: #{$animation-fly-in-right-transform-90};
          --#{$prefix}animation-fly-in-right-timing-function: #{$animation-fly-in-right-timing-function};

          // .fly-out 
          --#{$prefix}animation-fly-out-transform-20: #{$animation-fly-out-transform-20};
          --#{$prefix}animation-fly-out-transform-55: #{$animation-fly-out-transform-55};
          --#{$prefix}animation-fly-out-transform-100: #{$animation-fly-out-transform-100};
          --#{$prefix}animation-fly-out-timing-function: #{$animation-fly-out-timing-function};

          // .fly-out-up 
          --#{$prefix}animation-fly-out-up-transform-20: #{$animation-fly-out-up-transform-20};
          --#{$prefix}animation-fly-out-up-transform-45: #{$animation-fly-out-up-transform-45};
          --#{$prefix}animation-fly-out-up-transform-100: #{$animation-fly-out-up-transform-100};
          --#{$prefix}animation-fly-out-up-timing-function: #{$animation-fly-out-up-timing-function};
        
          // .fly-out-down
          --#{$prefix}animation-fly-out-down-transform-20: #{$animation-fly-out-down-transform-20};
          --#{$prefix}animation-fly-out-down-transform-45: #{$animation-fly-out-down-transform-45};
          --#{$prefix}animation-fly-out-down-transform-100: #{$animation-fly-out-down-transform-100};
          --#{$prefix}animation-fly-out-down-timing-function: #{$animation-fly-out-down-timing-function};

          // .fly-out-left 
          --#{$prefix}animation-fly-out-left-transform-20: #{$animation-fly-out-left-transform-20};
          --#{$prefix}animation-fly-out-left-transform-100: #{$animation-fly-out-left-transform-100};
          --#{$prefix}animation-fly-out-left-timing-function: #{$animation-fly-out-left-timing-function};

          // .fly-out-right 
          --#{$prefix}animation-fly-out-right-transform-20: #{$animation-fly-out-right-transform-20};
          --#{$prefix}animation-fly-out-right-transform-100: #{$animation-fly-out-right-transform-100};
          --#{$prefix}animation-fly-out-right-timing-function: #{$animation-fly-out-right-timing-function};

          // .browse-in 
          --#{$prefix}animation-browse-in-transform-0: #{$animation-browse-in-transform-0};
          --#{$prefix}animation-browse-in-transform-10: #{$animation-browse-in-transform-10};
          --#{$prefix}animation-browse-in-transform-80: #{$animation-browse-in-transform-80};
          --#{$prefix}animation-browse-in-transform-100: #{$animation-browse-in-transform-100};

          // .browse-out, .browse-out-left
          --#{$prefix}animation-browse-out-left-transform-0: #{$animation-browse-out-left-transform-0};
          --#{$prefix}animation-browse-out-left-transform-50: #{$animation-browse-out-left-transform-50};
          --#{$prefix}animation-browse-out-left-transform-100: #{$animation-browse-out-left-transform-100};

          // .browse-out-right 
          --#{$prefix}animation-browse-out-right-transform-0: #{$animation-browse-out-right-transform-0};
          --#{$prefix}animation-browse-out-right-transform-50: #{$animation-browse-out-right-transform-50};
          --#{$prefix}animation-browse-out-right-transform-100: #{$animation-browse-out-right-transform-100};

          // .jiggle 
          --#{$prefix}animation-jiggle-transform-0: #{$animation-jiggle-transform-0};
          --#{$prefix}animation-jiggle-transform-30: #{$animation-jiggle-transform-30};
          --#{$prefix}animation-jiggle-transform-40: #{$animation-jiggle-transform-40};
          --#{$prefix}animation-jiggle-transform-50: #{$animation-jiggle-transform-50};
          --#{$prefix}animation-jiggle-transform-65: #{$animation-jiggle-transform-65};
          --#{$prefix}animation-jiggle-transform-75: #{$animation-jiggle-transform-75};
          --#{$prefix}animation-jiggle-transform-100: #{$animation-jiggle-transform-100};

          // .shake 
          --#{$prefix}animation-shake-transform-100: #{$animation-shake-transform-100};
          --#{$prefix}animation-shake-transform-90: #{$animation-shake-transform-90};
          --#{$prefix}animation-shake-transform-80: #{$animation-shake-transform-80};

          // .glow 
          --#{$prefix}animation-glow-bg-0: #{$animation-glow-bg-0};
          --#{$prefix}animation-glow-bg-30: #{$animation-glow-bg-30};
          --#{$prefix}animation-glow-bg-100: #{$animation-glow-bg-100};
        
        
    

SCSS variables

        
            
          $animation-delay-1s: 1s;
          $animation-delay-2s: 2s;
          $animation-delay-3s: 3s;
          $animation-delay-4s: 4s;
          $animation-delay-5s: 5s;
          $animation-fast-duration: 800ms;
          $animation-faster-duration: 500ms;
          $animation-slow-duration: 2s;
          $animation-slower-duration: 3s;
          
          $animation-fade-in-down-transform-from: translate3d(0, -100%, 0);
          $animation-fade-in-down-transform-to: translate3d(0, 0, 0);

          $animation-fade-in-left-transform-from: translate3d(-100%, 0, 0);
          $animation-fade-in-left-transform-to: translate3d(0, 0, 0);

          $animation-fade-in-right-transform-from: translate3d(100%, 0, 0);
          $animation-fade-in-right-transform-to: translate3d(0, 0, 0);

          $animation-fade-in-up-transform-from: translate3d(0, 100%, 0);
          $animation-fade-in-up-transform-to: translate3d(0, 0, 0);

          $animation-fade-out-down-transform-to: translate3d(0, 100%, 0);

          $animation-fade-out-left-transform-to: translate3d(-100%, 0, 0);

          $animation-fade-out-right-transform-to: translate3d(100%, 0, 0);

          $animation-fade-out-up-transform-to: translate3d(0, -100%, 0);

          $animation-slide-in-down-transform-from: translate3d(0, -100%, 0);
          $animation-slide-in-down-transform-to: translate3d(0, 0, 0);

          $animation-slide-in-left-transform-from: translate3d(-100%, 0, 0);
          $animation-slide-in-left-transform-to: translate3d(0, 0, 0);

          $animation-slide-in-right-transform-from: translate3d(100%, 0, 0);
          $animation-slide-in-right-transform-to: translate3d(0, 0, 0);

          $animation-slide-in-up-transform-from: translate3d(0, 100%, 0);
          $animation-slide-in-up-transform-to: translate3d(0, 0, 0);

          $animation-slide-out-down-transform-from: translate3d(0, 0, 0);
          $animation-slide-out-down-transform-to: translate3d(0, 100%, 0);

          $animation-slide-out-left-transform-from: translate3d(0, 0, 0);
          $animation-slide-out-left-transform-to: translate3d(-100%, 0, 0);

          $animation-slide-out-right-transform-from: translate3d(0, 0, 0);
          $animation-slide-out-right-transform-to: translate3d(100%, 0, 0);

          $animation-slide-out-up-transform-from: translate3d(0, 0, 0);
          $animation-slide-out-up-transform-to: translate3d(0, -100%, 0);

          $animation-slide-down-transform-from: translate3d(0, 0, 0);
          $animation-slide-down-transform-to: translate3d(0, 100%, 0);

          $animation-slide-left-transform-from: translate3d(0, 0, 0);
          $animation-slide-left-transform-to: translate3d(-100%, 0, 0);

          $animation-slide-right-transform-from: translate3d(0, 0, 0);
          $animation-slide-right-transform-to: translate3d(100%, 0, 0);

          $animation-slide-up-transform-from: translate3d(0, 0, 0);
          $animation-slide-up-transform-to: translate3d(0, -100%, 0);

          $animation-zoom-in-transform-from: scale3d(0.3, 0.3, 0.3);

          $animation-zoom-out-transform-50: scale3d(0.3, 0.3, 0.3);

          $animation-tada-transform-from: scale3d(1, 1, 1);
          $animation-tada-transform-20: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);
          $animation-tada-transform-90: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
          $animation-tada-transform-80: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
          $animation-tada-transform-to: scale3d(1, 1, 1);

          $animation-pulse-transform-from: scale3d(1, 1, 1);
          $animation-pulse-transform-50: scale3d(1.05, 1.05, 1.05);
          $animation-pulse-transform-to: scale3d(1, 1, 1);

          // Animations extended

          $animation-drop-in-transform-0: scale(0);
          $animation-drop-in-transform-100: scale(1);
          $animation-drop-in-timing-function: cubic-bezier(0.34, 1.61, 0.7, 1);

          $animation-drop-out-transform-0: scale(1);
          $animation-drop-out-transform-100: scale(0);
          $animation-drop-out-timing-function: cubic-bezier(0.34, 1.61, 0.7, 1);

          $animation-fly-in-transform-0: scale3d(0.3, 0.3, 0.3);
          $animation-fly-in-transform-20: scale3d(1.1, 1.1, 1.1);
          $animation-fly-in-transform-40: scale3d(0.9, 0.9, 0.9);
          $animation-fly-in-transform-60: scale3d(1.03, 1.03, 1.03);
          $animation-fly-in-transform-80: scale3d(0.97, 0.97, 0.97);
          $animation-fly-in-transform-100: scale3d(1, 1, 1);
          $animation-fly-in-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);

          $animation-fly-in-up-transform-0: translate3d(0, 1500px, 0);
          $animation-fly-in-up-transform-60: translate3d(0, -20px, 0);
          $animation-fly-in-up-transform-75: translate3d(0, 10px, 0);
          $animation-fly-in-up-transform-90: translate3d(0, -5px, 0);
          $animation-fly-in-up-transform-100: translate3d(0, 0, 0);
          $animation-fly-in-up-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);

          $animation-fly-in-down-transform-0: translate3d(0, -1500px, 0);
          $animation-fly-in-down-transform-60: translate3d(0, 25px, 0);
          $animation-fly-in-down-transform-75: translate3d(0, -10px, 0);
          $animation-fly-in-down-transform-90: translate3d(0, 5px, 0);
          $animation-fly-in-down-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);

          $animation-fly-in-left-transform-0: translate3d(1500px, 0, 0);
          $animation-fly-in-left-transform-60: translate3d(-25px, 0, 0);
          $animation-fly-in-left-transform-75: translate3d(10px, 0, 0);
          $animation-fly-in-left-transform-90: translate3d(-5px, 0, 0);
          $animation-fly-in-left-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);

          $animation-fly-in-right-transform-0: translate3d(-1500px, 0, 0);
          $animation-fly-in-right-transform-60: translate3d(25px, 0, 0);
          $animation-fly-in-right-transform-75: translate3d(-10px, 0, 0);
          $animation-fly-in-right-transform-90: translate3d(5px, 0, 0);
          $animation-fly-in-right-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);

          $animation-fly-out-transform-20: scale3d(0.9, 0.9, 0.9);
          $animation-fly-out-transform-55: scale3d(1.1, 1.1, 1.1);
          $animation-fly-out-transform-100: scale3d(0.3, 0.3, 0.3);
          $animation-fly-out-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);

          $animation-fly-out-up-transform-20: translate3d(0, 10px, 0);
          $animation-fly-out-up-transform-45: translate3d(0, -20px, 0);
          $animation-fly-out-up-transform-100: translate3d(0, 2000px, 0);
          $animation-fly-out-up-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);

          $animation-fly-out-down-transform-20: translate3d(0, -10px, 0);
          $animation-fly-out-down-transform-45: translate3d(0, 20px, 0);
          $animation-fly-out-down-transform-100: translate3d(0, -2000px, 0);
          $animation-fly-out-down-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);

          $animation-fly-out-left-transform-20: translate3d(-20px, 0, 0);
          $animation-fly-out-left-transform-100: translate3d(2000px, 0, 0);
          $animation-fly-out-left-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);

          $animation-fly-out-right-transform-20: translate3d(20px, 0, 0);
          $animation-fly-out-right-transform-100: translate3d(-2000px, 0, 0);
          $animation-fly-out-right-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);

          $animation-browse-in-transform-0: scale(0.8) translateZ(0px);
          $animation-browse-in-transform-10: scale(0.8) translateZ(0px);
          $animation-browse-in-transform-80: scale(1.05) translateZ(0px);
          $animation-browse-in-transform-100: scale(1) translateZ(0px);

          $animation-browse-out-left-transform-0: translateX(0%) rotateY(0deg) rotateX(0deg);
          $animation-browse-out-left-transform-50: translateX(-105%) rotateY(35deg) rotateX(10deg)
            translateZ(-10px);
          $animation-browse-out-left-transform-100: translateX(0%) rotateY(0deg) rotateX(0deg)
            translateZ(-10px);

          $animation-browse-out-right-transform-0: translateX(0%) rotateY(0deg) rotateX(0deg);
          $animation-browse-out-right-transform-50: translateX(105%) rotateY(35deg) rotateX(10deg)
            translateZ(-10px);
          $animation-browse-out-right-transform-100: translateX(0%) rotateY(0deg) rotateX(0deg)
            translateZ(-10px);

          $animation-jiggle-transform-0: scale3d(1, 1, 1);
          $animation-jiggle-transform-30: scale3d(1.25, 0.75, 1);
          $animation-jiggle-transform-40: scale3d(0.75, 1.25, 1);
          $animation-jiggle-transform-50: scale3d(1.15, 0.85, 1);
          $animation-jiggle-transform-65: scale3d(0.95, 1.05, 1);
          $animation-jiggle-transform-75: scale3d(1.05, 0.95, 1);
          $animation-jiggle-transform-100: scale3d(1, 1, 1);

          $animation-flash-duration: 750ms;

          $animation-shake-transform-100: translateX(0);
          $animation-shake-transform-90: translateX(-10px);
          $animation-shake-transform-80: translateX(10px);

          $animation-glow-bg-0: #fcfcfd;
          $animation-glow-bg-30: #fff6cd;
          $animation-glow-bg-100: #fcfcfd;