theme/mode.go

Functions

Functions

func IsDark

IsDark returns true if this mode represents a dark color scheme.

 

Note: This returns false for ModeSystem, as the actual scheme depends

on the operating system preference which must be determined elsewhere.

func (m ThemeMode) IsDark() bool {
	return m == ModeDark
}

func IsLight

IsLight returns true if this mode represents a light color scheme.

 

Note: This returns false for ModeSystem, as the actual scheme depends

on the operating system preference which must be determined elsewhere.

func (m ThemeMode) IsLight() bool {
	return m == ModeLight
}

func IsSystem

IsSystem returns true if this mode follows the system preference.

func (m ThemeMode) IsSystem() bool {
	return m == ModeSystem
}

func ResolvedMode

ResolvedMode returns the effective mode when system preference is known.

 

If the mode is ModeSystem, it returns lightIfSystem when preferLight is true,

otherwise ModeDark. For explicit modes (ModeLight, ModeDark), it returns

the mode unchanged.

 

Example:

 

mode := theme.ModeSystem

effectiveMode := mode.ResolvedMode(osPrefersDarkMode)

// effectiveMode will be ModeDark if osPrefersDarkMode is true

func (m ThemeMode) ResolvedMode(preferLight bool) ThemeMode {
	if m != ModeSystem {
		return m
	}
	if preferLight {
		return ModeLight
	}
	return ModeDark
}

func String

String returns a human-readable name for the theme mode.

func (m ThemeMode) String() string {
	switch m {
	case ModeLight:
		return modeLight
	case ModeDark:
		return modeDark
	case ModeSystem:
		return modeSystem
	default:
		return unknownStr
	}
}