package ui import "image/color" var defaultDimensions *Dimensions var defaultFonts *Fonts var defaultPalette *Palette var defaultStyle *Style type Dimensions struct { 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 // PrimaryHighlight is a highlighted version of the main contrast color. PrimaryHighlight color.Color // PrimaryBackground is a background version of the main contrast color. PrimaryBackground 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 // TextOnPrimary is the text color when used with the main contrast color as background. TextOnPrimary color.Color } type Style struct { Dimensions *Dimensions Fonts *Fonts Palette *Palette } func DefaultDimensions() *Dimensions { if defaultDimensions == nil { defaultDimensions = &Dimensions{ 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), PrimaryHighlight: RGBA(0x5C, 0x6B, 0xC0, 0xFF), PrimaryBackground: RGBA(0x9F, 0xA8, 0xDA, 0xFF), ShadedBackground: RGBA(0xFA, 0xFA, 0xFA, 0xFF), Text: color.Black, TextDisabled: RGBA(0xBD, 0xBD, 0xBD, 0xFF), TextOnPrimary: color.White, } } 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} }