back to top

Come Generare QR Code con HTML, CSS e JavaScript

I codici QR sono ormai ovunque, dai menu dei ristoranti ai biglietti da visita. La loro versatilità li rende perfetti per condividere informazioni in modo veloce e pratico. Ma hai mai pensato a quanto è facile crearne uno direttamente dal tuo sito web? In questo articolo ti mostrerò passo dopo passo come generare un codice QR con una semplice applicazione web utilizzando HTML, CSS e JavaScript. Questo progetto è un ottimo esercizio per sviluppatori principianti e junior, poiché tocca aspetti fondamentali dello sviluppo web come la gestione del DOM, la manipolazione degli stili CSS e l’integrazione con un’API esterna.

Come Creare la Struttura HTML

Partiamo dalla creazione della struttura HTML. Questo definirà i componenti di base della nostra applicazione: un campo di input per inserire il testo, un pulsante per generare il QR code e un contenitore per mostrare il risultato. Ecco il codice:

<div class="container">
  <input type="text" id="text" placeholder="Inserisci il testo..." class="input" />
  <button type="button" onclick="generateQR()">Genera QR</button>
  <div id="qr-image">
    <span class="error"></span><br />
    <img src="" id="img" />
  </div>
</div>

In questo codice, abbiamo una semplice struttura che ci permette di raccogliere l’input dell’utente e, dopo un click sul pulsante, generare il codice QR corrispondente. L’elemento <div> con l’id “qr-image” è pensato per ospitare l’immagine generata.

Il campo di input e il pulsante sono gli elementi principali dell’interfaccia utente e saranno personalizzati visivamente attraverso CSS, mentre l’elemento <img> ospiterà l’immagine QR generata.

Styling con CSS per una Presentazione Accattivante

Per rendere la nostra interfaccia esteticamente gradevole e user-friendly, utilizziamo un po’ di CSS. L’obiettivo è creare un layout pulito e moderno che attragga l’utente e renda il processo intuitivo.

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

body {
  background: #ececec;
  font-family: Arial, Helvetica, sans-serif;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100vh;
}

.container {
  padding: 40px 60px;
  background: #fff;
  display: flex;
  align-items: center;
  border: 5px solid rgba(190, 190, 190, 0);
  box-shadow: 0 0 15px rgba(100, 100, 100, 0.3);
  flex-direction: column;
}

.input {
  padding: 12px 20px;
  width: 300px;
  margin-bottom: 20px;
}

button {
  padding: 12px 20px;
  margin-bottom: 20px;
  border: 0;
  background: #485696;
  color: #fff;
  text-transform: uppercase;
  font-weight: 700;
  letter-spacing: 2px;
}

#qr-image {
  display: none;
}

img {
  margin-bottom: 20px;
}

Abbiamo definito uno stile che rende la nostra applicazione moderna e piacevole alla vista. Il corpo del documento è centrato orizzontalmente e verticalmente, grazie alla combinazione di display: flex, align-items: center e justify-content: center. Lo stile del contenitore aggiunge un bordo morbido e un’ombra per dare un effetto di profondità, rendendo l’interfaccia più professionale.

Il pulsante è stato stilizzato per essere prominente: ha un colore di sfondo ben visibile e il testo è tutto in maiuscolo con un leggero spazio tra le lettere per aumentarne la leggibilità.

Implementazione della Logica con JavaScript

Ora è il momento di passare alla parte più interessante: la logica per generare il QR code. Utilizzeremo JavaScript per leggere l’input dell’utente e collegarci a un’API esterna per generare l’immagine del QR code. Per farlo, usiamo l’API gratuita <a href="https://api.qrserver.com" target="_blank" rel="noreferrer noopener">https://api.qrserver.com</a>.

function generateQR() {
  document.querySelector("#qr-image").style.display = "block";
  let QRtext = document.querySelector("#text").value;
  if (QRtext.trim().length == 0) {
    document.querySelector("#qr-image .error").innerHTML = "Inserisci del testo";
    document.querySelector("#img").style.display = "none";
  } else {
    document.querySelector("#img").style.display = "block";
    document.querySelector("#qr-image .error").innerHTML = "";
    document.querySelector("#img").src = "https://api.qrserver.com/v1/create-qr-code/?size=240x240&data=" + QRtext;
  }
}

