JSFiddle - React, Tailwind, and code Playground

by ChangJoo Park

HTML

<div class="chat">
  <div class="messages">
    <div class="message received">
      <div class="message-text">Hi, how are you?</div>
    </div>
    <div class="message sent">
      <div class="message-text">I'm good, thanks for asking.</div>
    </div>
    <div class="message received">
      <div class="message-text">That's great to hear!</div>
    </div>
    <div class="message sent">
      <div class="message-text">Yeah, how about you?</div>
    </div>
    <div class="message received">
      <div class="message-text">I'm doing well, thanks.</div>
    </div>
  </div>
  <form class="message-form">
    <input type="text" placeholder="Type your message here...">
    <button type="submit">Send</button>
  </form>
</div>

CSS

.chat {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.messages {
  flex: 1;
  overflow-y: scroll;
  padding: 10px;
}

.message {
  display: flex;
  align-items: flex-end;
  margin-bottom: 10px;
}

.received .message-text {
  background-color: #f1f0f0;
  color: #333;
  border-radius: 10px;
  padding: 10px;
  max-width: 70%;
}

.sent .message-text {
  background-color: #2979FF;
  color: #fff;
  border-radius: 10px;
  padding: 10px;
  max-width: 70%;
  align-self: flex-end;
}

.message-form {
  display: flex;
  align-items: center;
  background-color: #f1f0f0;
  padding: 10px;
}

.message-form input {
  flex: 1;
  border: none;
  padding: 10px;
  margin-right: 10px;
  border-radius: 20px;
}

.message-form button {
  border: none;
  background-color: #2979FF;
  color: #fff;
  padding: 10px 20px;
  border-radius: 20px;
  cursor: pointer;
}