#pragma once #include namespace Theme { namespace Ref { namespace Typeface { enum class Font { Plain, Brand }; enum class Weight { Weight_Regular, Weight_Medium }; } }; }; namespace Theme { namespace Sys { enum class Typescale { Display_Large, Display_Medium, Display_Small, Headline_Large, Headline_Medium, Headline_Small, Title_Large, Title_Medium, Title_Small, Label_Large, Label_Medium, Label_Small, Body_Large, Body_Medium, Body_Small }; }; }; class FontTokens { public: static std::string getFont(Theme::Ref::Typeface::Font font); static Theme::Ref::Typeface::Font getFont(Theme::Sys::Typescale typescale); static unsigned getLineHeight(Theme::Sys::Typescale typescale); static unsigned getSize(Theme::Sys::Typescale typescale); static unsigned getTracking(Theme::Sys::Typescale typescale); static unsigned getWeight(Theme::Ref::Typeface::Font font); static Theme::Ref::Typeface::Font getWeight(Theme::Sys::Typescale typescale); };