Calculate color HEX having 2 colors and percent/position

color gradient algorithm
calculate color gradient
javascript darken color
javascript pick color from gradient
javascript get color from linear gradient
javascript color from gradient
convert linear-gradient to hex
dynamic color gradient javascript

Is it possible to calculate a color in a middle of a gradient?

var color1 = 'FF0000';
var color2 = '00FF00';

// 50% between the two colors, should return '808000'
var middle = gradient(color1, color2, 0.5); 

I only have two hex strings, and I want one in return.

This should work:

It basically involves converting them to decimal, finding the halves, converting the results back to hex and then concatenating them.

var color1 = 'FF0000';
var color2 = '00FF00';
var ratio = 0.5;
var hex = function(x) {
    x = x.toString(16);
    return (x.length == 1) ? '0' + x : x;

var r = Math.ceil(parseInt(color1.substring(0,2), 16) * ratio + parseInt(color2.substring(0,2), 16) * (1-ratio));
var g = Math.ceil(parseInt(color1.substring(2,4), 16) * ratio + parseInt(color2.substring(2,4), 16) * (1-ratio));
var b = Math.ceil(parseInt(color1.substring(4,6), 16) * ratio + parseInt(color2.substring(4,6), 16) * (1-ratio));

var middle = hex(r) + hex(g) + hex(b);

javascript: Calculate color HEX having 2 colors and percent/position, Is it possible to calculate a color in a middle of a gradient?var color1 = 'FF0000'; var color2 = '00FF00';// 50% between the two colors, should return '808000'var� Color blender; Color subtraction; 216 web safe colors; Colors by name; Generate any gradient between two colors. Just type your colors separated by the word "to" in the search field. ColorHexa will then display a RGB, HSV and Reverse HSV gradient. If you just want to blend two (or more) colors together, you might be interested by our color

I can't comment on the answer above, so I write it here:

I found out that in the Javascript substring method the to parameter index is not included in the returned string. That means:

var string = "test";
//index:      0123

//will alert es and NOT est

Edit: So it should be:

parseInt(color1.substring(0,2), 16);
parseInt(color1.substring(2,4), 16);


parseInt(color1.substring(4,6), 16);

Calculating Color: Dynamic Color Theming with Pure CSS, Calculating Color: Dynamic Color Theming with Pure CSS With the magic of CSS Custom Properties, HSL colors, and some calc() fun, Secondary Triad 2 Complementary colors can be calculated by taking the inverse of the hue (i.e. like so: calc(var(--colorPrimary-l) + var(--lighten-percentage)) . Create Color Scheme to see a color report—and save the hexadecimal, RGB, and CMYK colors for your Web or print projects. See your swatch applied to design samples. Print the page, save it as a PDF, share it with friends and family.

You can use this ready function (ES6):

const calculateMiddleColor = ({
  color1 = 'FF0000',
  color2 = '00FF00',
}) => {
  const hex = (color) => {
    const colorString = color.toString(16);
    return colorString.length === 1 ? `0${colorString}` : colorString;

  const r = Math.ceil(
    parseInt(color2.substring(0, 2), 16) * ratio
      + parseInt(color1.substring(0, 2), 16) * (1 - ratio),
  const g = Math.ceil(
    parseInt(color2.substring(2, 4), 16) * ratio
      + parseInt(color1.substring(2, 4), 16) * (1 - ratio),
  const b = Math.ceil(
    parseInt(color2.substring(4, 6), 16) * ratio
      + parseInt(color1.substring(4, 6), 16) * (1 - ratio),

  return hex(r) + hex(g) + hex(b);
console.log(calculateMiddleColor({ ratio: 0 / 5 })); // ff0000
console.log(calculateMiddleColor({ ratio: 5 / 5 })); // 00ff00
console.log(calculateMiddleColor({ ratio: 2.5 / 5 })); // 808000
console.log(calculateMiddleColor({ ratio: 4.2 / 5 })); // 29d700

CMYK to RGB, Would you like to convert the CMYK color to a RGB model ? The Red, Green, Blue values are given in the range of 0..255, the red color(R) is calculated from the cyan(C) and black(K) colors, the green or we can assume we run out of the black ink, need use the remaining other three color inks to finish the printing job. Note that the number found in Step 2 will be the value written in the place value for the power of 16 that was found. If for example the largest power of 16 was found to be 16 4, and the number in Step 2 found to be 3, the hex value would have the number 3 in its 16 4 place value: 3qrst, where qrst represents the 16 0 through 3 place values.

Hex Color Tool, 1%; 2%; 3%; 4%; 5%; 6%; 7%; 8%; 9%; 10%; 11%; 12%; 13%; 14%; 15%; 16%; 17%; 18%; 19%; 20%. Complimentary An example of a Hex color representation is #123456 , 12 is Red, 34 is Green, and 56 is Blue. There are 16 million possible colors. The values are based on a position from the center of a color wheel. How to Calculate a Complementary Colour (Inc. RGB / HSL Conversion) Related pages: Colour Scheme Calculator Hex / HSL to RGB / RGB to HSL Calculator When I wrote the programs for the colour calculator, I had some difficulty finding all the information I needed for the formulae etc., so here it is.

<color>, They are called the extended color keywords, the X11 colors, or the SVG Specification, Keyword, RGB hex value, Live keyword that transparent should be calculated in the alpha-premultiplied color Historical note: transparent wasn' t a true color in CSS Level 2 Don't mix numbers and percentages. Pick a color value format, input two valid CSS color values in the format you chose, and pick the number of midpoints you'd like to see. The palette will show the colors you input as well as the requested number of midpoint colors, and the values of those colors. All numbers are rounded to the nearest integer.

CSS values and units, When you see the value <color> as valid for a particular property, of color value can be used — keywords, hex values, rgb() functions, etc. In the below example the two percentage-sized boxes and the two Let's have a look at some of the ways in which we can specify colors My width is calculated. Using colors in HTML, CSS and JavaScript is easy. However, it’s often necessary to programmatically generate colors, i.e. you need a color which is 20% brighter than #123 or 10% darker than #abcdef.

  • It's a simple linear algebra problem (and you already know that since you've got the answer for your example colors). What have you coded up so far?
  • possible duplicate of Programmatically Lighten or Darken a hex color (or rgb, and blend colors)
  • note the third argument -> 0.5 which is the ratio of color1 and color2
  • Well this is indeed close, but if ratio is 0 then the color is black, whereas it should be color1. Moreover, the r.toString etc. wont pad with zeros, will they?
  • var r1 = parseInt(color1.substring(0,1), 16), r2 = parseInt(color2.substring(0,1), 16); var r = Math.ceil(r1 + (r2-r1)*ratio); ??
  • The substring is wrong, the parameters are : (0, 2) - (2, 4) - (4, 6)
  • the hex function return should be : return (x.length == 1) ? x + x : x;