Module Ecaml.Face

A "face" is a collection of graphical attributes for displaying text: font family, foreground color, background color, optional underlining, and so on. Faces control how buffer text is displayed, and how some parts of the frame, such as the mode-line, are displayed.

For most purposes, you refer to a face in Lisp programs using its "face name". 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.

(Info-goto-node "(elisp)Faces")

include Value.Subtype
type value
type 'a type_
type t = private value

We expose private value for free identity conversions when the value is nested in some covariant type, e.g. (symbols : Symbol.t list :> Value.t list) rather than List.map symbols ~f:Symbol.to_value.

include sig ... end
val sexp_of_t : t ‑> Sexplib.Sexp.t
val of_value_exn : value ‑> t
val to_value : t ‑> value
val eq : t ‑> t ‑> bool

eq t1 t2 = Value.eq (to_value t1) (to_value t2), i.e. eq checks whether the Emacs values underlying t1 and t2 are physically equal. This is different than phys_equal t1 t2, because we don't always wrap eq Emacs values in phys_equal OCaml values. I.e. phys_equal t1 t2 implies eq t1 t2, but not the converse.

val type_ : t type_
include Core_kernel.Equal.S with type t := t
type t
val default : t
val of_name : string ‑> t
val to_name : t ‑> string
module Background : sig ... end

(Info-goto-node "(elisp)Face Attributes")

module Box : sig ... end

(Info-goto-node "(elisp)Face Attributes")

module Font : sig ... end

(Info-goto-node "(elisp)Face Attributes")

module Font_family : sig ... end

Font family name or fontset name; the wild-card characters `*' and `?' are allowed. (Info-goto-node "(elisp)Face Attributes").

module Font_foundry : sig ... end

The name of the "font foundry" in which the font family attribute is located; the wild-card characters `*' and `?' are allowed. (Info-goto-node "(elisp)Face Attributes")

module Foreground : sig ... end

(Info-goto-node "(elisp)Face Attributes")

module Height : sig ... end

(Info-goto-node "(elisp)Face Attributes")

module Inherit : sig ... end

(Info-goto-node "(elisp)Face Attributes")

module Inverse_video : sig ... end

(Info-goto-node "(elisp)Face Attributes")

module Overline : sig ... end

(Info-goto-node "(elisp)Face Attributes")

module Slant : sig ... end

(Info-goto-node "(elisp)Face Attributes")

module Stipple : sig ... end

(Info-goto-node "(elisp)Face Attributes")

module Strike_through : sig ... end

(Info-goto-node "(elisp)Face Attributes")

module Underline : sig ... end

(Info-goto-node "(elisp)Face Attributes")

module Weight : sig ... end

(Info-goto-node "(elisp)Face Attributes")

module Width : sig ... end

(Info-goto-node "(elisp)Face Attributes")

module Attribute : sig ... end

(Info-goto-node "(elisp)Face Attributes")

module Attribute_and_value : sig ... end
val all_defined : unit ‑> t list

(describe-function 'face-list)

val font_family_list : ?⁠on:Frame.t ‑> unit ‑> string list

(describe-function 'face-attribute)

val attribute_value : ?⁠on:Frame.t ‑> t ‑> 'a Attribute.t ‑> 'a

(describe-function 'face-attribute)

val attributes : ?⁠on:Frame.t ‑> t ‑> Attribute_and_value.t list

(describe-function 'face-all-attributes)