You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Connected.Components/Themes/Models/Typography.cs

175 lines
4.4 KiB

2 years ago

namespace Connected
{
public class Typography
{
public Default Default { get; set; } = new Default();
public H1 H1 { get; set; } = new H1();
public H2 H2 { get; set; } = new H2();
public H3 H3 { get; set; } = new H3();
public H4 H4 { get; set; } = new H4();
public H5 H5 { get; set; } = new H5();
public H6 H6 { get; set; } = new H6();
public Subtitle1 Subtitle1 { get; set; } = new Subtitle1();
public Subtitle2 Subtitle2 { get; set; } = new Subtitle2();
public Body1 Body1 { get; set; } = new Body1();
public Body2 Body2 { get; set; } = new Body2();
public Button Button { get; set; } = new Button();
public Caption Caption { get; set; } = new Caption();
public Overline Overline { get; set; } = new Overline();
}
public class Default : BaseTypography
{
public Default()
{
FontFamily = new[] { "Roboto", "Helvetica", "Arial", "sans-serif" };
FontSize = ".875rem";
FontWeight = 400;
LineHeight = 1.43;
LetterSpacing = ".01071em";
}
}
public class H1 : BaseTypography
{
public H1()
{
FontSize = "6rem";
FontWeight = 300;
LineHeight = 1.167;
LetterSpacing = "-.01562em";
}
}
public class H2 : BaseTypography
{
public H2()
{
FontSize = "3.75rem";
FontWeight = 300;
LineHeight = 1.2;
LetterSpacing = "-.00833em";
}
}
public class H3 : BaseTypography
{
public H3()
{
FontSize = "3rem";
FontWeight = 400;
LineHeight = 1.167;
LetterSpacing = "0";
}
}
public class H4 : BaseTypography
{
public H4()
{
FontSize = "2.125rem";
FontWeight = 400;
LineHeight = 1.235;
LetterSpacing = ".00735em";
}
}
public class H5 : BaseTypography
{
public H5()
{
FontSize = "1.5rem";
FontWeight = 400;
LineHeight = 1.334;
LetterSpacing = "0";
}
}
public class H6 : BaseTypography
{
public H6()
{
FontSize = "1.25rem";
FontWeight = 500;
LineHeight = 1.6;
LetterSpacing = ".0075em";
}
}
public class Subtitle1 : BaseTypography
{
public Subtitle1()
{
FontSize = "1rem";
FontWeight = 400;
LineHeight = 1.75;
LetterSpacing = ".00938em";
}
}
public class Subtitle2 : BaseTypography
{
public Subtitle2()
{
FontSize = ".875rem";
FontWeight = 500;
LineHeight = 1.57;
LetterSpacing = ".00714em";
}
}
public class Body1 : BaseTypography
{
public Body1()
{
FontSize = "1rem";
FontWeight = 400;
LineHeight = 1.5;
LetterSpacing = ".00938em";
}
}
public class Body2 : BaseTypography
{
public Body2()
{
FontSize = ".875rem";
FontWeight = 400;
LineHeight = 1.43;
LetterSpacing = ".01071em";
}
}
public class Button : BaseTypography
{
public Button()
{
FontSize = ".875rem";
FontWeight = 500;
LineHeight = 1.75;
LetterSpacing = ".02857em";
TextTransform = "uppercase";
}
}
public class Caption : BaseTypography
{
public Caption()
{
FontSize = ".75rem";
FontWeight = 400;
LineHeight = 1.66;
LetterSpacing = ".03333em";
}
}
public class Overline : BaseTypography
{
public Overline()
{
FontSize = ".75rem";
FontWeight = 400;
LineHeight = 2.66;
LetterSpacing = ".08333em";
}
}
public class BaseTypography
{
public string[] FontFamily { get; set; }
public int FontWeight { get; set; }
public string FontSize { get; set; }
public double LineHeight { get; set; }
public string LetterSpacing { get; set; }
public string TextTransform { get; set; } = "none";
}
}