2021-07-13 06:50:08 +00:00
|
|
|
@use 'sass:math';
|
|
|
|
|
|
|
|
.reactions-menu {
|
|
|
|
width: 280px;
|
2021-09-21 17:30:24 +00:00
|
|
|
background: $menuBG;
|
2021-07-13 06:50:08 +00:00
|
|
|
box-shadow: 0px 3px 16px rgba(0, 0, 0, 0.6), 0px 0px 4px 1px rgba(0, 0, 0, 0.25);
|
|
|
|
border-radius: 3px;
|
|
|
|
padding: 16px;
|
|
|
|
|
2022-03-11 13:00:49 +00:00
|
|
|
&.with-gif {
|
|
|
|
width: 328px;
|
|
|
|
|
|
|
|
.reactions-row .toolbox-button:last-of-type {
|
|
|
|
top: 3px;
|
|
|
|
|
|
|
|
& .toolbox-icon.toggled {
|
|
|
|
background-color: #000000;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-07-13 06:50:08 +00:00
|
|
|
&.overflow {
|
2022-03-11 13:00:49 +00:00
|
|
|
width: 100%;
|
2021-07-13 06:50:08 +00:00
|
|
|
|
|
|
|
.toolbox-icon {
|
|
|
|
width: 48px;
|
|
|
|
height: 48px;
|
|
|
|
|
|
|
|
span.emoji {
|
|
|
|
width: 48px;
|
|
|
|
height: 48px;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.reactions-row {
|
|
|
|
display: flex;
|
|
|
|
flex-direction: row;
|
|
|
|
justify-content: space-around;
|
|
|
|
|
|
|
|
.toolbox-button {
|
|
|
|
margin-right: 0;
|
|
|
|
}
|
2022-03-11 13:00:49 +00:00
|
|
|
|
|
|
|
.toolbox-button:last-of-type {
|
|
|
|
top: 0;
|
|
|
|
}
|
2021-07-13 06:50:08 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.toolbox-icon {
|
|
|
|
width: 40px;
|
|
|
|
height: 40px;
|
|
|
|
border-radius: 6px;
|
|
|
|
|
|
|
|
span.emoji {
|
|
|
|
width: 40px;
|
|
|
|
height: 40px;
|
|
|
|
font-size: 22px;
|
|
|
|
display: flex;
|
|
|
|
align-items: center;
|
|
|
|
justify-content: center;
|
2021-08-23 09:57:56 +00:00
|
|
|
transition: font-size ease .1s;
|
|
|
|
|
|
|
|
@for $i from 1 through 12 {
|
|
|
|
&.increase-#{$i}{
|
|
|
|
font-size: calc(20px + #{$i}px);
|
|
|
|
}
|
|
|
|
}
|
2021-07-13 06:50:08 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.reactions-row {
|
|
|
|
.toolbox-button {
|
|
|
|
margin-right: 8px;
|
|
|
|
touch-action: manipulation;
|
2022-03-11 13:00:49 +00:00
|
|
|
position: relative;
|
2021-07-13 06:50:08 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
.toolbox-button:last-of-type {
|
|
|
|
margin-right: 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.raise-hand-row {
|
|
|
|
margin-top: 16px;
|
|
|
|
|
|
|
|
.toolbox-button {
|
|
|
|
width: 100%;
|
|
|
|
}
|
|
|
|
|
|
|
|
.toolbox-icon {
|
|
|
|
width: 100%;
|
|
|
|
flex-direction: row;
|
|
|
|
align-items: center;
|
|
|
|
|
|
|
|
span.text {
|
|
|
|
font-style: normal;
|
|
|
|
font-weight: 600;
|
|
|
|
font-size: 14px;
|
|
|
|
line-height: 24px;
|
|
|
|
margin-left: 8px;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2022-04-13 13:18:54 +00:00
|
|
|
.reactions-menu-container {
|
|
|
|
padding-bottom: 6px;
|
|
|
|
}
|
|
|
|
|
2021-07-13 06:50:08 +00:00
|
|
|
.reactions-animations-container {
|
|
|
|
position: absolute;
|
|
|
|
width: 20%;
|
|
|
|
bottom: 0;
|
|
|
|
left: 40%;
|
2021-07-22 10:17:42 +00:00
|
|
|
height: 0;
|
2021-07-13 06:50:08 +00:00
|
|
|
}
|
|
|
|
|
2022-04-13 13:18:54 +00:00
|
|
|
.reactions-menu-popup-container {
|
2021-07-13 06:50:08 +00:00
|
|
|
display: inline-block;
|
|
|
|
position: relative;
|
|
|
|
}
|
|
|
|
|
|
|
|
$reactionCount: 20;
|
|
|
|
|
|
|
|
@function random($min, $max) {
|
|
|
|
@return math.random() * ($max - $min) + $min;
|
|
|
|
}
|
|
|
|
|
|
|
|
.reaction-emoji {
|
|
|
|
position: absolute;
|
|
|
|
font-size: 24px;
|
|
|
|
line-height: 32px;
|
|
|
|
width: 32px;
|
|
|
|
height: 32px;
|
2021-07-22 10:17:42 +00:00
|
|
|
top: 0;
|
|
|
|
left: 20px;
|
2021-07-13 06:50:08 +00:00
|
|
|
opacity: 0;
|
|
|
|
z-index: 1;
|
|
|
|
|
|
|
|
&.reaction-0 {
|
|
|
|
animation: flowToRight 5s forwards ease-in-out;
|
|
|
|
}
|
|
|
|
|
|
|
|
@for $i from 1 through $reactionCount {
|
|
|
|
&.reaction-#{$i} {
|
|
|
|
animation: animation-#{$i} 5s forwards ease-in-out;
|
2021-07-22 10:17:42 +00:00
|
|
|
top: #{random(-40, 10)}px;
|
|
|
|
left: #{random(0, 30)}px;
|
2021-07-13 06:50:08 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
@keyframes flowToRight {
|
|
|
|
0% {
|
|
|
|
transform: translate(0px, 0px) scale(0.6);
|
|
|
|
opacity: 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
70% {
|
|
|
|
transform: translate(40px, -70vh) scale(1.5);
|
|
|
|
opacity: 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
75% {
|
|
|
|
transform: translate(40px, -70vh) scale(1.5);
|
|
|
|
opacity: 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
100% {
|
|
|
|
transform: translate(140px, -50vh) scale(1);
|
|
|
|
opacity: 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
@mixin animation-list {
|
|
|
|
@for $i from 1 through $reactionCount {
|
|
|
|
$topX: random(-100, 100);
|
|
|
|
$topY: random(65, 75);
|
|
|
|
$bottomX: random(150, 200);
|
|
|
|
$bottomY: random(40, 50);
|
|
|
|
|
|
|
|
@if $topX < 0 {
|
|
|
|
$bottomX: -$bottomX;
|
|
|
|
}
|
|
|
|
|
|
|
|
@keyframes animation-#{$i} {
|
|
|
|
0% {
|
|
|
|
transform: translate(0, 0) scale(0.6);
|
|
|
|
opacity: 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
70% {
|
|
|
|
transform: translate(#{$topX}px, -#{$topY}vh) scale(1.5);
|
|
|
|
opacity: 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
75% {
|
|
|
|
transform: translate(#{$topX}px, -#{$topY}vh) scale(1.5);
|
|
|
|
opacity: 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
100% {
|
|
|
|
transform: translate(#{$bottomX}px, -#{$bottomY}vh) scale(1);
|
|
|
|
opacity: 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
@include animation-list;
|