Browse Source

Add loading indicator animation (#4316)

closed-social-v3
Eugen Rochko 7 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