La funzione generateQR() viene chiamata ogni volta che l’utente clicca sul pulsante “Genera QR”. All’interno della funzione, recuperiamo il valore inserito dall’utente e verifichiamo che non sia vuoto. Se l’input è valido, utilizziamo l’API per generare il codice QR e aggiorniamo la sorgente dell’immagine (src) in modo dinamico.

Nel caso in cui l’utente non abbia inserito nulla, viene visualizzato un messaggio di errore per richiedere l’inserimento di un testo valido. In questo modo l’esperienza utente è più fluida e chiara.

Perché Usare un’API Esterna per il QR Code?

L’utilizzo dell’API <a href="https://api.qrserver.com" target="_blank" rel="noreferrer noopener">https://api.qrserver.com</a> ci permette di evitare di implementare una libreria di generazione dei codici QR lato server o client. Questo approccio è molto conveniente per piccole applicazioni o progetti di apprendimento, in quanto riduce il carico di lavoro e permette di concentrarsi sull’integrazione front-end.

Tuttavia, per progetti più seri o con elevati volumi di richieste, potresti voler considerare alternative più robuste, come l’integrazione di una libreria JavaScript dedicata (ad esempio, <a href="https://github.com/davidshimjs/qrcodejs" target="_blank" rel="noreferrer noopener">qrcode.js</a>) che permetta di generare codici QR senza dipendere da un servizio esterno. Questo garantirebbe maggiore controllo e una riduzione dei tempi di risposta.

Possibili Miglioramenti e Estensioni del Progetto

Una possibile estensione di questo progetto è l’aggiunta di opzioni di personalizzazione per il QR code. Ad esempio, potresti permettere all’utente di scegliere la dimensione del codice QR o di aggiungere colori personalizzati. Potresti anche fornire l’opzione di scaricare il QR code generato come immagine PNG, migliorando ulteriormente l’utilità dell’applicazione.

Ecco qualche suggerimento per ulteriori sviluppi:

  • Download del QR Code: aggiungi un pulsante per permettere all’utente di scaricare l’immagine generata. Potresti farlo utilizzando la funzione toDataURL() di un canvas HTML, che converte l’immagine in un link scaricabile.
  • Personalizzazione Colori: permetti all’utente di scegliere i colori del codice QR, magari attraverso un selettore di colori (<input type="color">). Questo renderebbe il codice QR più adatto ai branding specifici.
  • Validazione Avanzata dell’Input: aggiungi una validazione più dettagliata sull’input, ad esempio per rilevare e informare l’utente se inserisce URL non validi. Potresti usare regex per verificare il formato dell’URL.

Vantaggi e Applicazioni dei Codici QR

I codici QR sono estremamente versatili. Possono essere utilizzati per molteplici applicazioni, come:

  • Link a Siti Web: uno dei casi più comuni è quello di utilizzare un QR code per condividere rapidamente un link ad un sito web o una landing page.
  • Dettagli di Contatto: molte aziende utilizzano codici QR per condividere informazioni di contatto come email, numero di telefono o indirizzo.
  • Campagne di Marketing: i QR code vengono spesso utilizzati nelle campagne di marketing per creare engagement, indirizzando l’utente a promozioni, sconti o contenuti esclusivi.

Conclusioni

In questo tutorial abbiamo visto come creare una semplice applicazione web per generare codici QR utilizzando HTML, CSS e JavaScript. Questo tipo di progetto è ideale per migliorare le proprie abilità nello sviluppo front-end, poiché coinvolge diversi aspetti del linguaggio: l’uso del DOM, la gestione degli eventi e l’integrazione con API esterne. Ti incoraggio a sperimentare con il codice, a modificarlo e a personalizzarlo per adattarlo alle tue esigenze!

Se hai trovato utile questo tutorial, assicurati di dare un’occhiata agli altri nostri articoli per continuare a imparare e migliorare come sviluppatore web.

Link Correlati:

Hai trovato utile questa guida? Continua a seguire Cyberalchimista sui social (@cyberalchimista) per altri tutorial e consigli sullo sviluppo web! Se hai domande o vuoi condividere i tuoi progetti contattaci.

Condividi

Articoli Recenti

Categorie popolari