diff --git a/README.md b/README.md
index 0f57702..af383c5 100644
--- a/README.md
+++ b/README.md
@@ -1,13 +1,15 @@
-# HTML-CSS-JavaScript-projects-for-beginners
-
-This is the source code of the YouTube video (10 projects) https://www.youtube.com/watch?v=ePzOFu2xXUQ.
-
-Part 2 (16 projects) : https://youtu.be/EWv2jnhZErc
-
-NEW HTML CSS JavaScript Projects Interesting HTML CSS JavaScript projects Learn HTML, CSS, and JavaScript 2021 to create modern websites. Fun learning HTML, CSS, and JavaScript!
-
-I'm Sahand, a web developer in computer science. I've been doing this for over a decade. This course was created to share my knowledge and experience with you. Build simple websites using HTML, CSS, and JavaScript. Responsive web design employs HTML, CSS, and JavaScript. This is a skill you'll learn in this course. This new course teaches students how to install Visual Studio Code and its extensions. Then we start from scratch with each project. After finishing HTML, it's on to CSS and JavaScript. Building in HTML, CSS, or JavaScript is fine. This guide explains HTML, CSS, and JavaScript syntax.
-
-Every project is started from scratch and finished without using copied code. Then they are used on the project to ensure everyone understands. This program's exciting project-based curriculum includes building modern, super cool, and responsive websites! Let's get started learning HTML, CSS, and JavaScript.
-
-Contact me if you have any questions through my twitter: @codewithsahand.
+# HTML CSS JavaScript Projects
+
+This is the source code of the website: 100 HTML CSS JavaScript Projects
+
+
+
About
+
Hi there! I'm Sahand, a web developer with over a decade of experience. This course, "HTML CSS JavaScript Projects ," was created to share my knowledge and experience with you. In this course, you'll learn how to build simple, responsive websites using HTML, CSS, and JavaScript.
+
In this course, you'll learn how to install Visual Studio Code and its extensions, and then we'll start from scratch with each project. After finishing HTML, we'll move on to CSS and JavaScript. Building in HTML, CSS, or JavaScript is fine, and this guide will explain HTML, CSS, and JavaScript syntax.
+
Each project in this course is started from scratch and finished without using copied code. Then, we'll go over the code together to ensure that everyone understands. This program's exciting project-based curriculum includes building modern, super cool, and responsive websites!
+
If you have any questions, please feel free to contact me through my email: codewithsahand@gmail.com
+
Visit my website
+
diff --git a/projects/Navbar-project/index.html b/projects/Navbar-project/index.html
deleted file mode 100644
index 4975da5..0000000
--- a/projects/Navbar-project/index.html
+++ /dev/null
@@ -1,34 +0,0 @@
-
-
-
-
-
-
- Sahand Ghavidel
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/projects/age-calculator/index.html b/projects/age-calculator/index.html
new file mode 100644
index 0000000..7ef5c27
--- /dev/null
+++ b/projects/age-calculator/index.html
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+ Age Calculator
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/projects/age-calculator/index.js b/projects/age-calculator/index.js
new file mode 100644
index 0000000..b2888ee
--- /dev/null
+++ b/projects/age-calculator/index.js
@@ -0,0 +1,31 @@
+const btnEl = document.getElementById("btn");
+const birthdayEl = document.getElementById("birthday");
+const resultEl = document.getElementById("result");
+
+function calculateAge() {
+ const birthdayValue = birthdayEl.value;
+ if (birthdayValue === "") {
+ alert("Please enter your birthday");
+ } else {
+ const age = getAge(birthdayValue);
+ resultEl.innerText = `Your age is ${age} ${age > 1 ? "years" : "year"} old`;
+ }
+}
+
+function getAge(birthdayValue) {
+ const currentDate = new Date();
+ const birthdayDate = new Date(birthdayValue);
+ let age = currentDate.getFullYear() - birthdayDate.getFullYear();
+ const month = currentDate.getMonth() - birthdayDate.getMonth();
+
+ if (
+ month < 0 ||
+ (month === 0 && currentDate.getDate() < birthdayDate.getDate())
+ ) {
+ age--;
+ }
+
+ return age;
+}
+
+btnEl.addEventListener("click", calculateAge);
diff --git a/projects/age-calculator/style.css b/projects/age-calculator/style.css
new file mode 100644
index 0000000..0229675
--- /dev/null
+++ b/projects/age-calculator/style.css
@@ -0,0 +1,63 @@
+body {
+ margin: 0;
+ padding: 20px;
+ font-family: "Montserrat", sans-serif;
+ background-color: #f7f7f7;
+}
+
+.container {
+ background-color: white;
+ box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
+ padding: 20px;
+ max-width: 600px;
+ margin: 0 auto;
+ border-radius: 5px;
+ margin-top: 50px;
+}
+
+h1 {
+ font-size: 36px;
+ text-align: center;
+ margin-top: 0;
+ margin-bottom: 20px;
+}
+
+.form {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+}
+
+label {
+ font-weight: bold;
+ margin-bottom: 10px;
+}
+
+input {
+ padding: 8px;
+ border: 1px solid #ccc;
+ border-radius: 5px;
+ width: 100%;
+ max-width: 300px;
+}
+
+button {
+ background-color: #007bff;
+ color: white;
+ border: none;
+ padding: 10px 20px;
+ border-radius: 5px;
+ margin-top: 10px;
+ cursor: pointer;
+ transition: background-color 0.3s ease;
+}
+
+button:hover {
+ background-color: #0062cc;
+}
+
+#result {
+ margin-top: 20px;
+ font-size: 24px;
+ font-weight: bold;
+}
diff --git a/projects/amine-pics-generator/index.html b/projects/amine-pics-generator/index.html
new file mode 100644
index 0000000..0cb6e43
--- /dev/null
+++ b/projects/amine-pics-generator/index.html
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+ Anime Pics Generator
+
+
+
+
+
Anime Pics Generator
+ Get Anime
+
+
+
Anime Name
+
+
+
+
+
\ No newline at end of file
diff --git a/projects/anime-pics-genrator/index.js b/projects/amine-pics-generator/index.js
similarity index 63%
rename from projects/anime-pics-genrator/index.js
rename to projects/amine-pics-generator/index.js
index 55a158c..ab0dfe5 100644
--- a/projects/anime-pics-genrator/index.js
+++ b/projects/amine-pics-generator/index.js
@@ -1,26 +1,25 @@
const btnEl = document.getElementById("btn");
-const animeBoxEl = document.querySelector(".anime-container");
+const animeContainerEl = document.querySelector(".anime-container");
const animeImgEl = document.querySelector(".anime-img");
-const animeNameEl = document.querySelector(".anime-name");
+const amineNameEl = document.querySelector(".anime-name");
btnEl.addEventListener("click", async function () {
try {
btnEl.disabled = true;
btnEl.innerText = "Loading...";
- animeNameEl.innerText = "Updating...";
+ amineNameEl.innerText = "Updating...";
animeImgEl.src = "spinner.svg";
const response = await fetch("https://api.catboys.com/img");
const data = await response.json();
- animeImgEl.src = data.url;
-
- animeBoxEl.style.display = "block";
- animeNameEl.innerText = data.artist;
btnEl.disabled = false;
btnEl.innerText = "Get Anime";
+ animeContainerEl.style.display = "block";
+ animeImgEl.src = data.url;
+ amineNameEl.innerText = data.artist;
} catch (error) {
console.log(error);
btnEl.disabled = false;
btnEl.innerText = "Get Anime";
- animeNameEl.innerText = "An error happened, try again";
+ amineNameEl.innerText = "An error happened, please try again";
}
});
diff --git a/projects/anime-pics-genrator/spinner.svg b/projects/amine-pics-generator/spinner.svg
similarity index 89%
rename from projects/anime-pics-genrator/spinner.svg
rename to projects/amine-pics-generator/spinner.svg
index 0476499..fd9b80a 100644
--- a/projects/anime-pics-genrator/spinner.svg
+++ b/projects/amine-pics-generator/spinner.svg
@@ -1,6 +1,6 @@
-
+
\ No newline at end of file
diff --git a/projects/amine-pics-generator/style.css b/projects/amine-pics-generator/style.css
new file mode 100644
index 0000000..077c804
--- /dev/null
+++ b/projects/amine-pics-generator/style.css
@@ -0,0 +1,56 @@
+body{
+ margin: 0;
+ background: linear-gradient(to right, lightblue, yellow);
+ display: flex;
+ height: 100vh;
+ justify-content: center;
+ align-items: center;
+ font-family: 'Courier New', Courier, monospace;
+}
+
+.container{
+ background: aliceblue;
+ border-radius: 10px;
+ box-shadow: 0 10px 20px rgba(0,0,0,0.3);
+ text-align: center;
+ padding: 10px;
+ width: 450px;
+ margin: 5px;
+}
+
+.btn{
+ background-color: green;
+ color: aliceblue;
+ padding: 10px 30px;
+ font-size: 16px;
+ margin-bottom: 30px;
+ border-radius: 6px;
+ cursor: pointer;
+
+}
+
+.btn:disabled{
+ background-color: gray;
+ cursor: not-allowed;
+}
+
+.anime-img{
+ height: 300px;
+ width: 300px;
+ border-radius: 50%;
+ border: 3px solid green;
+}
+
+.anime-name{
+ margin: 20px;
+ background-color: green;
+ color: aliceblue;
+ padding: 10px;
+ border-radius: 6px;
+ font-size: 17px;
+ font-weight: 600;
+}
+
+.anime-container{
+ display: none;
+}
\ No newline at end of file
diff --git a/projects/anime-pics-genrator/.vscode/settings.json b/projects/anime-pics-genrator/.vscode/settings.json
deleted file mode 100644
index 6b665aa..0000000
--- a/projects/anime-pics-genrator/.vscode/settings.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "liveServer.settings.port": 5501
-}
diff --git a/projects/anime-pics-genrator/index.html b/projects/anime-pics-genrator/index.html
deleted file mode 100644
index 424dfd4..0000000
--- a/projects/anime-pics-genrator/index.html
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
-
-
-
-
- Anime Pics Generator
-
-
-
-
-
-
-
Anime Pics Generator
-
-
Get Anime
-
-
-
-
-
Anime Name
-
-
-
-
-
diff --git a/projects/anime-pics-genrator/style.css b/projects/anime-pics-genrator/style.css
deleted file mode 100644
index ee907a8..0000000
--- a/projects/anime-pics-genrator/style.css
+++ /dev/null
@@ -1,57 +0,0 @@
-
-body {
- margin: 0;
- background: linear-gradient(to right, lightblue, yellow);
- display: flex;
- height: 100vh;
- justify-content: center;
- align-items: center;
- font-family:'Courier New', Courier, monospace;
-}
-
-.container {
- background-color: aliceblue;
- border-radius: 10px;
- box-shadow: 0 10px 20px rgba(0, 0, 0, 0.3);
- text-align: center;
- padding: 10px;
- width: 450px;
- margin: 5px;
-}
-
-.get-anime {
- margin-bottom: 30px;
- background-color: green;
- color: aliceblue;
- padding: 10px 30px;
- border-radius: 6px;
- font-size: 16px;
- cursor: pointer;
-}
-
-.get-anime:disabled{
- background-color: gray;
- cursor: not-allowed;
-}
-
-.anime-container {
- /* display: none; */
- display: none;
-}
-
-.anime-container img {
- height: 300px;
- width: 300px;
- border-radius: 50%;
- border: 3px solid green;
-}
-
-.anime-name{
- margin: 20px;
- background-color: green;
- color: aliceblue;
- padding: 10px;
- border-radius: 6px;
- font-size: 17px;
- font-weight: 600;
-}
diff --git a/projects/background-video-project/background-video.mp4 b/projects/background-video/background-video.mp4
similarity index 100%
rename from projects/background-video-project/background-video.mp4
rename to projects/background-video/background-video.mp4
diff --git a/projects/background-video-project/index.html b/projects/background-video/index.html
similarity index 100%
rename from projects/background-video-project/index.html
rename to projects/background-video/index.html
diff --git a/projects/background-video-project/index.js b/projects/background-video/index.js
similarity index 100%
rename from projects/background-video-project/index.js
rename to projects/background-video/index.js
diff --git a/projects/background-video-project/preloader.gif b/projects/background-video/preloader.gif
similarity index 100%
rename from projects/background-video-project/preloader.gif
rename to projects/background-video/preloader.gif
diff --git a/projects/background-video-project/styles.css b/projects/background-video/styles.css
similarity index 100%
rename from projects/background-video-project/styles.css
rename to projects/background-video/styles.css
diff --git a/projects/basic-calculator/index.html b/projects/basic-calculator/index.html
new file mode 100644
index 0000000..432ea60
--- /dev/null
+++ b/projects/basic-calculator/index.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ Basic Calculator
+
+
+
+
+
+
+ C
+ /
+ *
+ -
+ 7
+ 8
+ 9
+ +
+ 4
+ 5
+ 6
+ =
+ 1
+ 2
+ 3
+ 0
+ .
+
+
+
+
+
\ No newline at end of file
diff --git a/projects/basic-calculator/index.js b/projects/basic-calculator/index.js
new file mode 100644
index 0000000..40fa6e8
--- /dev/null
+++ b/projects/basic-calculator/index.js
@@ -0,0 +1,29 @@
+const buttonsEl = document.querySelectorAll("button");
+
+const inputFieldEl = document.getElementById("result");
+
+for (let i = 0; i < buttonsEl.length; i++) {
+ buttonsEl[i].addEventListener("click", () => {
+ const buttonValue = buttonsEl[i].textContent;
+ if (buttonValue === "C") {
+ clearResult();
+ } else if (buttonValue === "=") {
+ calculateResult();
+ } else {
+ appendValue(buttonValue);
+ }
+ });
+}
+
+function clearResult() {
+ inputFieldEl.value = "";
+}
+
+function calculateResult() {
+ inputFieldEl.value = eval(inputFieldEl.value);
+}
+
+function appendValue(buttonValue) {
+ inputFieldEl.value += buttonValue;
+ // inputFieldEl.value = inputFieldEl.value + buttonValue;
+}
diff --git a/projects/basic-calculator/style.css b/projects/basic-calculator/style.css
new file mode 100644
index 0000000..baf4abd
--- /dev/null
+++ b/projects/basic-calculator/style.css
@@ -0,0 +1,68 @@
+* {
+ box-sizing: border-box;
+ margin: 0;
+}
+
+.calculator {
+ background-color: #f2f2f2;
+ padding: 20px;
+ max-width: 400px;
+ margin: 0 auto;
+ border: solid 1px #ccc;
+ box-shadow: 0 2px 5px rgba(0, 0, 0, 0.3);
+ border-radius: 5px;
+ margin-top: 40px;
+}
+
+#result{
+ width: 100%;
+ padding: 10px;
+ font-size: 24px;
+ border: none;
+ box-shadow: 0 2px 5px rgba(0, 0, 0, 0.3) inset;
+ border-radius: 5px;
+}
+
+.buttons{
+ display: grid;
+ grid-template-columns: repeat(4, 1fr);
+ grid-gap: 10px;
+ margin-top: 20px;
+}
+
+button{
+ padding: 10px;
+ font-size: 24px;
+ border: none;
+ box-shadow: 0 2px 5px rgba(0, 0, 0, 0.3);
+ border-radius: 5px;
+ cursor: pointer;
+ transition: background-color 0.3s ease;
+
+}
+
+button:hover{
+ background-color: #ddd;
+}
+
+.clear{
+ background-color: #ff4136;
+ color: #fff;
+}
+
+.number, .decimal{
+ background-color: #fff;
+ color: #333;
+
+}
+
+.operator{
+ background-color: #0074d9;
+ color: #fff;
+}
+
+.equals{
+ background-color: #01ff70;
+ grid-row: span 3;
+ color: #fff;
+}
\ No newline at end of file
diff --git a/projects/bmi-calculator/index.html b/projects/bmi-calculator/index.html
index 77c1be9..fd167fe 100644
--- a/projects/bmi-calculator/index.html
+++ b/projects/bmi-calculator/index.html
@@ -4,31 +4,20 @@
-
- BMI
-
+ BMI Calculator
+
-