* { box-sizing: border-box; } html { height: 100%; border: solid 1px #ccc; } body { position: relative; height: 100%; width: 100%; margin: 0; font-family: $roboto; font-size: 14px; } .clearfix:before, .clearfix:after { display: table; content: " "; } .clearfix:after { clear: both; } .hide { display: none; } #header { position: fixed; top: 1px; width: calc(100% - 2px); z-index: 1; height: $header-height; line-height: 24px; color: #f2f2f2; box-shadow: 0 -4px 3px 4px rgba(darken($header-color, 30%), 0.8); background-color: $header-color; -webkit-app-region: drag; button { -webkit-app-region: no-drag; color: inherit; background-color: $blue; &:hover { background-color: rgba(darken($blue, 10%), 0.8); } } } .window-controls { float: right; } .title-text { height: $header-height; line-height: $header-height; font-family: $roboto-light; } .conversation-header button, .title-bar button { width: $header-height; height: $header-height; line-height: $header-height; padding: 0; border: 0; outline: 0; } button { cursor: pointer; } button.back { float: left; background: $header-color url('/images/back.png') no-repeat center center; & + .title-text { text-indent: -$header-height; } } .menu { position: relative; float: left; height: 36px; padding-right: 8px; .hamburger { width: $header-height; height: $header-height; background: url('/images/menu.png') no-repeat center; } .menu-list { display: none; position: absolute; color: $grey_d; z-index: 1; top: 100%; left: 0; margin: 0; padding: 0; border: solid 1px $blue; background-color: white; box-shadow: 0 4px 3px 0px rgba(darken($blue, 30%), 0.8); li { display: block; white-space: nowrap; a { cursor: pointer; display: block; padding: 5px 15px 5px 10px; &:hover { background-color: $grey_l; } } } } } .file-input { position: relative; margin-right: 10px; cursor: pointer; .paperclip { width: 36px; height: 100%; background: url('/images/paperclip.png') no-repeat center center; background-size: 90%; margin-top: 4px; } input[type=file] { display: none; position: absolute; width: 100%; height: 100%; opacity: 0; top: 0; left: 0; cursor: pointer; z-index: 1; } .close { font-family: sans-serif; color: white; position: absolute; top: 0; right: -8px; cursor: default; border-radius: 50%; width: 20px; height: 20px; padding: 0px; background: #666; color: #fff; text-align: center; } } img.emoji { height: 1em; width: 1em; margin: 0 .05em 0 .1em; vertical-align: -0.1em; } $avatar-size: 44px; .avatar { display: inline-block; height: $avatar-size; width: $avatar-size; background: $grey_l url('/images/default.png') no-repeat center; border-radius: 50%; background-size: cover; vertical-align: middle; text-align: center; line-height: $avatar-size; overflow-x: hidden; text-overflow: ellipsis; color: white; } .new-group-update-form { background: white; .group-avatar { float: left; } .group-default { position: relative; display: inline-block; width: 100%; height: 100%; border-radius: 50%; background: $grey_l url('/images/group_default.png') no-repeat center; } .file-input .thumbnail, .thumbnail .avatar, img { height: 54px; width: 54px; border-radius: (54px / 2); } .thumbnail:after { content: ''; position: absolute; height: 0; width: 0; bottom: 0; right: 0; border-bottom: 10px solid $grey; border-left: 10px solid transparent; } input.name { padding: 0.5em; border: solid 1px #ccc; border-width: 0 0 1px 0; width: calc(100% - 64px); } .results { width: calc(100% - 20px); margin: 0 0 0 20px; .contact { z-index: 10; } } } .group-member-list, .new-group-update-form { .members .contact { box-shadow: none; border-bottom: 1px solid #eee; .last-message, .last-timestamp { display: none; } &:hover { background: white; cursor: auto; } } } .conversation-header .check { float: right; background: url('/images/check.png') no-repeat center center; } .contact { position: relative; padding: 12px; background: white; cursor: pointer; transition: background 0.2s; white-space: nowrap; overflow: hidden; box-shadow: 0 1px 3px rgba(#aaa, 0.8); &:hover { background: #f8f8f8; } &:last-child::after { display: none; } .contact-details { $left-margin: 8px; vertical-align: top; display: inline-block; margin: 4px 0 0 $left-margin; width: calc(100% - #{$avatar-size} - #{$left-margin}); p { overflow-x: hidden; text-overflow: ellipsis; } } .contact-name { margin: 0; font-size: 1em; font-weight: 400; text-overflow: ellipsis; overflow-x: hidden; } } .recipients-input { .recipients-container { background-color: white; padding: 2px; border-bottom: 1px solid #f2f2f2; line-height: 24px; } .recipient { display: inline-block; margin: 0 2px 2px 0; padding: 0 5px; border-radius: 10px; background-color: $blue; color: white; &.error { background-color: #f00; } .remove { margin-left: 5px; padding: 0 2px; } } .contact { .number { display: inline-block; } .last-message, .last-timestamp { display: none; } .number { color: $grey; font-size: small; } } } .attachment-preview { width: 100%; height: 100%; background: white; img { width: 100%; } } // avatar colors .avatar.colorgray { background-color: #999999 } .avatar.color1 { background-color: #EF5350 } // red .avatar.color2 { background-color: #EC407A } // pink .avatar.color3 { background-color: #AB47BC } // purple .avatar.color4 { background-color: #7E57C2 } // deep purple .avatar.color5 { background-color: #5C6BC0 } // indigo .avatar.color6 { background-color: #2196F3 } // blue .avatar.color7 { background-color: #03A9F4 } // light blue .avatar.color8 { background-color: #00BCD4 } // cyan .avatar.color9 { background-color: #009688 } // teal .avatar.color10 { background-color: #4CAF50 } // green .avatar.color11 { background-color: #7CB342 } // light green .avatar.color12 { background-color: #FF9800 } // orange .avatar.color13 { background-color: #FF5722 } // deep orange .avatar.color14 { background-color: #FFB300 } // amber .avatar.color15 { background-color: #607D8B } // blue grey .loading { position: relative; &::after { display: block; margin: $header-height auto; content: " "; height: $header-height; width: $header-height; border-radius: 2 * $header-height; border: solid 3px; border-color: $blue_l $blue_l $grey_l $grey_l; animation: rotate 1s linear infinite; } @keyframes rotate { to { transform: rotate(360deg); } } }