package ui import "image/color" var defaultDimensions *Dimensions var defaultFonts *Fonts var defaultPalette *Palette var defaultStyle *Style type Dimensions struct { OutlineWidth float32 ScrollbarWidth float32 TextPadding float32 } type Fonts struct { Default string } type Palette struct { // Background is the default background color. Background color.Color // Primary is used as a the main contrast color. Primary color.Color // PrimaryDark is a foreground version of the main contrast color. PrimaryDark color.Color // PrimaryHighlight is a light version of the main contrast color. PrimaryHighlight color.Color // PrimaryLight is a background version of the main contrast color. PrimaryLight color.Color // ShadedBackground is a darker version of the background color. ShadedBackground color.Color // Text is the default text color. Text color.Color // TextDisabled is disabled text color. TextDisabled color.Color // TextNegative is the text color associated with a negative event. TextNegative color.Color // TextOnPrimary is the text color when used with the main contrast color as background. TextOnPrimary color.Color // TextPositive is the text color associated with a positive event. TextPositive color.Color } type Style struct { Dimensions *Dimensions Fonts *Fonts Palette *Palette } func DefaultDimensions() *Dimensions { if defaultDimensions == nil { defaultDimensions = &Dimensions{ OutlineWidth: 2., ScrollbarWidth: 16., TextPadding: 8., } } return defaultDimensions } func DefaultFonts() *Fonts { if defaultFonts == nil { defaultFonts = &Fonts{ Default: "default", } } return defaultFonts } func DefaultPalette() *Palette { if defaultPalette == nil { defaultPalette = &Palette{ Background: color.White, Primary: RGBA(0x3F, 0x51, 0xB5, 0xFF), PrimaryDark: RGBA(0x00, 0x28, 0x84, 0xFF), PrimaryHighlight: RGBA(0xE8, 0xEA, 0xF6, 0xFF), PrimaryLight: RGBA(0x75, 0x7C, 0xE8, 0xFF), ShadedBackground: RGBA(0xFA, 0xFA, 0xFA, 0xFF), Text: color.Black, TextDisabled: RGBA(0xBD, 0xBD, 0xBD, 0xFF), TextNegative: RGBA(0xFF, 0x43, 0x36, 0xFF), TextOnPrimary: color.White, TextPositive: RGBA(0x4C, 0xAF, 0x50, 0xFF), } } return defaultPalette } func DefaultStyle() *Style { if defaultStyle == nil { defaultStyle = &Style{ Dimensions: DefaultDimensions(), Fonts: DefaultFonts(), Palette: DefaultPalette(), } } return defaultStyle } func RGBA(r, g, b, a byte) *color.RGBA { return &color.RGBA{R: r, G: g, B: b, A: a} }