SCSS

by Victor

HTML

<div class="messenger">
  <div class="messenger__topbar">
    <div class="messenger__topbar__title">To: Armilla</div>
    <div class="messenger__topbar__close">X</div>
  </div>
  <div class="messenger__display">
    <div class="messenger__display__message messenger__display__message--from">
      <div class="messenger__display__message__content">
        <!-- <div class="messenger__display__message__content__name">Name</div> -->
        <div class="messenger__display__message__content__text">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Magnam rem explicabo consequuntur! Ullam dolorum aperiam totam mollitia, deleniti maiores, molestiae assumenda recusandae ratione illum alias odio officiis unde laboriosam omnis!</div>
      </div>
      <div class="messenger__display__message__avatar"><img src="https://placeimg.com/500/500/nature" alt=""></div>
    </div>
     <div class="messenger__display__message messenger__display__message--to">
      <div class="messenger__display__message__content">
        <!-- <div class="messenger__display__message__content__name">Name</div> -->
        <div class="messenger__display__message__content__text">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Magnam rem explicabo consequuntur! Ullam dolorum aperiam totam mollitia, deleniti maiores, molestiae assumenda recusandae ratione illum alias odio officiis unde laboriosam omnis!</div>
      </div>
      <div class="messenger__display__message__avatar"><img src="https://placeimg.com/500/500/nature" alt=""></div>
    </div>
  </div>
  <div class="messenger__editor">
    <div class="messenger__editor__input">
      <input type="text" />
    </div>
    <div class="messenger__editor__submit">Send</div>
  </div>
</div>

SCSS

$spacing: 1rem;

* {
  /* box-shadow: inset 0 0 0 1px red; */
  box-sizing: border-box;
}

.messenger {
  font-family: sans-serif;
  border: 1px solid #f4f4f4;
  border-radius: 4px;
  overflow: hidden;
  
  &__topbar {
    padding: $spacing/2;
    display: flex;
    color: white;
    background:blue;
    margin-bottom: 0.75rem;
    
    &__title {
      flex: 1;
      padding: 0.25rem;
      font-size: 12px;
    }
    &__close {
      flex: 0;
      padding: 0.25rem;
      font-size: 12px;
    }
  }
  &__display {
    
     padding: $spacing/2 $spacing/2 0;
     
     &__message {
       padding: 0 0 $spacing*1.5;
       
       display: flex;
       justify-content: flex-end;
       
       &__content {
         
         max-width: 75%;
       
         &__name { 
         
           font-size: 1rem;
           padding:0 0.5rem;
           min-height: 40px;
           line-height: 40px;
           /* vertical-align: middle; */
           text-align: right;
         }
         &__text {
           padding: 1rem;
           border-radius: 4px;
           /* background: #999; */
           background: #f4f4f4;
           font-size: 0.88rem;
           line-height: 1.33;
           margin-right: 1rem;
           position: relative;
           
           &:before {
             content: '';
              width: 0; 
  height: 0; 
  border-top: 10px solid transparent;
  border-bottom: 10px solid transparent;
  
  border-left: 10px solid #f4f4f4;
  position: absolute;
  top: 10px;
  left: 100%;
           }
           
           &:after {
             content: '3:34pm';
             position: absolute;
             top: 100%;
             right: 0;
             /* padding: 0.25rem; */
             font-size: 10px;
             margin-top: 5px;
           }
         
         }
       }
       &__avatar {
         
         img {
           
           width: 40px;
           border-radius: 40px;
         }
         
       }
       
       &--from {
        ...