Skip to content

Commit c3a8a21

Browse files
committed
(refactor) move animation css in separate file
1 parent c7eaeb8 commit c3a8a21

File tree

5 files changed

+108
-115
lines changed

5 files changed

+108
-115
lines changed

src/ChatWindow/ChatLoader.vue

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<template>
2-
<transition name="fade" appear>
2+
<transition name="fade-spinner" appear>
33
<div class="container-center" v-if="show">
44
<div id="circle"></div>
55
</div>
@@ -22,19 +22,6 @@ export default {
2222
z-index: 9999;
2323
}
2424
25-
.fade-enter {
26-
opacity: 0;
27-
}
28-
29-
.fade-enter-active {
30-
transition: opacity 0.8s;
31-
}
32-
33-
.fade-leave-active {
34-
transition: opacity 0.2s;
35-
opacity: 0;
36-
}
37-
3825
#circle {
3926
height: 32px;
4027
width: 32px;

src/ChatWindow/ChatMessage.vue

Lines changed: 1 addition & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@
5858
}"
5959
:style="{ background: `url(${message.file.url})` }"
6060
>
61-
<transition name="fade">
61+
<transition name="fade-image">
6262
<div class="image-buttons" v-if="imageHover">
6363
<div
6464
class="svg-button button-view"
@@ -562,47 +562,10 @@ export default {
562562
margin: 0;
563563
}
564564
565-
.fade-enter {
566-
opacity: 0;
567-
}
568-
569-
.fade-enter-active {
570-
transition: opacity 1s;
571-
}
572-
573-
.fade-leave-active {
574-
transition: opacity 0.5s;
575-
opacity: 0;
576-
}
577-
578565
.icon-check {
579566
height: 14px;
580567
width: 14px;
581568
vertical-align: middle;
582569
margin: -3px 0 0 3px;
583570
}
584-
585-
.slide-left-enter-active,
586-
.slide-right-enter-active {
587-
transition: all 0.3s ease;
588-
transition-property: transform, opacity;
589-
}
590-
591-
.slide-left-leave-active,
592-
.slide-right-leave-active {
593-
transition: all 0.2s cubic-bezier(1, 0.5, 0.8, 1);
594-
transition-property: transform, opacity;
595-
}
596-
597-
.slide-left-enter,
598-
.slide-left-leave-to {
599-
transform: translateX(10px);
600-
opacity: 0;
601-
}
602-
603-
.slide-right-enter,
604-
.slide-right-leave-to {
605-
transform: translateX(-10px);
606-
opacity: 0;
607-
}
608571
</style>

src/ChatWindow/MessagesList.vue

Lines changed: 5 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
>
1515
<svg-icon name="menu" />
1616
</div>
17-
<transition name="slide-fade" v-if="menuActions.length">
17+
<transition name="slide-left" v-if="menuActions.length">
1818
<div v-if="menuOpened" v-click-outside="closeMenu" class="menu-options">
1919
<div class="menu-list">
2020
<div v-for="action in menuActions" :key="action.name">
@@ -30,15 +30,15 @@
3030
<div class="container-scroll">
3131
<div class="messages-container">
3232
<chat-loader :show="loadingMessages"></chat-loader>
33-
<transition name="fade">
33+
<transition name="fade-message">
3434
<div class="text-started" v-if="showNoMessages">
3535
{{ textMessages.MESSAGES_EMPTY }}
3636
</div>
3737
<div class="text-started" v-if="showMessagesStarted">
3838
{{ textMessages.CONVERSATION_STARTED }} {{ messages[0].date }}
3939
</div>
4040
</transition>
41-
<transition name="fade">
41+
<transition name="fade-message">
4242
<infinite-loading
4343
v-if="messages.length"
4444
spinner="spiral"
@@ -49,7 +49,7 @@
4949
<div slot="no-more"></div>
5050
</infinite-loading>
5151
</transition>
52-
<transition-group name="fade">
52+
<transition-group name="fade-message">
5353
<div v-for="(message, i) in messages" :key="message._id">
5454
<chat-message
5555
:message="message"
@@ -73,7 +73,7 @@
7373
</transition>
7474
</div>
7575
<div ref="roomFooter" class="room-footer">
76-
<transition name="slide-up-fade">
76+
<transition name="slide-up">
7777
<div v-if="messageReply" class="reply-container">
7878
<img
7979
v-if="isImageCheck(messageReply.file)"
@@ -663,61 +663,4 @@ textarea {
663663
pointer-events: none !important;
664664
transform: none !important;
665665
}
666-
667-
.fade-enter {
668-
opacity: 0;
669-
}
670-
671-
.fade-enter-active {
672-
transition: opacity 0.5s;
673-
}
674-
675-
.fade-leave-active {
676-
transition: opacity 0.2s;
677-
opacity: 0;
678-
}
679-
680-
.slide-fade-enter-active {
681-
transition: all 0.3s ease;
682-
}
683-
.slide-fade-leave-active {
684-
transition: all 0.2s cubic-bezier(1, 0.5, 0.8, 1);
685-
}
686-
.slide-fade-enter,
687-
.slide-fade-leave-to {
688-
transform: translateX(10px);
689-
opacity: 0;
690-
}
691-
692-
.slide-up-fade-enter-active {
693-
transition: all 0.3s ease;
694-
}
695-
.slide-up-fade-leave-active {
696-
transition: all 0.2s cubic-bezier(1, 0.5, 0.8, 1);
697-
}
698-
.slide-up-fade-enter,
699-
.slide-up-fade-leave-to {
700-
transform: translateY(10px);
701-
opacity: 0;
702-
}
703-
704-
.bounce-enter-active {
705-
animation: bounce-in 0.5s;
706-
}
707-
708-
.bounce-leave-active {
709-
animation: bounce-in 0.3s reverse;
710-
}
711-
712-
@keyframes bounce-in {
713-
0% {
714-
transform: scale(0);
715-
}
716-
50% {
717-
transform: scale(1.05);
718-
}
719-
100% {
720-
transform: scale(1);
721-
}
722-
}
723666
</style>

