JSFiddle - React, Tailwind, and code Playground
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<script src="https://kit.fontawesome.com/1e10f2d5f9.js" crossorigin="anonymous"></script>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css">
<link rel="stylesheet" href="style.css">
<title>ToDoList App</title>
</head>
<body>
<div class="top-bar">
<div class="top-bar-logo"><i class="fas fa-clipboard-list"></i></div>
<div class="top-bar-title">ToDo App</div>
</div>
<div class="main-container">
<div class="left-side">
<div class="side-bar-title">New Project</div>
<div class="project-input">
<form id='project-form'>
<div class="form-group" >
<label for="title">Title</label>
<input type="text" class="form-control" id="title" placeholder="">
</div>
<div class="form-group">
<label for="priority">Priority</label>
<select class="form-control" id="priority">
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
</select>
</div>
<div class="form-group">
<label for="due-date">Due Date</label>
<input type="date" class="form-control" id="due-date">
</div>
<div class="form-group">
<label for="description">Description</label>
<textarea class="form-control" id="description" rows="3"></textarea>
</div>
<button...
CSS
.top-bar{
background-color: white;
width: 100%;
height: 100px;
font-size: 40px;
display: flex;
padding-left: 30px;
justify-content: center;
align-items: center;
}
.top-bar-title{
padding-left: 15px;
}
.main-container{
background-color: #D9E6EB;
width: 100%;
min-height: 100vh;
display: grid;
grid-template-columns: 20% 80%;
}
.left-side{
/* border: 2px black solid; */
display: flex;
flex-direction: column;
align-items: center;
background-color: #fff;
}
.side-bar-title{
text-transform: uppercase;
font-weight: 600;
font-size: 1.4rem;
letter-spacing: 1px;
background-color: #D9E6EB;
color:black;
width: 100%;
height: 150px;
text-align: center;
line-height: 150px;
display: flex;
flex-direction: column;
}
.project-input{
margin-top: 20px;
}
.right-side{
display: flex;
margin-top: 100px;
margin-left: 50px;
margin-right: 50px;
flex-direction: column;
}
.activity-card{
width: 1000px;
}
table{
table-layout: fixed;
}
td{
word-wrap: break-word;
}
.check-button{
cursor: pointer;
}
.remove-button{
cursor: pointer;
}
JavaScript
// DOM consts
const formButton = document.querySelector('#submit-button')
const form = document.querySelector('#project-form')
const activityPage = document.querySelector('.right-side')
const remove = document.querySelector('.remove-button')
const check = document.querySelector('.check-button');
// Table Acitvity class Constructor
class Activity {
constructor(title, priority, description, date){
this.title = title;
this.priority = priority;
this.description = description;
this.date = date;
}
}
// Page UI functions
const PageUI = (function(){
const addActivity = (trigger) =>{
trigger.addEventListener('submit', (e)=>{
e.preventDefault();
console.log('hello');
const titleData = document.querySelector('#title').value;
const priorityData = document.querySelector('#priority').value;
const descriptionData = document.querySelector('#description').value;
const dueDate = document.querySelector('#due-date').value;
let newActivity = new Activity(titleData, priorityData, descriptionData, dueDate)
let newDiv = document.createElement('div');
newDiv.classList.add('activity-card')
newDiv.innerHTML =
`
<table class="table table-dark">
<thead>
<tr>
<th scope="col">Title</th>
<th scope="col">Priority</th>
<th scope="col">Description</th>
<th scope="col">Date</th>
<th scope="col">Tasks</th>
<th scope="col">Completed</th>
<th scope="col">Remove</th>
</tr>
</thead>
...