Creating a JavaScript Color Picker

A color picker is a user interface element that allows the user to select a color from a range of colors. In this tutorial, we will learn how to create a simple color picker using JavaScript.

HTML Markup

To create a color picker, we will use an HTML input element with the type attribute set to color. This will create a native color picker for the user to select a color.

<input type="color">

JavaScript Function

Next, we will create a JavaScript function to create and append the color picker to a specified element on the page. The function will take in the ID of the target element as an argument, and return the color picker element.

function createColorPicker(elementId) {
  // Create the color picker element
  const colorPicker = document.createElement('input');
  colorPicker.type = 'color';

  // Append the color picker to the specified element
  const targetElement = document.getElementById(elementId);
  targetElement.appendChild(colorPicker);

  // Return the color picker element
  return colorPicker;
}

To use this function, simply call it and pass in the ID of the element where you want the color picker to be added. For example:

const colorPicker = createColorPicker('myDiv');

Customizing the Color Picker

You can customize the appearance and behavior of the color picker by setting various properties of the input element. Some of the properties that you can set include:

  • value: The initially selected color.

  • name: The name of the color picker, which is used when submitting the form.

  • disabled: A boolean value indicating whether the color picker is disabled.

  • readonly: A boolean value indicating whether the color picker is read-only.

For example, to create a color picker with the default color set to red and the name "favoriteColor", you can do the following:

const colorPicker = createColorPicker('myDiv');
colorPicker.value = '#ff0000';
colorPicker.name = 'favoriteColor';

Reading the Selected Color

To read the selected color from the color picker, you can access the value property of the color picker element. This will return the selected color in the hexadecimal format (e.g. #ff0000 for red).

const selectedColor = colorPicker.value;

Example: Changing the Background Color of an Element

Here is an example of how you can use the color picker to change the background color of an element on the page:

<div id="colorBox"></div>
<button id="changeColorButton">Change Color</button>
const colorPicker = createColorPicker('myDiv');
const colorBox = document.getElementById('colorBox');
const changeColorButton = document.getElementById('changeColorButton');

changeColorButton.addEventListener('click', () => {
  const selectedColor = colorPicker.value;
  colorBox.style.backgroundColor = selectedColor;
});

In this example, we added a click event listener to the "Change Color" button, which gets the selected color from the color picker and sets it as the background color of the "colorBox" element.

Conclusion

In this tutorial, we learned how to create a simple color picker using JavaScript. We saw how to customize the color picker and how to read the selected color. I hope this was helpful! Let me know if you have any questions.

That's it.

Did you find this article valuable?

Support Eirik Madland by becoming a sponsor. Any amount is appreciated!