diff --git a/src/components/loader/bottom-block.svg b/src/components/loader/bottom-block.svg deleted file mode 100644 index b397068c448..00000000000 --- a/src/components/loader/bottom-block.svg +++ /dev/null @@ -1,17 +0,0 @@ - - \ No newline at end of file diff --git a/src/components/loader/loader.css b/src/components/loader/loader.css index 669329f0f77..e1609a2eaa6 100644 --- a/src/components/loader/loader.css +++ b/src/components/loader/loader.css @@ -36,131 +36,43 @@ .block-animation img { display: block; position: relative; - height: 30%; margin-top: -4px; + animation-name: bouncing; + animation-fill-mode: forwards; + animation-iteration-count: infinite; + animation-duration: 1s; + animation-delay: 0s; } -.top-block { - animation: top-slide-in 1.5s ease infinite; -} - -.middle-block { - animation: middle-slide-in 1.5s ease infinite; -} - -.bottom-block { - animation: bottom-slide-in 1.5s ease infinite; -} - -[dir="rtl"] .top-block { - animation: top-slide-in-rtl 1.5s ease infinite; -} - -[dir="rtl"] .middle-block { - animation: middle-slide-in-rtl 1.5s ease infinite; -} - -[dir="rtl"] .bottom-block { - animation: bottom-slide-in-rtl 1.5s ease infinite; -} - -@keyframes top-slide-in { - 0% { - transform: translateY(50px); - opacity: 0; - } - - 33% { - transform: translateY(0px); - opacity: 1; - } -} - -@keyframes middle-slide-in { - 0% { - transform: translateY(50px); - opacity: 0; - } - - 33% { - transform: translateY(50px); - opacity: 0; - } - - 66% { - transform: translateY(0px); - opacity: 1; - } -} - -@keyframes bottom-slide-in { - 0% { - transform: translateY(50px); - opacity: 0; - } - - 66% { - transform: translateY(50px); - opacity: 0; - } - - 100% { - transform: translateY(0px); - opacity: 1; - } -} - -@keyframes top-slide-in-rtl { - 0% { - transform: translateY(50px) scaleX(-1); - opacity: 0; - } - - 33% { - transform: translateY(0px) scaleX(-1); - opacity: 1; - } - 100% { - transform: translateY(0px) scaleX(-1); - opacity: 1; - } -} - -@keyframes middle-slide-in-rtl { - 0% { - transform: translateY(50px) scaleX(-1); - opacity: 0; - } - - 33% { - transform: translateY(50px) scaleX(-1); - opacity: 0; - } - - 66% { - transform: translateY(0px) scaleX(-1); - opacity: 1; - } - 100% { - transform: translateY(0px) scaleX(-1); - opacity: 1; - } -} - -@keyframes bottom-slide-in-rtl { +@keyframes bouncing { 0% { - transform: translateY(50px) scaleX(-1); - opacity: 0; + left: 0; + top: 0; + transform: rotate(0deg); + animation-timing-function: ease-out; + } + 25% { + left: 10px; + top: -50px; + transform: rotate(10deg); + animation-timing-function: ease-in; + } + 50% { + left: 0; + top: 0; + transform: rotate(0deg); + animation-timing-function: ease-out; + } + 75% { + left: -10px; + top: -50px; + transform: rotate(-10deg); + animation-timing-function: ease-in; } - - 66% { - transform: translateY(50px) scaleX(-1); - opacity: 0; - } - 100% { - transform: translateY(0px) scaleX(-1); - opacity: 1; + left: 0; + top: 0; + transform: rotate(0deg); } } diff --git a/src/components/loader/loader.jsx b/src/components/loader/loader.jsx index e0602846490..e712fffadf2 100644 --- a/src/components/loader/loader.jsx +++ b/src/components/loader/loader.jsx @@ -7,9 +7,7 @@ import styles from './loader.css'; import PropTypes from 'prop-types'; import bindAll from 'lodash.bindall'; import { tip } from '../../lib/randomUnhelpfulTip'; -import topBlock from './top-block.svg'; -import middleBlock from './middle-block.svg'; -import bottomBlock from './bottom-block.svg'; +import snail from './snail.svg' import * as progressMonitor from './tw-progress-monitor'; @@ -136,18 +134,7 @@ class LoaderComponent extends React.Component { >