JSFiddle - React, Tailwind, and code Playground

HTML

<button onclick="loginModal()">點我登入帳號</button>
<hr>
<button onclick="postModal()">點我新增貼文</button>

<div class="modal" id="login-modal">
  <div class="modal-content">
    <div>帳號:<input type="text"></div>
    <div>密碼:<input type="password"></div>
    <hr>
    <button class="btn-close">關閉</button>
  </div>  
</div>

<div class="modal" id="post-modal">
  <div class="modal-content">
    <div>標題:<input type="text"></div>
    <div>內文:<textarea></textarea></div>
    <hr>
    <button class="btn-close">關閉</button>
  </div> 
</div>

SCSS

* {
  box-sizing: border-box;  
}

button {
  font-size: 18px;
  border: none;
  background-color: #aaa;
  color: #fff;
  padding: 5px 10px;
  font-weight: bold;
  border-radius: 8px;
  cursor: pointer;
  
  &:hover {
    color: #000;
  }
}

.modal {
  display: none;
  inset: 0;
  position: fixed;
  background-color: rgba(0, 0, 0, 0.5);
  
  &-content{
    padding: 10px;
    border-radius: 8px;
    background-color: #fff;
    width: fit-content;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
  }
  
  &.visible {
    display: block;
  }
}

JavaScript

const login = document.querySelector('#login-modal');
const post = document.querySelector('#post-modal');
const closeButtons = document.querySelectorAll('.btn-close')

function loginModal() {
	modalInit();
	login.classList.add('visible');
}
function postModal() {
	modalInit();
	post.classList.add('visible');
}

function modalInit() {
	login.classList.remove('visible');
  post.classList.remove('visible');
}

function removeModal() {
	event.target.closest('.modal').classList.remove('visible');
}

for(let closeButton of closeButtons) {
	closeButton.onclick = removeModal;
}