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;
}