Here are additional functions for creating and working with faces.
This function defines a new face named name, initially with all attributes
nil. It does nothing if there is already a face named name.
This function defines a face named new-name as a copy of the existing face named old-face. It creates the face new-name if that doesn't already exist.
If the optional argument frame is given, this function applies only to that frame. Otherwise it applies to each frame individually, copying attributes from old-face in each frame to new-face in the same frame.
If the optional argument new-frame is given, then
copy-facecopies the attributes of old-face in frame to new-name in new-frame.
This function returns the face number of face face. This is a number that uniquely identifies a face at low levels within Emacs. It is seldom necessary to refer to a face by its face number.
This function returns the documentation string of face face, or
nilif none was specified for it.
This returns
tif the faces face1 and face2 have the same attributes for display.
This returns non-
nilif the face face displays differently from the default face.
A face alias provides an equivalent name for a face. You can
define a face alias by giving the alias symbol the face-alias
property, with a value of the target face name. The following example
makes modeline an alias for the mode-line face.
(put 'modeline 'face-alias 'mode-line)
This function defines a face alias and marks it as obsolete, indicating that it may be removed in future. The optional string when indicates when the face was made obsolete (for example, a release number).