stuff-from-scratch/src/ui/ui_elements/style/FontTokens.h
2023-01-18 17:31:16 +00:00

70 lines
1.3 KiB
C++

#pragma once
#include <string>
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);
};