Fonts and font families

Fonts and font families

Font families

A font family is a collection of faces that appear in different font weight and styles:

type FontFamily struct {
	ID   int
	Name string
}

You can add faces to the font family:

func (ff *FontFamily) AddMember(fontsource *FontSource, weight FontWeight, style FontStyle) error

where the font source is:

type FontSource struct {
	Name         string
	FontFeatures []string
	Location     string
	Data         []byte
	SizeAdjust   float64 // 1 - SizeAdjust is the relative adjustment.
	// The sub font index within the font file.
	Index int
}

and the weight is a number between 100 and 900 or a predefined name FontWeight100, FontWeight200, …, FontWeight900 and the style is FontStyleNormal, FontStyleItalic or FontStyleOblique.

You can retrieve a font source with

func (ff *FontFamily) GetFontSource(weight FontWeight, style FontStyle) (*FontSource, error)

which will give you the closest match.

Converting font weight and style from string

To get a font weight or a font style from a string you can use these two functions:

func ResolveFontWeight(fw string, inheritedValue FontWeight) FontWeight
func ResolveFontStyle(fs string) FontStyle

The inherited value for the font weight is used when the string is “bolder”.