UX: Changed post stream placeholder to animation (#7434)
This commit is contained in:
parent
9f07ced698
commit
1486328756
|
@ -3,21 +3,21 @@
|
||||||
{{#if loading}}
|
{{#if loading}}
|
||||||
<div class="card-row first-row">
|
<div class="card-row first-row">
|
||||||
<div class="user-card-avatar">
|
<div class="user-card-avatar">
|
||||||
<div class="card-avatar-placeholder animated-placeholder"></div>
|
<div class="card-avatar-placeholder animated-placeholder placeholder-animation"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="card-row second-row">
|
<div class="card-row second-row">
|
||||||
<div class="animated-placeholder"></div>
|
<div class="animated-placeholder placeholder-animation"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="card-row third-row">
|
<div class="card-row third-row">
|
||||||
<div class="animated-placeholder"></div>
|
<div class="animated-placeholder placeholder-animation"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="card-row fourth-row">
|
<div class="card-row fourth-row">
|
||||||
<div class="animated-placeholder"></div>
|
<div class="animated-placeholder placeholder-animation"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="card-row sixth-row">
|
<div class="card-row sixth-row">
|
||||||
<div class="animated-placeholder"></div>
|
<div class="animated-placeholder placeholder-animation"></div>
|
||||||
</div>
|
</div>
|
||||||
{{else}}
|
{{else}}
|
||||||
<div class="card-row first-row">
|
<div class="card-row first-row">
|
||||||
|
|
|
@ -6,12 +6,12 @@ export default createWidget("post-placeholder", {
|
||||||
template: hbs`
|
template: hbs`
|
||||||
<div class='row'>
|
<div class='row'>
|
||||||
<div class='topic-avatar'>
|
<div class='topic-avatar'>
|
||||||
<div class='placeholder-avatar'></div>
|
<div class='placeholder-avatar placeholder-animation'></div>
|
||||||
</div>
|
</div>
|
||||||
<div class='topic-body'>
|
<div class='topic-body'>
|
||||||
<div class='placeholder-text'></div>
|
<div class='placeholder-text placeholder-animation'></div>
|
||||||
<div class='placeholder-text'></div>
|
<div class='placeholder-text placeholder-animation'></div>
|
||||||
<div class='placeholder-text'></div>
|
<div class='placeholder-text placeholder-animation'></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
`
|
`
|
||||||
|
|
|
@ -33,6 +33,31 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// placeholder
|
||||||
|
@keyframes placeHolderShimmer {
|
||||||
|
0% {
|
||||||
|
background-position: -1000px 0;
|
||||||
|
}
|
||||||
|
100% {
|
||||||
|
background-position: 1100px 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.placeholder-animation {
|
||||||
|
animation-duration: 4s;
|
||||||
|
animation-fill-mode: forwards;
|
||||||
|
animation-iteration-count: infinite;
|
||||||
|
animation-name: placeHolderShimmer;
|
||||||
|
animation-timing-function: linear;
|
||||||
|
background: $primary-very-low;
|
||||||
|
background: linear-gradient(
|
||||||
|
to right,
|
||||||
|
$primary-very-low 10%,
|
||||||
|
$primary-low 18%,
|
||||||
|
$primary-very-low 33%
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
// Base Elements
|
// Base Elements
|
||||||
html {
|
html {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
|
|
|
@ -1,15 +1,30 @@
|
||||||
.placeholder-avatar {
|
.placeholder-avatar {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
background-color: $primary-low;
|
|
||||||
width: 45px;
|
width: 45px;
|
||||||
height: 45px;
|
height: 45px;
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
|
position: relative;
|
||||||
|
overflow: hidden;
|
||||||
|
&:before {
|
||||||
|
animation: placeHolderShimmer 4s linear infinite forwards;
|
||||||
|
position: absolute;
|
||||||
|
left: 0;
|
||||||
|
content: "";
|
||||||
|
background: linear-gradient(
|
||||||
|
to right,
|
||||||
|
$primary-very-low 10%,
|
||||||
|
$primary-low 28%,
|
||||||
|
$primary-very-low 43%
|
||||||
|
);
|
||||||
|
height: 45px;
|
||||||
|
width: 700px;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.placeholder-text {
|
.placeholder-text {
|
||||||
|
margin-left: 11px;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
background-color: $primary-low;
|
width: calc(100% - 11px);
|
||||||
width: 100%;
|
|
||||||
height: 1.5em;
|
height: 1.5em;
|
||||||
margin-bottom: 0.6em;
|
margin-bottom: 0.6em;
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,42 +2,31 @@ $card_width: 580px;
|
||||||
$avatar_width: 120px;
|
$avatar_width: 120px;
|
||||||
$avatar_margin: -50px; // negative margin makes avatars extend above cards
|
$avatar_margin: -50px; // negative margin makes avatars extend above cards
|
||||||
|
|
||||||
// placeholder
|
|
||||||
@keyframes placeHolderShimmer {
|
|
||||||
0% {
|
|
||||||
background-position: -468px 0;
|
|
||||||
}
|
|
||||||
100% {
|
|
||||||
background-position: 468px 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.animated-placeholder {
|
.animated-placeholder {
|
||||||
animation-duration: 1.25s;
|
|
||||||
animation-fill-mode: forwards;
|
|
||||||
animation-iteration-count: infinite;
|
|
||||||
animation-name: placeHolderShimmer;
|
|
||||||
animation-timing-function: linear;
|
|
||||||
background: $primary-low;
|
|
||||||
background: linear-gradient(
|
|
||||||
to right,
|
|
||||||
$primary-low 10%,
|
|
||||||
$primary-low-mid 18%,
|
|
||||||
$primary-low 33%
|
|
||||||
);
|
|
||||||
height: 20px;
|
height: 20px;
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
|
|
||||||
.card-avatar-placeholder {
|
.card-avatar-placeholder {
|
||||||
width: $avatar_width;
|
width: $avatar_width;
|
||||||
height: $avatar_width;
|
height: $avatar_width;
|
||||||
border-radius: 100%;
|
border-radius: 100%;
|
||||||
animation-duration: 5s;
|
position: relative;
|
||||||
background: linear-gradient(
|
overflow: hidden;
|
||||||
to right,
|
&:before {
|
||||||
$primary-low 10%,
|
animation: placeHolderShimmer 4s linear infinite forwards;
|
||||||
$primary-low-mid 38%,
|
position: absolute;
|
||||||
$primary-low 73%
|
left: 0;
|
||||||
);
|
content: "";
|
||||||
|
background: linear-gradient(
|
||||||
|
to right,
|
||||||
|
$primary-very-low 10%,
|
||||||
|
$primary-low 18%,
|
||||||
|
$primary-very-low 33%
|
||||||
|
);
|
||||||
|
height: $avatar_width;
|
||||||
|
width: $card_width;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// shared styles for user and group cards
|
// shared styles for user and group cards
|
||||||
|
|
Loading…
Reference in New Issue