1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
// font-kit/src/descriptor.rs
//
// Copyright © 2018 The Pathfinder Project Developers.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.

//! A possible value for the `font-family` CSS property.

/// A possible value for the `font-family` CSS property.
///
/// These descriptions are taken from CSS Fonts Level 3 § 3.1:
/// <https://drafts.csswg.org/css-fonts-3/#font-family-prop>.
///
/// TODO(pcwalton): `system-ui`, `emoji`, `math`, `fangsong`
#[derive(Clone, Debug, PartialEq, Hash)]
pub enum FamilyName {
    /// A specific font family, specified by name: e.g. "Arial", "times".
    Title(String),
    /// Serif fonts represent the formal text style for a script.
    Serif,
    /// Glyphs in sans-serif fonts, as the term is used in CSS, are generally low contrast
    /// (vertical and horizontal stems have the close to the same thickness) and have stroke
    /// endings that are plain — without any flaring, cross stroke, or other ornamentation.
    SansSerif,
    /// The sole criterion of a monospace font is that all glyphs have the same fixed width.
    Monospace,
    /// Glyphs in cursive fonts generally use a more informal script style, and the result looks
    /// more like handwritten pen or brush writing than printed letterwork.
    Cursive,
    /// Fantasy fonts are primarily decorative or expressive fonts that contain decorative or
    /// expressive representations of characters.
    Fantasy,
}