Gerador de senha aleatorio

Olá pessoal.. tudo bem? estou estudando javascript com o guanabara e resolvi pegar oq aprendi e fazer esse "site" que gera senhas aleatoriamente. resolvi compartilhar com vcs pq... não sei ao certo o pq, so queria mostrar para as pessoas! espero que gostem!

HTML, CSS e JAVASCRIPT

<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>
</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>
</body>
</html>

@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;
    }
}


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");
}

Boa!

Tenta só adicionar um textinho no seu post explicando o que você está fazendo.

ok, obrigado pelo feedback! <3

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>
oii, o css não esta dentro da pagina do html, vc pode notar isso no `` eu importei o css de outra pagina
Entendi. Sugiro da próxima vez colocar eles separados (cada um em um bloco de código) e deixar isso mais claro.

Não entendi.. qual é o objetivo do post?

estou estudando javascript e resolvi compartilhar um exercicio aqui.. que no caso é o gerador de senha aleatorio
Tente botar um textinho e pra não poluir, coloque o código em algum site que execute eles. Como o CodePEN.