Oi @samuxka, tudo bem? Verifiquei teu código e notei que está um pouco desorganizado, com alguns erros de sintaxe. Isso está impactando o funcionamento correto da página.
Por exemplo, o CSS deve estar entre as tags ..., colocadas antes do . Já o JavaScript, precisa estar dentro de , e isso vai antes do .
Outra coisa que observei é que você está usando dois elementos com o mesmo id (no caso id="button"). Isso não é legal de acontecer, pois pode dar conflito. Mas também não é nada muito sério.
Depois de ajustar, percebi que tua página ficou charmosa. Provavelmente foi só um deslize ao copiar o HTML.
No geral, tá bacana. Parabéns pela iniciativa! Precisando de ajuda, é só chamar. Abraço!
Segue o código com meus ajustes:
<html lang="pt-br">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="assets/css/style.css">
<link rel="stylesheet" href="https://unicons.iconscout.com/release/v4.0.8/css/line.css">
<title>Random Password</title>
<style>
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Sans+Arabic:wght@600&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@700&display=swap');
*{
margin: 0;
padding: 0;
user-select: none;
box-sizing: border-box;
}
body{
background: #695cfe;
justify-content: center;
align-items: center;
display: flex;
min-height: 100vh;
transition: all 0.2s ease;
}
.box{
background: #fff;
padding-top: 30px;
padding: 30px;
border-radius: 10px;
transition: all 0.5s ease;
animation: pulse 1.2s infinite ease-in-out;
}
.box h2{
margin-bottom: 40px;
text-align: center;
font-size: 26px;
color: #695cfe;
font-family: 'Montserrat', sans-serif;
}
input{
padding: 20px;
user-select: none;
height: 50px;
width: 400px;
border-radius: 6px;
border: 2px solid#695cfe;
outline: none;
font-size: 22px;
color: #4c42b8;
font-family: 'Montserrat', sans-serif;
}
input::placeholder{
font-size: 23px;
color: #695cfe;
}
.v2{
color: #fac130;
}
i{
font-size: 17px;
color: #fac130;
padding-right: 3px;
}
#button{
font-family: 'Montserrat', sans-serif;
font-size: 15px;
margin-top: 40px;
width: 155px;
height: 50px;
background: #695cfe;
text-align: center;
color: #fff;
display: flex;
align-items: center;
justify-content: center;
border-radius: 6px;
cursor: pointer;
transition: all 0.2s ease;
}
.btn2{
margin-left: 85px;
}
#button:hover{
background: #4c42b8;
}
#button:active{
transform: scale(0.96);
}
@keyframes pulse {
0% {
box-shadow: 0px 0px 10px 0px #540085;
}
50% {
box-shadow: 0px 0px 25px 1px #52057e;
}
100% {
box-shadow: 0px 0px 10px 0px #540085;
}
}
</style>
</head>
<body>
<div class="box">
<h2>Password <span class="v2">Generator</span></h2>
<input type="text" placeholder="Password" id="password" readonly>
<table>
<th>
<div id="button" class="btn1" onclick="genPassword()">
<span><i class="uil uil-bolt"></i>Generate</span>
</div>
</th>
<th>
<div id="button" class="btn2" onclick="copyPassword()">
<span><i class="uil uil-copy"></i>Copy</span>
</div>
</th>
</table>
</div>
<script src="assets/js/script.js"></script>
<script>
var password = document.getElementById("passsword");
function genPassword() {
var chars = "0123456789abcdefghijklmnopqrstuvwxyz!@#$%&*()^ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var passswordLength = 8;
var passsword = "";
for (var i = 0; i <= passswordLength; i++){
var randomNumber = Math.floor(Math.random() * chars.length);
passsword += chars.substring(randomNumber, randomNumber - 1);
}
document.getElementById("password").value = passsword;
}
function copyPassword() {
var copyText = document.getElementById("password");
copyText.select();
copyText.setSelectionRange(0,999);
document.execCommand("copy");
}
</script>
</body>
</html>