JSFiddle - React, Tailwind, and code Playground

HTML

<body>
   <h1>To Do List</h1>
   
   <div id="inputfield"><input type="text" id="input"><button onclick="add()">新增</button></div>
   <div id="todo">
      <ul id="todoul">

      </ul>
   </div>
</body>

CSS

* {
  list-style: none;
  margin: 0;

}

h1 {
  border: 5px rgb(255, 134, 48) solid;
  background-color: rgba(230, 153, 65, 0.391);
  border-top: none;
  border-right: none;
  border-radius: 20px;
  padding: 1.5rem;
  margin: 1.5rem;
  width: 40%;
  min-width: 170px;
}

#inputfield {
  width: 40%;
  margin: 0 1.5rem;
  padding: 10px;
  display: flex;
  justify-content: center;
}
#inputfield input {
  height: 30px;
  width: 230px;
  border-radius: 5px;
  margin-right: 10px;
  font-size: 16px;
  border: 1px dashed rgb(255, 134, 48);
}
#inputfield button {
  width: 80px;
  min-width: 50px;
  font-size: 15px;
  border-radius: 10px;
  background-color: rgba(230, 153, 65, 0.391);
  border: 2px dashed rgb(255, 134, 48);
  transition: all 0.2s ease;
}
#inputfield button:hover {
  background-color: rgba(240, 183, 117, 0.753);
  border: 2px dashed rgb(255, 134, 48);
  cursor: pointer;
}

li {
  width: 40%;
  min-width: 170px;
  margin: 8px 0;
  padding: 15px;
  font-size: 16px;
  border-bottom: 2px dashed rgb(255, 134, 48);
}
li input {
  margin: 0 0.5rem;
  cursor: pointer;
}

JavaScript

function add(){
   let todoText = document.getElementById('input').value; //取得input事項的值
   let ul = document.getElementById('todoul'); //選取
   let list = document.createElement('li');  //新增一個li
   let span1 = document.createElement('span'); //新增等等要放勾勾的span
   let span2 = document.createElement('span'); //新增等等要放事項的span

   span2.textContent = todoText;//剛剛取得的input事項放進去
   
   let checkbox = document.createElement('input');  //新增一個input
   checkbox.type = "checkbox"; //input的種類是勾勾

   //一一把element放到正確的位置
   ul.append(list);
   list.append(span1,span2);
   span1.append(checkbox);
}