A 'face' in Emacs is the visual presentation of text using fonts and highlighting. A default face, for example, specifies both the font and the foreground and background colors.
Adapted from the Emacs manual:
Emacs can display text in several different styles, called "faces". Each face can specify various "face attributes", such as the font, height, weight, slant, foreground and background color, and underlining or overlining. Most major modes assign faces to the text automatically, via Font Lock mode. […]
To see what faces are currently defined, and what they look like, type
M-x list-faces-display. With a prefix argument, this prompts for a regular expression, and displays only faces with names matching that regular expression […].
It's possible for a given face to look different in different frames. For instance, some text terminals do not support all face attributes, particularly font, height, and width, and some support a limited range of colors. In addition, most Emacs faces are defined so that their attributes are different on light and dark frame backgrounds, for reasons of legibility. By default, Emacs automatically chooses which set of face attributes to display on each frame, based on the frame's current background color. However, you can override this by giving the variable
nilvalue. A value of
darkmakes Emacs treat all frames as if they have a dark background, whereas a value of
lightmakes it treat all frames as if they have a light background.
You can customize a face to alter its attributes, and save those customizations for future Emacs sessions. […]
defaultface is the default for displaying text, and all of its attributes are specified. Its background color is also used as the frame's background color. […]
Another special face is the
cursorface. On graphical displays, the background color of this face is used to draw the text cursor. None of the other attributes of this face have any effect; the foreground color for text under the cursor is taken from the background color of the underlying text. On text terminals, the appearance of the text cursor is determined by the terminal, not by the
You can also use X resources to specify attributes of any particular face. […]
Emacs can display variable-width fonts, but some Emacs commands, particularly indentation commands, do not account for variable character display widths. Therefore, we recommend not using variable-width fonts for most faces, particularly those assigned by Font Lock mode.