public function interpolateRgb(string $startColor, string $endColor, int $steps): array
    {
        if (!$steps) {
            return [];
        }

        $s       = $this->hexToRgb($startColor);
        $e       = $this->hexToRgb($endColor);
        $colors  = [];
        $factorR = ($e[0] - $s[0]) / $steps;
        $factorG = ($e[1] - $s[1]) / $steps;
        $factorB = ($e[2] - $s[2]) / $steps;

        for ($x = 1; $x < $steps; ++$x) {
            $colors[] = $this->rgbToHex(
                (int) round($s[0] + ($factorR * $x)),
                (int) round($s[1] + ($factorG * $x)),
                (int) round($s[2] + ($factorB * $x))
            );
        }

        $colors[] = $this->rgbToHex($e[0], $e[1], $e[2]);

        return $colors;
    }