Skip to content
Related Articles

Related Articles

How to create RGB color generator using HTML CSS and JavaScript ?
  • Last Updated : 29 Jan, 2021
GeeksforGeeks - Summer Carnival Banner

In this article, we will create a RGB color generator using HTML, CSS, and JavaScript. Using RGB color generator, we can construct all the colors from the combination of Red, Green, Blue colors. Each color is represented by the range of decimal numbers from 0 to 255 (256 levels for each color). So, the total number of available colors is 256 x 256 x 256, or 16,777,216 possible colors.

Approach:

  1. Create an input type range slider for each color.
  2. Set the min and max value of the slider as 0 and 255 respectively.
  3. Get the value of each color and store it in the three variables.
  4. Use rgb() function to generate the color by giving value of three colors as parameters.

index.html




<!DOCTYPE html>
<html>
  
<head>
    <meta charset="utf-8">
    <title>RGB Colour Generator</title>
  
    <link rel="stylesheet" type="text/css" 
        href="style.css">
</head>
  
<body>
    <h1>RGB Colour Generator</h1>
      
    <div class="main">
        Result:<input type="text" id="box"
            value="rgb(255,255,255)">
  
        <!--  Range slider for red colour -->
        Red:<input type="range" id="red" 
            value="255" min="0" max="255">
  
        <!-- Range slider for green colour -->
        Green:<input type="range" id="green" 
            value="255" min="0" max="255">
  
        <!-- Range slider for blue colour -->
        Blue:<input type="range" id="blue" 
            value="255" min="0" max="255">
    </div>
  
    <script src="script.js"></script>
</body>
  
</html>

style.css




body {
    margin: 0;
    padding: 0;
    display: grid;
    place-items: center;
    height: 100vh;
}
  
.main {
    height: 400px;
    width: 250px;
    background: #333;
    border-radius: 10px;
    display: grid;
    place-items: center;
    color: #fff;
    font-family: verdana;
}
  
#box {
    height: 40px;
    width: 80%;
    border: none;
    outline: none;
    outline: none;
    border-radius: 50px;
    text-align: center;
}
  
  
/* CSS property for slider */
input[type="range"] {
    -webkit-appearance: none;
    height: 10px;
    width: 80%;
    border-radius: 50px;
    outline: none;
}
  
/* CSS property for slider thumb */
input[type="range"]::-webkit-slider-thumb {
    -webkit-appearance: none;
    height: 25px;
    width: 25px;
    background: #fff;
    border-radius: 50%;
    cursor: pointer;
}
  
.main #red {
    background: linear-gradient(90deg, #000, red);
}
  
.main #green {
    background: linear-gradient(90deg, #000, green);
}
  
.main #blue {
    background: linear-gradient(90deg, #000, blue);
}

script.js




function myColour() {
  
    // Get the value of red color
    var red = document.getElementById('red').value;
  
    // Get the value of green color
    var green = document.getElementById('green').value;
  
    // Get the value of blue color
    var blue = document.getElementById('blue').value;
  
    // rgb() function is used to create the color
    // from red, green and blue values
    var colour = 'rgb(' + red + ',' + green + ',' + blue + ')';
  
    // Change background colour with the 
    // color obtained by rgb function
    document.body.style.backgroundColor = colour;
  
    // Set the obtained rgb() colour code in the
    // input text field having id=box  
    document.getElementById('box').value = colour;
  
}
  
// On changing red range slider myColour()
// function is called  
document.getElementById('red')
    .addEventListener('input', myColour);
  
// On changing green range slider myColour()
// function is called
document.getElementById('green')
    .addEventListener('input', myColour);
  
// On changing blue range slider myColour()
// function is called
document.getElementById('blue')
    .addEventListener('input', myColour);

Output:

full-stack-img




My Personal Notes arrow_drop_up
Recommended Articles
Page :