Colors are first-class objects. However, anywhere that a color is taken as an argument, a string containing an X color specification will also be accepted, and will be automatically converted to the proper color object. Using the same color specifier string more than once is not inefficient, as caching ensures that color objects are shared.