@font-face { font-family: 'Roboto'; src: url('/fonts/Roboto-Regular.ttf') format('truetype'); } body, input { font-family: $roboto; } body { margin: 0; } .title-bar { position: fixed; top: 0; width: 100%; z-index: 1; height: 36px; line-height: 24px; background: $blue; box-shadow: 0 -4px 3px 4px rgba(darken($blue, 30%), 0.8); button { height: 36px; line-height: 36px; float: right; margin-right: 8px; padding: 0; border: 0; outline: 0; color: white; background: transparent; } } .fab { z-index: 1; position: fixed; right: 16px; bottom: 22px; height: 60px; width: 60px; border: 0; border-radius: (60px / 2); outline: 0; font: 300 36px $roboto; color: white; background: $blue; box-shadow: 0 8px 8px -8px rgba(darken($blue, 50%), 0.8); transition: box-shadow 0.33s, transform 0.33s, background 0.33s; &:hover { background: darken($blue, 3%); box-shadow: 0 8px 18px -8px rgba(darken($blue, 50%), 0.9); transform: translate3d(0, -1px, 0); } } button { cursor: pointer; } .timestamp { font-size: 12px; } .entry.delivered .timestamp::after { margin-left: 4px; content: "✓"; } .message-list { margin: 36px + 16px 0; padding: 0; list-style: none; font-size: 16px; font-weight: 300; li { margin: 0 8px 16px; &::after { visibility: hidden; display: block; font-size: 0; content: " "; clear: both; height: 0; } } p { margin: 0; } .bubble { position: relative; left: -2px; display: inline-block; vertical-align: top; max-width: calc(100% - 54px - 2 * 12px); padding: 9px 12px; border-radius: 4px; box-shadow: 0 3px 3px -4px black; &::before, &::after { content: ''; position: absolute; height: 0; width: 0; } &::before { top: (54px / 2) - 8px; border-top: 8px solid transparent; border-bottom: 8px solid transparent; } &::after { top: (54px / 2) - 6px; border-top: 6px solid transparent; border-bottom: 6px solid transparent; } } .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 { img, .bubble { float: right; } .bubble { clear: left; color: white; background: $blue; .timestamp { color: $blue_l; } &::before { right: -10px; border-left: 10px solid white; } &::after { right: -8px; border-left: 8px solid $blue; } } } .attachments img { max-width: 100%; } img.avatar { height: 54px; width: 54px; // delete next 2 lines box-sizing: border-box; border: (54px / 2) $grey_l solid; border-radius: (54px / 2); } .timestamp { margin-top: 3px; float: right; } } .bottom-bar { position: fixed; bottom: 0; height: 36px; width: 100%; border-top: 1px solid $grey_l; background: white; button, input { color: $grey_d; } button { position: absolute; top: 0; height: 100%; width: 36px; padding: 0; border: 0; outline: 0; font-size: 24px; background: transparent; } .attachments { position: relative; float: left; height: 100%; width: 36px; margin-right: 10px; .paperclip { width: 100%; height: 100%; background: url('/images/paperclip.png') no-repeat; background-size: 90%; background-position: center 6px; } input[type=file] { display: none; position: absolute; width: 100%; height: 100%; opacity: 0; top: 0; left: 0; cursor: pointer; z-index: 1; } img.preview { max-width: 100%; } .close { font-family: sans-serif; color: white; position: absolute; top: -10px; left: 20px; text-align: center; cursor: default; border-radius: 50%; width: 20px; height: 20px; padding: 0px; background: #666; color: #fff; text-align: center; } } .send-btn { float: right; height: 100%; width: 36px; border: none; outline: none; background: url('/images/send.png') no-repeat; background-size: 90%; background-position: center 1px; cursor: pointer; &::before { content: '+'; } } form, input { height: 100%; } input[type=textarea] { display: block; height: 100%; border: 0; outline: 0; z-index: 5; } }