Browse Source

Add loading indicator animation (#4316)

master
Eugen Rochko 6 years ago
committed by GitHub
parent
commit
1e0c7a0afc
2 changed files with 67 additions and 5 deletions
  1. +1
    -0
      app/javascript/mastodon/components/loading_indicator.js
  2. +66
    -5
      app/javascript/styles/components.scss

+ 1
- 0
app/javascript/mastodon/components/loading_indicator.js View File

@@ -3,6 +3,7 @@ import { FormattedMessage } from 'react-intl';

const LoadingIndicator = () => (
<div className='loading-indicator'>
<div className='loading-indicator__figure' />
<FormattedMessage id='loading_indicator.label' defaultMessage='Loading...' />
</div>
);


+ 66
- 5
app/javascript/styles/components.scss View File

@@ -2213,11 +2213,72 @@ button.icon-button.active i.fa-retweet {
}

.loading-indicator {
color: $ui-secondary-color;
font-size: 16px;
font-weight: 500;
padding-top: 120px;
text-align: center;
color: lighten($ui-base-color, 26%);
font-size: 12px;
font-weight: 400;
text-transform: uppercase;
overflow: visible;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);

span {
display: block;
float: left;
margin-left: 50%;
transform: translateX(-50%);
margin: 82px 0 0 50%;
white-space: nowrap;
animation: loader-label 1.15s infinite cubic-bezier(0.215, 0.610, 0.355, 1.000);
}
}

.loading-indicator__figure {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 0;
height: 0;
box-sizing: border-box;
border: 0 solid lighten($ui-base-color, 26%);
border-radius: 50%;
animation: loader-figure 1.15s infinite cubic-bezier(0.215, 0.610, 0.355, 1.000);
}

@keyframes loader-figure {
0% {
width: 0;
height: 0;
background-color: lighten($ui-base-color, 26%);
}

29% {
background-color: lighten($ui-base-color, 26%);
}

30% {
width: 42px;
height: 42px;
background-color: transparent;
border-width: 21px;
opacity: 1;
}

100% {
width: 42px;
height: 42px;
border-width: 0;
opacity: 0;
background-color: transparent;
}
}

@keyframes loader-label {
0% { opacity: 0.25; }
30% { opacity: 1; }
100% { opacity: 0.25; }
}

.video-error-cover {


Loading…
Cancel
Save