Cable-Desktop/stylesheets/_conversation.scss
lilia d6a4e6e496 Restore two column layout
Establishes basic functionality for viewing conversations in two column
mode, including message area and message list resizing, and maintaining
scroll position.

Various subviews need to be retooled but are more or less still
functional, i.e., new message, message detail, key verification, etc...
2015-08-25 17:01:22 -07:00

429 lines
6.2 KiB
SCSS

.conversation {
.file-input .close {
top: -10px;
}
.conversation-title {
display: block;
line-height: $header-height;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
#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;
}
.group-member-list {
height: 100%;
#header {
position: inherit;
}
.container {
height: calc(100% - #{$header-height});
}
}
.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 {
-webkit-user-select: text;
a {
word-break: break-all
}
}
p {
margin: 0;
}
}
.outgoing .bubble {
opacity: 0.7;
}
.outgoing.sent .bubble {
opacity: 1.0;
}
.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;
height: 36px;
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;
resize: none;
}
}
.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;
}
}