src/styles/animation.scss

Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
// Spinner animation
2+
.fade-spinner-enter {
3+
opacity: 0;
4+
}
5+
6+
.fade-spinner-enter-active {
7+
transition: opacity 0.8s;
8+
}
9+
10+
.fade-spinner-leave-active {
11+
transition: opacity 0.2s;
12+
opacity: 0;
13+
}
14+
15+
// Image hover animation
16+
.fade-image-enter {
17+
opacity: 0;
18+
}
19+
20+
.fade-image-enter-active {
21+
transition: opacity 1s;
22+
}
23+
24+
.fade-image-leave-active {
25+
transition: opacity 0.5s;
26+
opacity: 0;
27+
}
28+
29+
// Messages box and text animation
30+
.fade-message-enter {
31+
opacity: 0;
32+
}
33+
34+
.fade-message-enter-active {
35+
transition: opacity 0.5s;
36+
}
37+
38+
.fade-message-leave-active {
39+
transition: opacity 0.2s;
40+
opacity: 0;
41+
}
42+
43+
// Menu animation
44+
.slide-left-enter-active,
45+
.slide-right-enter-active {
46+
transition: all 0.3s ease;
47+
transition-property: transform, opacity;
48+
}
49+
50+
.slide-left-leave-active,
51+
.slide-right-leave-active {
52+
transition: all 0.2s cubic-bezier(1, 0.5, 0.8, 1);
53+
transition-property: transform, opacity;
54+
}
55+
56+
.slide-left-enter,
57+
.slide-left-leave-to {
58+
transform: translateX(10px);
59+
opacity: 0;
60+
}
61+
62+
.slide-right-enter,
63+
.slide-right-leave-to {
64+
transform: translateX(-10px);
65+
opacity: 0;
66+
}
67+
68+
// Reply message box animation
69+
.slide-up-enter-active {
70+
transition: all 0.3s ease;
71+
}
72+
.slide-up-leave-active {
73+
transition: all 0.2s cubic-bezier(1, 0.5, 0.8, 1);
74+
}
75+
.slide-up-enter,
76+
.slide-up-leave-to {
77+
transform: translateY(10px);
78+
opacity: 0;
79+
}
80+
81+
// Scroll down icon animation
82+
.bounce-enter-active {
83+
animation: bounce-in 0.5s;
84+
}
85+
86+
.bounce-leave-active {
87+
animation: bounce-in 0.3s reverse;
88+
}
89+
90+
@keyframes bounce-in {
91+
0% {
92+
transform: scale(0);
93+
}
94+
50% {
95+
transform: scale(1.05);
96+
}
97+
100% {
98+
transform: scale(1);
99+
}
100+
}

src/styles/index.scss

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
// @import 'loader';
1+
@import 'animation';

0 commit comments

Comments
 (0)