DEV Community

Cover image for 👨‍💻 Daily Code 41 | 🟥 HTML, 🟦 CSS, and 🟨 JS now all together
Gregor Schafroth
Gregor Schafroth

Posted on

👨‍💻 Daily Code 41 | 🟥 HTML, 🟦 CSS, and 🟨 JS now all together

Maybe it’s too boring but I just keep following the free SuperSimpleDev course. I just like it too much! Today the todo list from last time became much prettier. Check out my code :)

My Code

What I found most interesting this time is the grid pattern and how this works out with nicely aligning objects. Such a nice collaboration between 🟥 HTML, 🟦 CSS, and 🟨 JS!

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Todo List</title> <link rel="stylesheet" href="styles/11-todo.css"> </head> <body> <p>Todo List</p> <div class="todo-input-grid"> <input placeholder="Todo name" class="js-name-input name-input"> <input type="date" class="js-due-date-input due-date-input"> <button onclick="addTodo();" class="add-todo-button">Add</button> </div> <div class="js-todo-list todo-grid"></div> <script src="scripts/11-todo.js"></script> </body> </html> 
Enter fullscreen mode Exit fullscreen mode
body { font-family: Arial; } .todo-grid, .todo-input-grid { display: grid; grid-template-columns: 200px 150px 100px; column-gap: 10px; row-gap: 10px; align-items: center; } .todo-input-grid { margin-bottom: 10px; align-items: stretch; } .name-input, .due-date-input { font-size: 15px; padding: 6px; } .add-todo-button { background-color: green; color: white; border: none; font-size: 15px; cursor: pointer; } .delete-todo-button { background-color: darkred; color: white; border: none; font-size: 15; cursor: pointer; padding-top: 10px; padding-bottom: 10px; } 
Enter fullscreen mode Exit fullscreen mode
const todoList = [{ name: 'make dinner', dueDate: '2024-01-20', }, { name: 'wash dishes', dueDate: '2024-01-24' }]; renderTodoList(); function renderTodoList() { let todoListHTML = ''; for (let i = 0; i < todoList.length; i++) { const todoObject = todoList[i]; const name = todoObject.name; const dueDate = todoObject.dueDate; const html = ` <div>${name}</div> <div>${dueDate}</div> <button onclick=" todoList.splice(${i}, 1); renderTodoList(); " class="delete-todo-button">Delete</button> `; todoListHTML += html; } document.querySelector('.js-todo-list').innerHTML = todoListHTML; } function addTodo() { const inputElement = document.querySelector('.js-name-input'); const name = inputElement.value; const dateInputElement = document.querySelector('.js-due-date-input'); const dueDate = dateInputElement.value; todoList.push({ name: name, dueDate, dueDate }); inputElement.value = '' renderTodoList(); } 
Enter fullscreen mode Exit fullscreen mode

Top comments (0)