.conversation { .file-input .close { top: -10px; } .conversation-title { line-height: $header-height; } #header { position: inherit; } .discussion-container { height: calc(100% - 2 * #{$header-height}); } } .conversation + .new-group-update-form, .conversation, .message-list, .message-detail, .key-verification { height: 100%; } .key-verification { padding: $header-height 0 0; .container { height: 100%; overflow: auto; } p { padding: 1em; } .key { font-family: monospace; padding: 0 1em; } } .message-detail { padding: $header-height 0 0; background: $grey_l; .container { height: 100%; overflow: auto; } .message-container { background: white; padding: 1em 0; .sender { display: none; } } .info { padding: 1em; .label { text-align: right; font-weight: bold; padding-right: 1em; } } .conflict { border: none; border-radius: 5px; color: white; padding: 0.5em; font-weight: bold; background: #d00; &:before { content: ''; display: inline-block; vertical-align: middle; width: 18px; height: 18px; background: url('/images/error.png') no-repeat center center; background-size: 100%; } span { vertical-align: middle; padding-left: 5px; } } } .group-update { font-size: smaller; } .new-group-update-form { .container { height: 100%; padding-top: $header-height; } .scrollable { padding: 0.5em; } } .private .sender, .outgoing .sender { display: none; } .sender { font-size: smaller; opacity: 0.8; } .timestamp { font-size: smaller; } .entry.delivered .checkmark { display: inline; } .message-list { margin: 0; padding: 1em 0; overflow-y: auto; .timestamp { cursor: pointer; &:hover { text-decoration: underline; } } } .message-detail, .message-list { list-style: none; li { margin: 0 8px 16px; &::after { visibility: hidden; display: block; font-size: 0; content: " "; clear: both; height: 0; } } .bubble { position: relative; left: -2px; display: inline-block; vertical-align: top; max-width: calc(100% - 20px - 2 * 12px); padding: 9px 12px; border-radius: 4px; box-shadow: 0 3px 3px -4px black; word-wrap: break-word; &::before, &::after { content: ''; position: absolute; height: 0; width: 0; } &::before { top: (34px / 2) - 8px; border-top: 8px solid transparent; border-bottom: 8px solid transparent; } &::after { top: (34px / 2) - 6px; border-top: 6px solid transparent; border-bottom: 6px solid transparent; } .content a { word-break: break-all } p { margin: 0; } } .outgoing.pending .bubble { opacity: 0.7; } .incoming { .bubble { color: $grey_d; background: $grey_l; &::before { left: -10px; border-right: 10px solid white; } &::after { left: -8px; border-right: 8px solid $grey_l; } } } .outgoing { .avatar, .bubble { float: right; } .bubble { clear: left; color: white; background: $blue; .meta { color: $blue_l; } &::before { right: -10px; border-left: 10px solid white; } &::after { right: -8px; border-left: 8px solid $blue; } } } .control { .bubble { .content { font-style: italic; } &::before, &::after { display: none; } } } .attachments { img, audio, video { max-width: 100%; } video { background: black; } } .outgoing .avatar { display: none; } .avatar { height: 36px; width: 36px; line-height: 36px; } .meta { margin-top: 3px; float: right; } .end-session { font: small; font-style: italic; opacity: 0.8; } .error { font-style: italic; } .key-conflict { padding: 15px 10px; button { margin-top: 5px; } } } .key-conflict-dialogue { position: absolute; top: 0; left: 0; height: 100%; width: 100%; padding: $header-height; .content { padding: 1em; background: white; color: black; box-shadow: 0 0 5px 0 black; } .verify { color: $blue; text-decoration: underline; cursor: pointer; } } .bottom-bar { $button-width: 36px; position: fixed; bottom: 1; // offset 1 for window frame. height: 36px; width: calc(100% - 2px); border-top: 1px solid $grey_l; background: white; button, input, textarea { color: $grey_d; } button { position: absolute; top: 0; height: 100%; width: $button-width; padding: 0; border: 0; outline: 0; font-size: 24px; background: transparent; } .attachments { float: left; height: 100%; } .send-btn { float: right; height: 100%; width: 36px; border: none; outline: none; background: url('/images/send.png') no-repeat; background-size: 75%; background-position: center center; cursor: pointer; &::before { content: '+'; } } form, input, textarea { height: 100%; } .send-message { display: block; width: calc(100% - 2 * #{$button-width} - 20px); min-height: $header-height - 1px; max-height: 100px; padding: 10px; border: 0; outline: 0; z-index: 5; } } .toast { position: absolute; bottom: 0; margin: 0 2em 3em; padding: 0.5em 1.5em; background: rgba(0, 0, 0, 0.75); color: white; box-shadow: 0 0 5px 0 black; border-radius: 20px; font-size: small; } .confirmation-dialog { position: absolute; top: $header-height; padding: 1em; background: white; border: solid 2px $blue; .message { text-align: center; } button { float: right; margin-left: 10px; } }