Мне кажется, что они просто взяли один и тот же оттенок (основной цвет) и увеличили яркость вверх и вниз. Это можно сделать достаточно легко с помощью преобразований HSL или HSV. Проверьте Википедию на наличие цветовых пространств HSL и HSV, чтобы получить некоторое представление о теории.
Основная идея: компьютеры представляют цвет со смесью интенсивности красного, зеленого и синего, называемой RGB, потому что именно так на экране отображается цвет. HSL (Hue, Saturation, Lightness) и HSV (Hue, Saturation, Value) - это две альтернативные модели для представления цвета, которые являются более интуитивными и ближе к тому, как люди склонны думать о том, как цвета выглядят.
Оттенок - это основной цвет, представленный (более или менее) в виде угла на цветовом круге. Насыщенность - это линейное значение от 0 (серый) до 255 (яркий, яркий цвет). И Lightness / Value представляют яркость, от 0 (черный) до 100 (белый).
Алгоритмы преобразования из RGB -> HSL и HSL -> RGB (или HSV вместо HSL) довольно просты. Попробуйте преобразовать свой цвет в HS *, отрегулировать яркость и вернуться обратно. Взяв несколько различных значений яркости от низкого до высокого и расположив их в виде клиньев на круговой диаграмме, вы можете довольно легко дублировать это изображение.