Notes app using html css javascript - codewithrandom

Notes app using html css javascript - codewithrandom






Notes app using html css javascript - codewithrandom





Welcome🎉 to Code With Random blog. In this blog, we learn that how we create a Notes taking app. We use HTML & CSS and javascript for this Notes app. Hope you enjoy our blog so let's start with a basic HTML structure for an Notes app.

HTML code 

 <!DOCTYPE html>  
 <html lang="en">  
  <head>  
   <meta charset="UTF-8" />  
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />  
   <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.14.0/css/all.min.css" integrity="sha512-1PKOgIY59xJ8Co8+NE6FZ+LOAZKjy+KY8iq0G4B3CyeY6wYHN3yt9PW0XpSriVlkMXe40PTKnXrLnZ9+fkDaog==" crossorigin="anonymous" />  
   <link rel="stylesheet" href="style.css" />  
   <title>Notes App</title>  
  </head>  
  <body>  
   <button class="add" id="add">  
    <i class="fas fa-plus"></i> Add note  
   </button>  
   <script src="https://cdnjs.cloudflare.com/ajax/libs/marked/1.2.2/marked.min.js"></script>  
   <script src="script.js"></script>  
  </body>  
 </html>  
There is all HTML code for the Notes app. Now, you can see output without CSS, then we write CSS for Notes app.
output
Notes app using html css javascript - codewithrandom

CSS Code

 @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@200;400&display=swap');  
 * {  
  box-sizing: border-box;  
  outline: none;  
 }  
 body {  
  background-color: #7bdaf3;  
  font-family: 'Poppins', sans-serif;  
  display: flex;  
  flex-wrap: wrap;  
  margin: 0;  
  padding-top: 3rem;  
 }  
 .add {  
  position: fixed;  
  top: 1rem;  
  right: 1rem;  
  background-color: #9ec862;  
  color: #fff;  
  border: none;  
  border-radius: 3px;  
  padding: 0.5rem 1rem;  
  cursor: pointer;  
 }  
 .add:active {  
  transform: scale(0.98);  
 }  
 .note {  
  background-color: #fff;  
  box-shadow: 0 0 10px 4px rgba(0, 0, 0, 0.1);  
  margin: 30px 20px;  
  height: 400px;  
  width: 400px;  
  overflow-y: scroll;  
 }  
 .note .tools {  
  background-color: #9ec862;  
  display: flex;  
  justify-content: flex-end;  
  padding: 0.5rem;  
 }  
 .note .tools button {  
  background-color: transparent;  
  border: none;  
  color: #fff;  
  cursor: pointer;  
  font-size: 1rem;  
  margin-left: 0.5rem;  
 }  
 .note textarea {  
  outline: none;  
  font-family: inherit;  
  font-size: 1.2rem;  
  border: none;  
  height: 400px;  
  width: 100%;  
  padding: 20px;  
 }  
 .main {  
  padding: 20px;  
 }  
 .hidden {  
  display: none;  
 }  

Now we have completed our CSS section,  Here is our updated output CSS.

output
Notes app using html css javascript - codewithrandom

Now add javascript for functionality.

Javascript code 


 const addBtn = document.getElementById('add')  
 const notes = JSON.parse(localStorage.getItem('notes'))  
 if(notes) {  
   notes.forEach(note => addNewNote(note))  
 }  
 addBtn.addEventListener('click', () => addNewNote())  
 function addNewNote(text = '') {  
   const note = document.createElement('div')  
   note.classList.add('note')  
   note.innerHTML = `  
   <div class="tools">  
     <button class="edit"><i class="fas fa-edit"></i></button>  
     <button class="delete"><i class="fas fa-trash-alt"></i></button>  
   </div>  
   <div class="main ${text ? "" : "hidden"}"></div>  
   <textarea class="${text ? "hidden" : ""}"></textarea>  
   `  
   const editBtn = note.querySelector('.edit')  
   const deleteBtn = note.querySelector('.delete')  
   const main = note.querySelector('.main')  
   const textArea = note.querySelector('textarea')  
   textArea.value = text  
   main.innerHTML = marked(text)  
   deleteBtn.addEventListener('click', () => {  
     note.remove()  
     updateLS()  
   })  
   editBtn.addEventListener('click', () => {  
     main.classList.toggle('hidden')  
     textArea.classList.toggle('hidden')  
   })  
   textArea.addEventListener('input', (e) => {  
     const { value } = e.target  
     main.innerHTML = marked(value)  
     updateLS()  
   })  
   document.body.appendChild(note)  
 }  
 function updateLS() {  
   const notesText = document.querySelectorAll('textarea')  
   const notes = []  
   notesText.forEach(note => notes.push(note.value))  
   localStorage.setItem('notes', JSON.stringify(notes))  
 }  
Final output

Notes app using html css javascript - codewithrandom

Now we have completed our javascript section,  Here is our updated output with javascriptHope you like the Notes app. you can see output video and project screenshots. See our other blogs and gain knowledge in front-end development. Thank you 🙏💕

In this post, we learn how to create an Notes app using simple HTML & CSS and javascript. If we made a mistake or any confusion, please drop a comment to reply or help you in easy learning.

Written by - Code With Random/Anki 

Post a Comment

Previous Post Next Post