main { display: flex; height: 100vh; flex-direction: column; position: relative; } // TODO: добавлять когда открыт чат body { overflow: hidden; } .messages { top: 74px; height: calc(100% - 74px); left: 0; right: 0; padding-left: 42px; padding-right: 26px; background: #fff; display: flex; flex: 1; flex-direction: column; position: fixed; z-index: 9; > .row { flex: 1; } .author__name { font-weight: 500; } .author { position: relative; } } // список диалогов и юзеров .chat-list { display: flex; flex-direction: column; padding: 10px; height: calc(100% - 10px); $fade-height: 10px; .holder { overflow: hidden; flex: 1; position: relative; padding: $fade-height 0; &::before, &::after { content: ''; position: absolute; width: 100%; right: 10px; z-index: 1; height: $fade-height; } &::before { top: 0; background: linear-gradient(white, transparent $fade-height); } &::after { bottom: 0; background: linear-gradient(transparent, white $fade-height); } .dialogs { scroll-behavior: smooth; display: flex; position: absolute; top: 0; bottom: 0; left: 0; right: 0; height: 100%; overflow: auto; flex-direction: column; box-sizing: border-box; } } } .chat-list__search, .interlocutor { border-bottom: 3px solid #141414; padding: 1em 0; } // табы выбора списка .chat-list__types { @include font-size(1.7rem); margin: 16px 0; ul { display: flex; flex-wrap: wrap; list-style: none; margin: 0; padding: 0; } li { margin-right: 1em; } strong { border-bottom: 3px solid; font-weight: normal; } } .interlocutor { height: 56px; box-sizing: content-box; .circlewrap { height: 56px; max-width: 56px; width: 56px; } .author { margin-bottom: 0; &::before { left: 40px !important; height: 8px !important; width: 8px !important; } } .author__name { @include font-size(1.7rem); margin: 0.4em 0 0; } .author__details, .user-status { margin-left: 6.8rem; } .user-status { @include font-size(1.2rem); color: #ccc; } } .conversation { display: flex; flex-direction: column; } .conversation__messages { flex: 1; overflow: auto; position: relative; } .conversation__message-form { border-top: 1px solid #141414; display: flex; flex-direction: row; align-items: center; padding: 1em 1em 1em 0; textarea { @include font-size(2rem); font-family: inherit; height: 4.4em; width: 100%; padding: 1em; margin-bottom: 0; min-height: unset; } button { border: none; cursor: pointer; padding: 0 0 0 0.4em; text-align: center; width: 5.6rem; &:hover { .icon { opacity: 0.5; } } .icon { height: 50%; margin: 0 auto; opacity: 0.2; transition: opacity 0.3s; width: 50%; } } } .conversation__messages-container { left: 0; height: 100%; overflow: auto; position: absolute; top: 0; width: 100%; scroll-behavior: smooth; } .conversation__date { position: relative; text-align: center; &::before { background: #141414; content: ''; height: 1px; left: 0; position: absolute; top: 0.8em; width: 100%; z-index: -1; } time { background: #fff; @include font-size(1.5rem); color: #9fa1a7; padding: 0 0.5em; } } .conversation__message-container { display: flex; margin: 3.2rem 0; } .conversation__message { font-size: 14px; max-width: 60%; border-radius: 16px; padding: 12px 16px; position: relative; &:hover { .conversation__context-popup-control { opacity: 1; } } } .conversation__message-details { color: #9fa1a7; @include font-size(1rem); left: 0; padding-top: 0.2em; position: absolute; top: 100%; } .conversation__message-container--other { .conversation__message { background: #f6f6f6; border-right: 0.3em solid #fff; } .conversation__context-popup-control { left: 100%; margin-left: 0.3em; } } .conversation__message-container--own { justify-content: flex-end; .conversation__message { background: #000; border-left: 0.3em solid #fff; color: #fff; } .conversation__context-popup-control { margin-right: 0.3em; right: 100%; } } .conversation__context-popup-control { background: #f6f6f6; border: none; cursor: pointer; height: 2.4rem; margin-top: -1.2rem; opacity: 0; top: 50%; position: absolute; transition: opacity 0.3s; width: 2.4rem; &:hover { .icon { opacity: 0.5; } } .icon { opacity: 0.3; transition: opacity 0.2s; } img { vertical-align: middle; } }