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.
		
		
		
		
		
			
		
			
				
	
	
		
			407 lines
		
	
	
		
			7.6 KiB
		
	
	
	
		
			SCSS
		
	
			
		
		
	
	
			407 lines
		
	
	
		
			7.6 KiB
		
	
	
	
		
			SCSS
		
	
$composition-container-height: 60px;
 | 
						|
 | 
						|
@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;
 | 
						|
 | 
						|
  .selection-mode {
 | 
						|
    .messages-container > *:not(.message-selected) {
 | 
						|
      animation: toShadow $session-transition-duration;
 | 
						|
      opacity: 0.25;
 | 
						|
    }
 | 
						|
 | 
						|
    .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;
 | 
						|
    width: 100%;
 | 
						|
    outline: none;
 | 
						|
  }
 | 
						|
 | 
						|
  &__options-pane {
 | 
						|
    position: absolute;
 | 
						|
    height: 100%;
 | 
						|
    right: 0vw;
 | 
						|
 | 
						|
    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 {
 | 
						|
  &--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;
 | 
						|
 | 
						|
    .close-button {
 | 
						|
      float: left;
 | 
						|
    }
 | 
						|
 | 
						|
    .session-button.default.danger {
 | 
						|
      display: flex;
 | 
						|
      width: 80px;
 | 
						|
    }
 | 
						|
  }
 | 
						|
  .message-selection-overlay div[role='button'] {
 | 
						|
    display: inline-block;
 | 
						|
  }
 | 
						|
 | 
						|
  .message-selection-overlay .button-group {
 | 
						|
    float: right;
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
.session-conversation-wrapper {
 | 
						|
  position: absolute;
 | 
						|
  width: 100%;
 | 
						|
  height: 100%;
 | 
						|
  background-color: $session-shade-2;
 | 
						|
}
 | 
						|
 | 
						|
.messages-wrapper {
 | 
						|
  display: flex;
 | 
						|
  flex-grow: 1;
 | 
						|
  flex-direction: column;
 | 
						|
  position: relative;
 | 
						|
 | 
						|
  &--blocking-overlay {
 | 
						|
    background-color: rgba(0, 0, 0, 0.8);
 | 
						|
    position: absolute;
 | 
						|
    top: 0px;
 | 
						|
    bottom: 0px;
 | 
						|
    left: 0px;
 | 
						|
    right: 0px;
 | 
						|
  }
 | 
						|
}
 | 
						|
.messages-container {
 | 
						|
  display: flex;
 | 
						|
  flex-grow: 1;
 | 
						|
  flex-direction: column;
 | 
						|
  position: relative;
 | 
						|
  overflow-y: auto;
 | 
						|
  scrollbar-width: 4px;
 | 
						|
  padding: $session-margin-sm $session-margin-lg;
 | 
						|
 | 
						|
  &__loading {
 | 
						|
    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;
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
.composition-container {
 | 
						|
  display: flex;
 | 
						|
  justify-content: center;
 | 
						|
  align-items: center;
 | 
						|
  background-color: $session-shade-4;
 | 
						|
  padding: 0px $session-margin-md;
 | 
						|
  min-height: min-content;
 | 
						|
 | 
						|
  & > .session-icon-button {
 | 
						|
    margin-right: $session-margin-sm;
 | 
						|
  }
 | 
						|
  .session-icon-button {
 | 
						|
    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: 'SF Pro Text';
 | 
						|
      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;
 | 
						|
  bottom: 68px;
 | 
						|
  right: 0px;
 | 
						|
  padding: $session-margin-lg;
 | 
						|
 | 
						|
  z-index: 5;
 | 
						|
  opacity: 0;
 | 
						|
  visibility: hidden;
 | 
						|
  transition: $session-transition-duration;
 | 
						|
 | 
						|
  button:focus {
 | 
						|
    outline: none;
 | 
						|
  }
 | 
						|
 | 
						|
  &.show {
 | 
						|
    opacity: 1;
 | 
						|
    visibility: visible;
 | 
						|
  }
 | 
						|
 | 
						|
  & > section.emoji-mart {
 | 
						|
    background-color: $session-shade-4;
 | 
						|
    border: 1px solid $session-shade-6-alt;
 | 
						|
    border-radius: 8px;
 | 
						|
    padding-bottom: $session-margin-sm;
 | 
						|
 | 
						|
 | 
						|
    .emoji-mart-category-label {
 | 
						|
      top: -2px;
 | 
						|
 | 
						|
      span {
 | 
						|
        font-family: 'SF Pro Text';
 | 
						|
        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);
 | 
						|
    }
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
.session-progress {
 | 
						|
  position: relative;
 | 
						|
  z-index: 100;
 | 
						|
 | 
						|
  &__progress {
 | 
						|
    transition: opacity 0.25s;
 | 
						|
    will-change: transform;
 | 
						|
    
 | 
						|
    width: 100%;
 | 
						|
    position: absolute;
 | 
						|
    left: 0px;
 | 
						|
    font-size: 0px;
 | 
						|
    height: 3px;
 | 
						|
 | 
						|
    background-color: $session-color-green;
 | 
						|
 | 
						|
    &.fade {
 | 
						|
      opacity: 0;
 | 
						|
    }
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
.session-recording {
 | 
						|
  height: $composition-container-height;
 | 
						|
  display: flex;
 | 
						|
  justify-content: space-between;
 | 
						|
  align-items: center;
 | 
						|
  flex-grow: 1;
 | 
						|
  outline: none;
 | 
						|
 | 
						|
  $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;
 | 
						|
 | 
						|
    canvas {
 | 
						|
      position: absolute;
 | 
						|
      width: 100%;
 | 
						|
      padding: 0px $session-margin-lg;
 | 
						|
    }
 | 
						|
  }
 | 
						|
 | 
						|
  &--status {
 | 
						|
    display: flex;
 | 
						|
    justify-content: center;
 | 
						|
    position: absolute;
 | 
						|
    left: 0;
 | 
						|
    right: 0;
 | 
						|
    bottom: $composition-container-height + $session-margin-md;
 | 
						|
 | 
						|
    .session-button {
 | 
						|
      display: flex;
 | 
						|
      justify-content: center;
 | 
						|
      align-items: center;
 | 
						|
      width: 173px;
 | 
						|
      font-weight: 300;
 | 
						|
      font-family: 'SF Pro Text';
 | 
						|
 | 
						|
      &.primary {
 | 
						|
        cursor: default;
 | 
						|
        user-select: none;
 | 
						|
        &:hover {
 | 
						|
          filter: brightness(100%);
 | 
						|
          border: 2px solid #161819;
 | 
						|
        }
 | 
						|
        background-color: $session-shade-1-alt;
 | 
						|
        border: 2px solid #161819;
 | 
						|
      }
 | 
						|
    }
 | 
						|
  }
 | 
						|
 | 
						|
  &--timer {
 | 
						|
    display: inline-flex;
 | 
						|
    align-items: center;
 | 
						|
    font-family: 'SF Pro Text';
 | 
						|
    font-weight: bold;
 | 
						|
    font-size: 14px;
 | 
						|
 | 
						|
    &.playback-timer {
 | 
						|
      margin-right: $session-margin-sm;
 | 
						|
    }
 | 
						|
 | 
						|
    &-light {
 | 
						|
      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;
 | 
						|
    }
 | 
						|
  }
 | 
						|
}
 |