Contrasto colore testo in base al colore del background

di il
2 risposte

Contrasto colore testo in base al colore del background

Ciao a tutti ho una pagina che genera casualmente dei codici colore hex (esadecimali) con lo scritta di tale codice e il colore di background corrispondente ma il problema è che se lo sfondo di background è molto scuro la scritta del codice hex rimane nera. Quello che sto cercando di fare è che se lo sfondo di background è molto scuro la scritta del codice hex diventa bianca e se lo sfondo di background è chiaro la scritta del codice hex diventa nera. Allego il link della pagina http://android0.altervista.org/Digital-Random-Color-Picker.html e il codice:

<!DOCTYPE html>
<html dir="ltr">

<head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="user-scalable=no, shrink-to-fit=no, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0">
    <title>Digital Random Color Picker</title>
    <style type="text/css">
html {
    margin: 0;
    padding: 0;
}

body {
    margin: 0;
    padding: 0;
    background: #ffffff;
    color: #000000;
    text-align: center;
}

h1 {
    padding-top: 100px;
    font-family: Auto Digital;
    font-size: 80px;
}

#change {
    margin: 0;
    width: 180px;
    height: 60px;
    background: #ffffff;
    color: #e63c44;
    font-family: Auto Digital;
    font-size: 20px;
    
}
</style>
        
<script src="https://code.jquery.com/jquery-1.0.js" type="text/javascript"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/tinycolor/1.2.1/tinycolor.js" type="text/javascript"></script>
</head>
    <body dir="ltr">
        <div id="container">
            <h1 id="hexcode">#------</h1>
            <button id="change" onclick="buttonClick(tinycolor.random());">Random</button>
        </div>
    </body>

</html>
Allego anche uno screenshot.
Allegati:
Screenshot pagina
Screenshot pagina

2 Risposte

  • Re: Contrasto colore testo in base al colore del background

    Il link della pagina lo hai allegato, ma il codice non è mica solo questo ovviamente...

    Comunque nel link che hai allegato, mi pare di capire che la scritta rimane sempre colorata di nero, mentre il colore di background cambia.
    Ovvio che se vuoi arrivare al risultato da te richiesto, devi porre delle condizioni nel codice Javascript.

    In pratica degli if...

    esempio:
    if background=scuro then font=chiaro
    if background=chiaro then font=scuro

    questa è una forma semplicissima di sviluppo, ovviamente dovrai crearla nella maniera opportuna con la giusta gestione dei codici esadecimali.
  • Re: Contrasto colore testo in base al colore del background

    Ciao @ramcrack. Ho risolto il problema, ho utilizzato il metodo mostReadable di Tinycolor che cambia il colore della scritta in nero quando lo sfondo è chiaro e in bianco quando lo sfondo è scuro.Tinycolor è una libreria JavaScript per la gestione dei colori e dei codici esadecimali. Grazie per la cordialità e buon Santo Stefano.
Devi accedere o registrarti per scrivere nel forum
2 risposte