If it helps, maybe it hurts, 'primary_color_contrast' doesn't indicate much to me. But maybe I am still just confused by the intent here. I was reading this as 'this is the primary (or default) color I want all text within an application to be'.  Maybe primary_color should be base_color since it's defining a singular color from which to derive lots of other entities?