pub enum FontStyle {
Normal,
Italic,
Oblique(Option<f32>),
}Expand description
Visual style or “slope” of a font.
In variable fonts, this can be controlled with the ital and slnt axes for italic and
oblique styles, respectively.
In CSS, this corresponds to the font-style property:
https://www.w3.org/TR/css-fonts-4/#font-style-prop.
Variants§
Normal
An upright or “roman” style.
Italic
Generally a slanted style, originally based on semi-cursive forms.
This often has a different structure from the normal style.
Oblique(Option<f32>)
oblique with an optional angle in degrees.
If None, the engine-specific default oblique angle is used.
Implementations§
Source§impl FontStyle
impl FontStyle
Sourcepub fn parse_css(s: &str) -> Option<FontStyle>
pub fn parse_css(s: &str) -> Option<FontStyle>
Parses a CSS font-style value.
Supported syntax (after trimming ASCII whitespace):
normal→FontStyle::Normalitalic→FontStyle::Italicoblique→FontStyle::Oblique(Some(14.0))oblique <angle>where<angle>is one of:<number>deg<number>grad(gradians, converted to degrees)<number>rad(radians, converted to degrees)<number>turn(turns, converted to degrees)
If an oblique <angle> form is present but the angle cannot be parsed, this returns
Some(FontStyle::Oblique(None)).
This parser is case-sensitive.
use parlance::FontStyle;
assert_eq!(FontStyle::parse_css("normal"), Some(FontStyle::Normal));
assert_eq!(FontStyle::parse_css("italic"), Some(FontStyle::Italic));
assert_eq!(
FontStyle::parse_css("oblique"),
Some(FontStyle::Oblique(Some(14.0)))
);
assert_eq!(
FontStyle::parse_css("oblique 30deg"),
Some(FontStyle::Oblique(Some(30.0)))
);
assert_eq!(
FontStyle::parse_css("oblique banana"),
Some(FontStyle::Oblique(None))
);
assert_eq!(FontStyle::parse_css("banana"), None);Trait Implementations§
Source§impl FromFontconfig for FontStyle
impl FromFontconfig for FontStyle
Source§fn from_fontconfig(slant: i32) -> Self
fn from_fontconfig(slant: i32) -> Self
Creates a new style attribute with the given value from Fontconfig.
The values are determined based on the fonts.conf documentation:
https://www.freedesktop.org/software/fontconfig/fontconfig-user.html.