A face is a named collection of graphical attributes: font, foreground color, background color and optional underlining. Faces control the display of text on the screen.
Each face has its own face id number which distinguishes faces at low levels within Emacs. However, for most purposes, you can refer to faces in Lisp programs by their names.
Each face name is meaningful for all frames, and by default it has the same meaning in all frames. But you can arrange to give a particular face name a special meaning in one frame if you wish.
Here are all the ways to specify which face to use for display of text:
face
property; if so,
it's displayed with that face. If the character has a mouse-face
property, that is used instead of the face
property when the mouse
is "near enough" to the character.
face
and mouse-face
properties too; they apply to all the text covered by the overlay.
If these various sources together specify more than one face for a particular character, Emacs merges the attributes of the various faces specified. The attributes of the faces of special glyphs come first; then come attributes of faces from overlays, followed by those from text properties, and last the default face.
When multiple overlays cover one character, an overlay with higher priority overrides those with lower priority.
If an attribute such as the font or a color is not specified in any of the above ways, the frame's own font or color is used.
See section `Face Functions' in The Emacs Lisp Reference Manual, for functions to create and change faces.