material-ui-rs 0.4.2

A Material3 inspired theme for `iced`
Documentation
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum TypefaceRole {
    Brand,
    Plain,
}

#[derive(Debug, Clone, Copy, PartialEq)]
pub struct TypeScale {
    pub role: TypefaceRole,
    pub size: f32,
    pub line_height: f32,
    pub tracking: f32,
    pub weight: u16,
}

const fn scale(
    role: TypefaceRole,
    size: f32,
    line_height: f32,
    tracking: f32,
    weight: u16,
) -> TypeScale {
    TypeScale {
        role,
        size,
        line_height,
        tracking,
        weight,
    }
}

pub const WEIGHT_REGULAR: u16 = 400;
pub const WEIGHT_MEDIUM: u16 = 500;
pub const WEIGHT_BOLD: u16 = 700;

pub const DISPLAY_LARGE: TypeScale = scale(TypefaceRole::Brand, 57.0, 64.0, -0.25, WEIGHT_REGULAR);
pub const DISPLAY_MEDIUM: TypeScale = scale(TypefaceRole::Brand, 45.0, 52.0, 0.0, WEIGHT_REGULAR);
pub const DISPLAY_SMALL: TypeScale = scale(TypefaceRole::Brand, 36.0, 44.0, 0.0, WEIGHT_REGULAR);
pub const HEADLINE_LARGE: TypeScale = scale(TypefaceRole::Brand, 32.0, 40.0, 0.0, WEIGHT_REGULAR);
pub const HEADLINE_MEDIUM: TypeScale = scale(TypefaceRole::Brand, 28.0, 36.0, 0.0, WEIGHT_REGULAR);
pub const HEADLINE_SMALL: TypeScale = scale(TypefaceRole::Brand, 24.0, 32.0, 0.0, WEIGHT_REGULAR);
pub const TITLE_LARGE: TypeScale = scale(TypefaceRole::Brand, 22.0, 28.0, 0.0, WEIGHT_REGULAR);
pub const TITLE_MEDIUM: TypeScale = scale(TypefaceRole::Plain, 16.0, 24.0, 0.15, WEIGHT_MEDIUM);
pub const TITLE_SMALL: TypeScale = scale(TypefaceRole::Plain, 14.0, 20.0, 0.1, WEIGHT_MEDIUM);
pub const LABEL_LARGE: TypeScale = scale(TypefaceRole::Plain, 14.0, 20.0, 0.1, WEIGHT_MEDIUM);
pub const LABEL_MEDIUM: TypeScale = scale(TypefaceRole::Plain, 12.0, 16.0, 0.5, WEIGHT_MEDIUM);
pub const LABEL_SMALL: TypeScale = scale(TypefaceRole::Plain, 11.0, 16.0, 0.5, WEIGHT_MEDIUM);
pub const BODY_LARGE: TypeScale = scale(TypefaceRole::Plain, 16.0, 24.0, 0.5, WEIGHT_REGULAR);
pub const BODY_MEDIUM: TypeScale = scale(TypefaceRole::Plain, 14.0, 20.0, 0.25, WEIGHT_REGULAR);
pub const BODY_SMALL: TypeScale = scale(TypefaceRole::Plain, 12.0, 16.0, 0.4, WEIGHT_REGULAR);