diff --git a/popup/popup.html b/popup/popup.html
new file mode 100644
index 0000000..090b111
--- /dev/null
+++ b/popup/popup.html
@@ -0,0 +1,41 @@
+
+
+
+
+
+ Random Password Genarator
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/popup/script.js b/popup/script.js
new file mode 100644
index 0000000..df76837
--- /dev/null
+++ b/popup/script.js
@@ -0,0 +1,72 @@
+ const pwEl = document.getElementById("pword");
+ const copyEl = document.getElementById("copy");
+ const lenEl = document.getElementById("len");
+ const upperEl = document.getElementById("upper");
+ const lowerEl = document.getElementById("lower");
+ const numberEl = document.getElementById("number");
+ const symbolEl = document.getElementById("symbol");
+ const generateEl = document.getElementById("generate");
+
+ const upperLetters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
+ const lowerLetters = "abcdefghijklmnopqrstuvwxyz";
+ const numbers = "0123456789";
+ const symbols = "!@#$%^&*()_+=[]";
+
+ function getLowercase() {
+ return lowerLetters[Math.floor(Math.random() * lowerLetters.length)];
+ }
+
+ function getUppercase() {
+ return upperLetters[Math.floor(Math.random() * upperLetters.length)];
+ }
+
+ function getNumber() {
+ return numbers[Math.floor(Math.random() * numbers.length)];
+ }
+
+ function getSymbol() {
+ return symbols[Math.floor(Math.random() * symbols.length)];
+ }
+
+ function generatePassword() {
+ const len = lenEl.value;
+ let password = "";
+
+ for (let i = 0; i < len; i++) {
+ const x = generateX();
+ password += x;
+ }
+
+ pwEl.innerText = password;
+ }
+
+ function generateX() {
+ const xs = [];
+ upperEl.checked && xs.push(getUppercase());
+ lowerEl.checked && xs.push(getLowercase());
+ numberEl.checked && xs.push(getNumber());
+ symbolEl.checked && xs.push(getSymbol());
+
+ if (xs.length === 0)
+ return "";
+
+ return xs[Math.floor(Math.random() * xs.length)];
+ }
+
+ generateEl.addEventListener("click", generatePassword);
+
+ copyEl.addEventListener("click", () => {
+ const textarea = document.createElement("textarea");
+ const password = pwEl.innerText;
+
+ if (!password) {
+ return;
+ }
+
+ textarea.value = password;
+ document.body.appendChild(textarea);
+ textarea.select();
+ document.execCommand("copy");
+ textarea.remove();
+ alert("Password copied to clipboard");
+ });
\ No newline at end of file
diff --git a/popup/style.css b/popup/style.css
new file mode 100644
index 0000000..db859b3
--- /dev/null
+++ b/popup/style.css
@@ -0,0 +1,33 @@
+