Color customization

API still needs implementation before this works, but there's no reason to not merge it.