func Complementary(c color.Color) color.Color {
	return HueOffset(c, 180)
}
Complementary returns the complementary value for any given color
package gamut
import (
	"image/color"
	colorful "github.com/lucasb-eyer/go-colorful"
)
type Color struct {
	Name      string
	Color     color.Color
	Reference string
}
type Colors []Color
func Hex(s string) color.Color {
	c, _ := colorful.Hex(s)
	return c
}
func ToHex(c color.Color) string {
	cc, _ := colorful.MakeColor(c)
	return cc.Hex()
}
func HueOffset(c color.Color, degrees int) color.Color {
	col, _ := colorful.MakeColor(c)
	h, s, v := col.Hsv()
	h += float64(degrees)
	if h < 0 {
		h += 360
	} else if h >= 360 {
		h -= 360
	}
	return colorful.Hsv(h, s, v).Clamped()
}
func Tetradic(c1 color.Color, c2 color.Color) []color.Color {
	var cc []color.Color
	cc = append(cc, Complementary(c1))
	cc = append(cc, Complementary(c2))
	return cc
}
func Triadic(c color.Color) []color.Color {
	var cc []color.Color
	cc = append(cc, HueOffset(c, -120))
	cc = append(cc, HueOffset(c, 120))
	return cc
}
func Quadratic(c color.Color) []color.Color {
	var cc []color.Color
	cc = append(cc, HueOffset(c, -90))
	cc = append(cc, Complementary(c))
	cc = append(cc, HueOffset(c, 90))
	return cc
}
func Analogous(c color.Color) []color.Color {
	var cc []color.Color
	cc = append(cc, HueOffset(c, -30))
	cc = append(cc, HueOffset(c, 30))
	return cc
}
func SplitComplementary(c color.Color) []color.Color {
	return Analogous(Complementary(c))
}