$onionPathLineColor: rgba(#7a7a7a, 0.6); .subtle { opacity: $session-subtle-factor; } .soft { opacity: 0.4; } .text-center { text-align: center; } .fullwidth { width: 100%; } .break-word { word-break: break-all; } .session-icon-button svg path { transition: fill 0.3s ease; } input, textarea { caret-color: var(--color-text) !important; } * { user-select: none; .text-selectable, input, textarea { user-select: text; } } ::selection { background: var(--color-text-highlight); } .shadowed { opacity: $session-shadow-opacity; } .overlayed { opacity: $session-overlay-opacity; pointer-events: none; } .overlay { display: flex !important; z-index: 1; } #main-view { height: 100vh; display: flex; flex-grow: 1; position: relative; } .button-group > div { display: inline-flex; margin-inline-start: 5px; margin-inline-end: 5px; } .session-button { @mixin transparent-background($textAndBorderColor) { background-color: Transparent; background-repeat: no-repeat; overflow: hidden; outline: none; color: $textAndBorderColor; border: 2px solid $textAndBorderColor; } width: auto; display: flex; justify-content: center; align-items: center; font-weight: 700; user-select: none; white-space: nowrap; cursor: pointer; transition: $session-transition-duration; background-color: rgba(0, 0, 0, 0); &.disabled { cursor: default; } &.default, &.square, &.brand { color: var(--color-foreground-primary); &:not(.disabled):hover { background: var(--color-clickable-hovered); } &.green, &.white, &.primary, &.secondary, &.success, &.danger, &.warning { &.disabled { filter: brightness(60%); } } &.green { background-color: var(--color-accent-button); color: var(--color-text-opposite); } &.white { color: var(--color-text); } &.primary { background-color: var(--color-background-primary); color: white; .session-icon { fill: var(--color-foreground-primary); } } &.secondary { background-color: $session-color-secondary; } &.success { background-color: $session-color-success; } &.danger { background-color: $session-color-danger; } &.danger-alt { background-color: $session-color-danger-alt; } &.warning { background-color: $session-color-warning; } } &.brand-outline, &.default-outline, &.square-outline { border: none; &.green { @include transparent-background(var(--color-button-green)); } &.white { @include transparent-background(var(--color-text)); } &.primary { @include transparent-background($session-color-primary); } &.secondary { @include transparent-background($session-color-secondary); } &.danger { @include transparent-background($session-color-danger); } &.warning { @include transparent-background($session-color-warning-alt); } &.warning, &.danger, &.secondary, &.primary, &.white, &.green { &.disabled { filter: brightness(60%); &:hover { filter: brightness(60%); } } } } &.brand { min-width: 165px; height: 45px; align-items: center; padding: 0px $session-margin-lg; font-size: $session-font-md; font-family: $session-font-accent; border-radius: 500px; &:not(.disabled):hover { color: var(--color-text); border-color: var(--color-text); } } &.default, &.square, &.default-outline, &.square-outline { border-radius: 2px; height: 33px; padding: 0px 18px; font-size: $session-font-sm; } &.square, &.square-outline { border-radius: 0px; } & > *:hover:not(svg) { filter: brightness(80%); } } .session-label { color: $session-color-white; padding: $session-margin-sm; width: 100%; border-radius: 2px; text-align: center; &.primary { background-color: $session-color-primary; } &.secondary { background-color: $session-color-secondary; } &.success { background-color: $session-color-success; } &.danger { background-color: $session-color-danger; } &.warning { background-color: $session-color-warning-alt; } } .session-icon-button { cursor: pointer; display: inline-block; position: relative; opacity: 0.4; transform: translateZ(0); &:hover { opacity: 1; } transition: opacity $session-transition-duration; &.no-opacity { opacity: 1; } } /* CONVERSATION AND MESSAGES */ .module-conversation-header { height: $main-view-header-height; } .module-conversation-header__title-flex, .module-conversation-header__title { font-weight: bold; width: 100%; display: flex; font-size: $session-font-md; &-text { @include session-color-subtle(var(--color-text)); font-weight: 300; font-size: $session-font-sm; line-height: $session-font-sm; } .module-contact-name { width: 100%; } .module-contact-name__profile-number { text-align: center; } } .module-conversation-header__title { flex-direction: column; } .module-conversation-header__title-flex { flex-direction: row; } .module-conversation__user__profile-name, .module-message__author__profile-name { font-style: normal; } .module-message__author-avatar { position: relative; margin-inline-end: 20px; padding-top: 5px; padding-inline-end: 4px; } .module-message--incoming { margin-inline-start: 0; margin-inline-end: auto; } .module-message--outgoing { margin-inline-end: 0; margin-inline-start: auto; } pre { backdrop-filter: brightness(0.8); padding: $session-margin-xs; } .module-message__container { position: relative; display: inline-block; overflow: hidden; min-width: 30px; // To limit messages with things forcing them wider, like long attachment names max-width: calc(100vw - 380px - 100px); align-items: center; } label { user-select: none; } .module-message__attachment-container { // Entirely to ensure that images are centered if they aren't full width of bubble text-align: center; position: relative; overflow: hidden; border-top-left-radius: $session_message-container-border-radius; border-bottom-left-radius: $session_message-container-border-radius; border-top-right-radius: 5px; border-bottom-right-radius: 5px; } .module-message__container--outgoing--first-of-series { border-top-right-radius: $session_message-container-border-radius; } .module-message__container--outgoing--last-of-series { border-bottom-right-radius: $session_message-container-border-radius; } .conversation-header { .module-avatar img { box-shadow: 0px 0px 5px 0px rgba(255, 255, 255, 0.2); } .search-icon { margin-inline-end: 10px; } } .module-conversation-header { position: relative; padding: 0px $session-margin-lg 0px $session-margin-sm; } .title-wrapper { position: relative; } .hidden { display: none; visibility: hidden; } .session-button div[role='button'] { cursor: pointer; } .Toastify__toast { background: var(--color-cell-background); color: var(--color-text); .Toastify__close-button { color: subtle(var(--color-text)); } @mixin set-toast-theme($color) { border-left: 4px solid $color; } &--success { @include set-toast-theme($session-color-success); } &--info { @include set-toast-theme($session-color-info); } &--warning { @include set-toast-theme($session-color-warning-alt); } &--error { @include set-toast-theme($session-color-error); } .Toastify__progress-bar { background-color: rgba(var(--color-text), 0.1); } } .session-modal { animation: fadein $session-transition-duration; z-index: 150; min-width: 300px; box-sizing: border-box; max-height: 70vh; max-width: calc(min(70vw, 800px)); font-family: $session-font-default; background-color: var(--color-modal-background); color: var(--color-text); border: var(--border-session); box-shadow: var(--color-session-shadow); overflow: hidden; display: flex; flex-direction: column; &__header { display: flex; flex-direction: row; justify-content: space-between; align-items: center; padding: $session-margin-lg; font-family: $session-font-default; text-align: center; line-height: 18px; font-size: $session-font-md; font-weight: 700; &.reverse { flex-direction: row-reverse; .session-modal__header__close > div { float: right; } .session-modal__header__icons > div { float: left; padding-inline-start: 0px; padding-inline-end: 10px; } } &__icons, &__close { width: 60px; } &__icons { float: right; } &__close > div { float: left; padding: $session-margin-xs; margin: 0px; } &__icons > div { float: right; padding-inline-start: 10px; } } &__body { padding: 0px $session-margin-lg $session-margin-lg $session-margin-lg; font-family: $session-font-default; line-height: $session-font-md; font-size: $session-font-md; overflow-y: auto; overflow-x: hidden; .message { text-align: center; } .session-id-editable { width: 30vw; max-width: 700px; } } .group-member-list__selection { overflow-y: auto; } &__centered { display: flex; flex-direction: column; align-items: center; // to allow new lines white-space: pre-wrap; } &__button-group { display: flex; justify-content: flex-end; .session-button { margin: $session-margin-xs; } &__center { display: flex; justify-content: center; .session-button { margin: $session-margin-xs; } } } &__text-highlight { @include text-highlight($session-color-green); color: black; font-family: monospace; font-style: normal; font-size: $session-font-xs; } } .session-modal__body { display: flex; flex-direction: column; } .session-confirm { &-wrapper { .session-modal__body .session-modal__centered { margin: $session-margin-lg; text-align: center; } } &-main-message { font-size: $session-font-md; } &-sub-message { text-align: center; margin-top: 20px; } } .session-toggle { width: 51px; height: 31px; border: 1.5px solid #e5e5ea; border-radius: 16px; position: relative; cursor: pointer; background-color: rgba(0, 0, 0, 0); .knob { position: absolute; top: 0.5px; left: 0.5px; height: 27px; width: 27px; border-radius: 28px; background-color: $session-color-white; box-shadow: 0 0 3px 1px rgba(0, 0, 0, 0.05), 0 3px 1px 0 rgba(0, 0, 0, 0.05), 0 2px 2px 0 rgba(0, 0, 0, 0.1), 0 3px 3px 0 rgba(0, 0, 0, 0.05); transition: transform $session-transition-duration ease, background-color $session-transition-duration ease; } &.active { background-color: $session-color-green; border-color: $session-color-green; .knob { transform: translateX(20px); } } } .react-contexify { // be sure it is more than the one set for the More Informations screen of messages z-index: 30; min-width: 200px; box-shadow: 0 10px 16px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19) !important; background: var(--color-cell-background); .react-contexify__item { background: var(--color-cell-background); } .react-contexify__item:not(.react-contexify__item--disabled):hover > .react-contexify__item__content { background: var(--color-accent); color: var(--color-text-opposite); } .react-contexify__item__content { transition: $session-transition-duration; color: var(--color-text); } &.react-contexify__submenu { top: -28px !important; // height of an item element } .react-contexify__submenu-arrow { line-height: 16px; // center the arrow for submenu } } .session-dropdown { position: relative; width: 100%; &__label { cursor: pointer; display: flex; align-items: center; justify-content: space-between; height: 50px; padding: 0px $session-margin-md; font-size: $session-font-sm; color: var(--color-text); background: var(--color-cell-background); &:hover { background: var(--color-clickable-hovered); } } &__list-container { z-index: 99; display: block; position: absolute; top: 50px; left: 0px; right: 0px; list-style: none; padding: 0px; margin: 0px; max-height: 40vh; overflow-y: auto; } &__item { cursor: pointer; display: flex; align-items: center; justify-content: center; height: 35px; padding: 0 $session-margin-md; background: var(--color-cell-background); color: var(--color-text); font-size: 0.8rem; width: -webkit-fill-available; transition: $session-transition-duration; &:first-child { border-top: var(--border-session); } &:last-child { border-top: var(--border-session); } &:hover { background: var(--color-clickable-hovered); } .session-icon { margin-inline-start: 6px; } .item-content { margin-inline-start: 6px; } &.active, &:hover { background: var(--color-clickable-hovered); } &.danger { color: $session-color-danger; } } &:hover { background: var(--color-clickable-hovered); .session-icon { opacity: 1; } } } .image-upload-section { display: flex; align-items: center; justify-content: center; position: absolute; cursor: pointer; width: 80px; height: 80px; border-radius: 100%; background-color: rgba($session-color-black, 0.72); opacity: 0; transition: $session-transition-duration; &:after { content: 'Edit'; } &:hover { opacity: 1; } } .qr-image { display: flex; justify-content: center; background: white; padding: 0.5rem; svg { width: 135px; height: 135px; border-radius: 3px; padding: $session-margin-xs; background-color: $session-color-white; } } .conversation-loader { position: absolute; top: 50%; left: 50%; margin: -40px 0 0 -40px; & > div { display: block; } } .session-loader { display: inline-block; position: relative; width: 80px; height: 80px; flex-shrink: 0; div { position: absolute; top: 33px; width: 13px; height: 13px; border-radius: 50%; background: $session-color-green; animation-timing-function: cubic-bezier(0, 1, 1, 0); } div:nth-child(1) { left: 8px; animation: session-loader1 0.6s infinite; } div:nth-child(2) { left: 8px; animation: session-loader2 0.6s infinite; } div:nth-child(3) { left: 32px; animation: session-loader2 0.6s infinite; } div:nth-child(4) { left: 56px; animation: session-loader3 0.6s infinite; } @keyframes session-loader1 { 0% { transform: scale(0); } 100% { transform: scale(1); } } @keyframes session-loader3 { 0% { transform: scale(1); } 100% { transform: scale(0); } } @keyframes session-loader2 { 0% { transform: translate(0, 0); } 100% { transform: translate(24px, 0); } } } .session-settings { width: 100%; height: 100vh; display: flex; flex-direction: column; &-list { overflow-y: auto; overflow-x: hidden; } &-header { display: flex; flex-direction: row; justify-content: center; align-items: center; height: $main-view-header-height; background: var(--color-cell-background); &-title { line-height: $main-view-header-height; font-weight: bold; font-size: $session-font-lg; text-align: center; flex-grow: 1; } .session-button, .session-icon-button { margin-inline-end: $session-margin-lg; } } &-item { font-size: $session-font-md; padding: $session-margin-lg; margin-bottom: 20px; background: var(--color-cell-background); color: var(--color-text); border-bottom: var(--border-session); &.inline { display: flex; align-items: center; justify-content: space-between; } &__info { padding-inline-end: $session-margin-lg; } &__title { line-height: 1.7; font-size: $session-font-lg; font-weight: bold; } &__description { font-family: $session-font-default; font-size: $session-font-sm; font-weight: 100; max-width: 700px; @include session-color-subtle(var(--color-text)); } &__content { label { @include session-color-subtle(var(--color-text)); } } &__selection { .session-toggle { transition: $session-transition-duration; } } } &-view { flex-grow: 1; display: flex; flex-direction: column; justify-content: space-between; overflow: hidden; } &__version-info { display: flex; justify-content: space-between; padding: $session-margin-sm $session-margin-md; background: none; font-size: $session-font-xs; span { opacity: 0.4; transition: $session-transition-duration; &:hover { opacity: 1; } } } &__password-lock { display: flex; align-items: center; justify-content: center; flex-grow: 1; &-box { padding: 45px 60px; display: flex; flex-direction: column; align-items: center; max-width: 90%; width: 600px; background: var(--color-cell-background); color: var(--color-text); border: 1px solid $session-shade-8; border-radius: 5px; h3 { padding: 0px; margin-bottom: $session-margin-lg; } input { width: 100%; background: var(--color-input-background); color: var(--color-text); padding: $session-margin-xs $session-margin-md; margin-bottom: $session-margin-lg; outline: none; border: none; border-radius: 2px; text-align: center; font-size: $session-font-xl; letter-spacing: 5px; font-family: $session-font-default; } } } } #qr svg, .qr-image svg { width: $session-modal-size-sm; height: $session-modal-size-sm; padding: $session-margin-xs; background-color: $session-color-white; border-radius: 3px; } .seed-dialog { &__description { max-width: $session-modal-size-lg; } } .messages li { transition: $session-transition-duration !important; } .session-radio-group fieldset { border: none; margin-inline-start: $session-margin-sm; margin-top: $session-margin-sm; } .session-radio-group fieldset { input[type='radio'] { opacity: 0; position: absolute; cursor: pointer; } label { margin-inline-end: 1em; cursor: pointer; } label:before { content: ''; display: inline-block; width: 0.5em; height: 0.5em; margin-inline-end: 0.8em; border-radius: 100%; vertical-align: 0px; border: 2px solid rgba($session-color-white, 0.6); padding: 0.2em; background: none; border-color: var(--color-accent); background-clip: content-box; transition: $session-transition-duration; } input:hover + label:before { background: var(--color-accent); } input:checked + label:before { background: var(--color-accent); } } .session-id-editable { padding: $session-margin-lg; textarea { width: 30vh; } } .session-id-editable textarea { resize: none; overflow: hidden; user-select: all; overflow-y: auto; padding: 0px 5px 20px 5px; &.session-id-editable-textarea:placeholder-shown { padding: 10px 5px 0px 5px; } &.group-id-editable-textarea { margin-top: 15px; white-space: nowrap; } } input { user-select: text; } .dark-theme .invite-friends-dialog .member-item { height: 64px; background-color: $session-shade-4; border: var(--border-session); display: flex; align-items: center; transition: $session-transition-duration; .module-avatar, .name-part { margin: auto $session-margin-md; } .check-mark { margin: auto $session-margin-xs; } .name-part { flex-grow: 1; } } .contact-selection-list { width: 20vw; } .session-confirm-wrapper { position: absolute; height: 100%; width: 100%; display: flex; .session-modal { margin: auto auto; } } .onion__description { min-width: 100%; width: 0; } .onion__node-list { display: flex; flex-direction: column; margin: $session-margin-sm; align-items: center; min-width: 10vw; position: relative; .onion__node { display: flex; flex-grow: 1; align-items: center; margin: $session-margin-xs; &:nth-child(2) { margin-top: 0; } &:nth-last-child(2) { margin-bottom: 0; } .session-icon-button { margin: $session-margin-sm !important; } } .onion__node-list-lights { position: relative; } .onion__node__country { margin: $session-margin-sm; min-width: 150px; } .onion__growing-icon { flex-grow: 1; display: flex; align-items: center; } .onion__vertical-line { background: $onionPathLineColor; position: absolute; height: calc(100% - 2 * 15px); margin: 15px calc(100% / 2 - 1px); width: 1px; } } .session-nickname-wrapper { position: absolute; height: 100%; width: 100%; display: flex; .session-modal { margin: auto auto; } } .messages-container { .session-icon-button { display: flex; justify-content: center; align-items: center; height: 40px; width: 40px; border-radius: 50%; opacity: 1; background-color: var(--color-cell-background); box-shadow: var(--color-session-shadow); svg path { transition: $session-transition-duration; opacity: 0.6; fill: var(--color-text); } &:hover svg path { opacity: 1; } } } .group-member-list { &__container { padding: 2px 0px; width: 100%; max-height: 400px; overflow-y: auto; border: var(--border-session); } &__selection { height: 100%; display: flex; flex-direction: column; } &__no-contacts { font-family: $session-font-mono; background: var(--color-cell-background); text-align: center; padding: 20px; } } .create-group-name-input { display: flex; justify-content: center; width: 100%; .session-id-editable { height: 60px !important; textarea { padding-bottom: 0px !important; } &-disabled { border: 1px solid $session-color-dark-grey !important; } } } .session-member-item { cursor: pointer; font-family: $session-font-default; padding: 0px $session-margin-sm; height: 50px; display: flex; justify-content: space-between; transition: $session-transition-duration; background: var(--color-cell-background); &:not(:last-child) { border-bottom: var(--border-session); } &:hover { background-color: var(--color-clickable-hovered); } &.selected { background-color: var(--color-conversation-item-selected) !important; } &.zombie { opacity: 0.5; } &__checkmark { opacity: 0; transition: $session-transition-duration; &.selected { opacity: 1; svg { fill: var(--color-accent) !important; } } } &__info, &__checkmark { display: flex; align-items: center; } &__name { font-weight: bold; margin-inline-start: $session-margin-md; margin-inline-end: $session-margin-md; } &__pubkey { margin-inline-start: 5px; opacity: 0.8; } &__avatar > div { margin-bottom: 0px !important; } } .module-message-detail { .module-message { pointer-events: none; } } .module-message__text { white-space: pre-wrap; } .session-info-box { display: flex; flex-direction: column; align-items: center; background-color: $session-shade-6; padding: $session-margin-sm $session-margin-lg; border-radius: 4px; } .speedButton { padding: $session-margin-xs; opacity: 0.6; transition: none; &:hover { opacity: 1; } .session-button { transition: none; &:hover { color: var(--color-text-opposite); } } }