You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
session-desktop/stylesheets/_session_conversation.scss

725 lines
12 KiB
SCSS

$composition-container-height: 60px;
5 years ago
@keyframes fadein {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
@keyframes toShadow {
from {
opacity: 1;
}
to {
opacity: 0.25;
}
}
@keyframes fromShadow {
from {
opacity: 0.25;
}
to {
opacity: 1;
}
}
@keyframes pulseLight {
0% {
box-shadow: 0px 0px 0px 0px $session-color-danger-alt;
}
50% {
box-shadow: 0px 0px 12px 0px rgba($session-color-danger-alt, 1);
}
100% {
box-shadow: 0px 0px 0px 0px rgba($session-color-danger-alt, 1);
}
}
.conversation-item {
display: flex;
flex-grow: 1;
height: 100%;
outline: none;
5 years ago
.selection-mode {
.messages-container > *:not(.message-selected) {
animation: toShadow $session-transition-duration;
opacity: 0.25;
}
5 years ago
.conversation-header {
.conversation-header {
&--items-wrapper {
.session-icon {
opacity: 0;
}
user-select: none;
pointer-events: none;
opacity: 0.25;
}
}
}
}
&__content {
display: flex;
flex-direction: column;
5 years ago
width: 100%;
outline: none;
}
&__options-pane {
position: absolute;
height: 100%;
right: 0vw;
5 years ago
transition: transform 1.5 * $session-transition-duration ease-in-out;
transform: translateX(100%);
will-change: transform;
&.show {
transform: none;
transition: transform $session-transition-duration ease-in-out;
}
}
}
.conversation-header {
5 years ago
&--items-wrapper {
display: flex;
flex-grow: 1;
align-items: center;
justify-content: center;
}
.message-selection-overlay {
position: absolute;
display: flex;
left: 0px;
right: 0px;
margin: 0px $session-margin-md;
align-items: center;
justify-content: space-between;
height: $main-view-header-height;
5 years ago
.close-button {
float: left;
}
5 years ago
.session-button.default.danger {
display: flex;
width: 80px;
}
}
.message-selection-overlay div[role='button'] {
display: inline-block;
}
5 years ago
.message-selection-overlay .button-group {
float: right;
}
}
.session-conversation-wrapper {
position: absolute;
width: 100%;
height: 100%;
background-color: $session-shade-2;
}
5 years ago
.messages-wrapper {
display: flex;
flex-grow: 1;
flex-direction: column;
position: relative;
height: 0px;
5 years ago
5 years ago
&--blocking-overlay {
background-color: rgba(0, 0, 0, 0.8);
5 years ago
position: absolute;
top: 0px;
bottom: 0px;
left: 0px;
right: 0px;
}
5 years ago
}
.messages-container {
display: flex;
flex-grow: 1;
flex-direction: column;
5 years ago
position: relative;
overflow-y: auto;
scrollbar-width: 4px;
padding: $session-margin-sm $session-margin-lg;
&__loading {
5 years ago
position: absolute;
top: 0px;
right: 0px;
left: 0px;
bottom: 0px;
z-index: 100;
background-color: $session-shade-2;
display: flex;
flex-grow: 1;
align-items: center;
justify-content: center;
}
}
5 years ago
.session-message-wrapper {
font-family: $session-font-default;
letter-spacing: 0.03em;
margin-top: 3px;
margin-bottom: 3px;
.react-contextmenu-wrapper {
display: flex;
align-items: start;
}
}
.composition-container {
display: flex;
justify-content: center;
align-items: center;
background-color: $session-shade-4;
padding: 0px $session-margin-md;
5 years ago
min-height: min-content;
& > .session-icon-button {
margin-right: $session-margin-sm;
}
.session-icon-button {
5 years ago
display: flex;
justify-content: center;
align-items: center;
opacity: 0.8;
.send {
background-color: $session-shade-14;
padding: $session-margin-xs;
border-radius: 50%;
height: 30px;
width: 30px;
}
}
.send-message-input {
display: flex;
flex-grow: 1;
min-height: $composition-container-height;
padding: 16px 0px;
textarea {
font-family: $session-font-default;
min-height: $composition-container-height / 3;
max-height: 2 * $composition-container-height;
margin-right: $session-margin-md;
color: $session-color-white;
resize: none;
display: flex;
flex-grow: 1;
background: transparent;
outline: none;
border: none;
font-size: $session-font-md;
line-height: $session-font-h2;
letter-spacing: 0.5px;
}
}
}
.session-emoji-panel {
position: absolute;
5 years ago
bottom: 68px;
right: 0px;
padding: $session-margin-lg;
5 years ago
z-index: 5;
opacity: 0;
visibility: hidden;
transition: $session-transition-duration;
button:focus {
outline: none;
}
&.show {
opacity: 1;
visibility: visible;
}
& > section.emoji-mart {
5 years ago
background-color: $session-shade-4;
border: 1px solid $session-shade-6-alt;
border-radius: 8px;
padding-bottom: $session-margin-sm;
5 years ago
.emoji-mart-category-label {
top: -2px;
5 years ago
span {
font-family: $session-font-default;
5 years ago
padding-top: $session-margin-sm;
background-color: $session-shade-4;
}
}
.emoji-mart-bar:last-child {
border: none;
.emoji-mart-preview {
display: none;
}
}
&:after {
content: '';
position: absolute;
top: calc(100% - 40px);
left: calc(100% - 79px);
width: 22px;
height: 22px;
background-color: $session-shade-4;
transform: rotate(45deg);
border-radius: 3px;
transform: scaleY(1.4) rotate(45deg);
border: 0.7px solid $session-shade-6-alt;
clip-path: polygon(100% 100%, 7.2px 100%, 100% 7.2px);
}
5 years ago
}
}
.session-progress {
position: relative;
5 years ago
z-index: 100;
&__progress {
5 years ago
will-change: transform;
5 years ago
width: 100%;
position: absolute;
left: 0px;
font-size: 0px;
5 years ago
height: 1px;
background-color: $session-color-green;
5 years ago
&.fade {
opacity: 0;
}
}
5 years ago
}
5 years ago
.session-recording {
height: $composition-container-height;
display: flex;
justify-content: space-between;
align-items: center;
flex-grow: 1;
outline: none;
5 years ago
$actions-element-size: 45px;
&--actions {
display: flex;
align-items: center;
justify-content: center;
background-color: $session-shade-5;
width: $actions-element-size;
height: $actions-element-size;
border-radius: 50%;
.session-icon-button {
animation: fadein $session-transition-duration;
opacity: 1;
border-radius: 50%;
width: $actions-element-size;
height: $actions-element-size;
.play {
margin-left: 4px;
}
}
}
&--visualisation {
z-index: 1000;
width: 100%;
display: flex;
align-items: center;
justify-content: center;
position: relative;
5 years ago
canvas {
position: absolute;
width: 100%;
padding: 0px $session-margin-lg;
5 years ago
}
}
5 years ago
&--status {
5 years ago
display: flex;
justify-content: center;
position: absolute;
left: 0;
right: 0;
bottom: $composition-container-height + $session-margin-md;
5 years ago
.session-button {
5 years ago
display: flex;
justify-content: center;
align-items: center;
width: 173px;
font-weight: 300;
font-family: $session-font-default;
5 years ago
5 years ago
&.primary {
cursor: default;
user-select: none;
5 years ago
&:hover {
5 years ago
filter: brightness(100%);
border: 2px solid #161819;
5 years ago
}
background-color: $session-shade-1-alt;
border: 2px solid #161819;
5 years ago
}
}
}
&--timer {
display: inline-flex;
align-items: center;
font-family: $session-font-default;
5 years ago
font-weight: bold;
font-size: 14px;
&.playback-timer {
margin-right: $session-margin-sm;
}
5 years ago
&-light {
5 years ago
height: $session-margin-sm;
width: $session-margin-sm;
border-radius: 50%;
background-color: $session-color-danger-alt;
margin-left: $session-margin-sm;
animation: pulseLight 4s infinite;
5 years ago
}
}
}
5 years ago
/* ************ */
/* AUDIO PLAYER */
/* ************ */
$rhap_theme-color: #212121 !default;
$rhap_background-color: rgba(0,0,0,0) !default;
$rhap_bar-color: #232323 !default;
$rhap_time-color: #DDDDDD !default;
$rhap_font-family: inherit !default;
.rhap_container, .rhap_container button, .rhap_progress-container {
outline: none;
}
.rhap_container {
box-sizing: border-box;
display: flex;
flex-direction: column;
line-height: 1;
font-family: $rhap_font-family;
min-width: 220px;
padding: 10px 0px;
&:focus:not(:focus-visible) {
outline: 0;
}
svg {
vertical-align: initial; // overwrite Bootstrap default
}
}
.rhap_current-time {
display: none;
}
.rhap_total-time{
margin-left: 10px;
}
.rhap_play-pause-button {
display: flex;
justify-content: center;
align-items: center;
}
.rhap_volume-bar {
display: none;
}
.rhap_volume-container div[role="progressbar"] {
display: none;
}
.rhap_header {
margin-bottom: 10px;
}
.rhap_footer {
margin-top: 5px;
}
.rhap_main {
display: flex;
flex-direction: column;
flex: 1 1 auto;
}
.rhap_stacked {
.rhap_controls-section {
margin-top: 8px;
}
}
.rhap_horizontal {
flex-direction: row;
.rhap_controls-section {
margin-left: 8px;
}
}
.rhap_horizontal-reverse {
flex-direction: row-reverse;
.rhap_controls-section {
margin-right: 8px;
}
}
.rhap_stacked-reverse {
flex-direction: column-reverse;
.rhap_controls-section {
margin-bottom: 8px;
}
}
.rhap_progress-section {
display: flex;
flex: 3 1 auto;
align-items: center;
}
.rhap_progress-container {
display: flex;
align-items: center;
height: 20px;
flex: 1 0 auto;
align-self: center;
margin: 0 calc(10px + 1%);
cursor: pointer;
-webkit-user-select: none;
&:focus:not(:focus-visible) {
outline: 0;
}
}
.rhap_time {
color: $rhap_time-color;
font-size: 12px;
user-select: none;
-webkit-user-select: none;
}
.rhap_progress-bar {
box-sizing: border-box;
position: relative;
z-index: 0;
width: 100%;
height: 5px;
background-color: $rhap_bar-color;
border-radius: 2px;
}
.rhap_progress-filled {
height: 100%;
position: absolute;
z-index: 2;
background-color: $rhap_theme-color;
border-radius: 2px;
}
.rhap_progress-bar-show-download {
background-color: rgba($rhap_bar-color, 0.5);
}
.rhap_download-progress {
height: 100%;
position: absolute;
z-index: 1;
background-color: $rhap_bar-color;
border-radius: 2px;
}
.rhap_progress-indicator {
box-sizing: border-box;
position: absolute;
z-index: 3;
width: 20px;
height: 20px;
margin-left: -10px;
top: -8px;
background: $session-color-green;
border-radius: 50px;
box-shadow: rgba($rhap_theme-color, .5) 0 0 5px;
}
.rhap_controls-section {
display: flex;
justify-content: space-between;
align-items: center;
}
.rhap_additional-controls {
// display: flex;
display: none;
flex: 1 0 auto;
align-items: center;
}
.rhap_repeat-button {
font-size: 26px;
width: 26px;
height: 26px;
color: $rhap_theme-color;
margin-right: 6px;
}
.rhap_main-controls {
flex: 0 1 auto;
display: flex;
align-items: center;
}
.rhap_main-controls-button {
margin: 0 3px;
color: $rhap_theme-color;
font-size: 35px;
width: 25px;
display: flex;
justify-content: start;
}
.rhap_volume-controls {
display: flex;
flex: 1 0 auto;
align-items: center;
}
.rhap_volume-button {
display: flex;
align-items: center;
justify-content: center;
}
.rhap_volume-button {
flex: 0 0 26px;
font-size: 20px;
color: #FFFFFF;
}
.rhap_volume-container {
display: flex;
align-items: center;
flex: 0 1 100px;
-webkit-user-select: none;
}
.rhap_volume-bar-area {
display: flex;
align-items: center;
width: 100%;
height: 14px;
cursor: pointer;
&:focus:not(:focus-visible) {
outline: 0;
}
}
.rhap_volume-bar {
box-sizing: border-box;
position: relative;
width: 100%;
height: 4px;
background: $rhap_bar-color;
border-radius: 2px;
}
.rhap_volume-indicator {
box-sizing: border-box;
position: absolute;
width: 12px;
height: 12px;
margin-left: -6px;
left: 0;
top: -4px;
background: $rhap_theme-color;
opacity: 0.9;
border-radius: 50px;
box-shadow: rgba($rhap_theme-color, .5) 0 0 3px;
cursor: pointer;
&:hover {
opacity: .9;
}
}
/* Utils */
.rhap_button-clear {
background-color: transparent;
border: none;
padding: 0;
overflow: hidden;
cursor: pointer;
&:hover {
opacity: .9;
transition-duration: .2s;
}
&:active {
opacity: .95;
}
&:focus:not(:focus-visible) {
outline: 0;
}
}
/* **************** */
/* END AUDIO PLAYER */
/* **************** */