theme

package
v0.0.40 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 2, 2025 License: MIT Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AvailableThemes

func AvailableThemes() []string

AvailableThemes returns a list of all registered theme names.

func CurrentThemeName

func CurrentThemeName() string

CurrentThemeName returns the name of the currently active theme.

func RegisterTheme

func RegisterTheme(name string, theme Theme)

RegisterTheme adds a new theme to the registry. If this is the first theme registered, it becomes the default.

func SetTheme

func SetTheme(name string) error

SetTheme changes the active theme to the one with the specified name. Returns an error if the theme doesn't exist.

Types

type BaseTheme

type BaseTheme struct {
	// Base colors
	PrimaryColor   lipgloss.AdaptiveColor
	SecondaryColor lipgloss.AdaptiveColor
	AccentColor    lipgloss.AdaptiveColor

	// Status colors
	ErrorColor   lipgloss.AdaptiveColor
	WarningColor lipgloss.AdaptiveColor
	SuccessColor lipgloss.AdaptiveColor
	InfoColor    lipgloss.AdaptiveColor

	// Text colors
	TextColor           lipgloss.AdaptiveColor
	TextMutedColor      lipgloss.AdaptiveColor
	TextEmphasizedColor lipgloss.AdaptiveColor

	// Background colors
	BackgroundColor          lipgloss.AdaptiveColor
	BackgroundSecondaryColor lipgloss.AdaptiveColor
	BackgroundDarkerColor    lipgloss.AdaptiveColor

	// Border colors
	BorderNormalColor  lipgloss.AdaptiveColor
	BorderFocusedColor lipgloss.AdaptiveColor
	BorderDimColor     lipgloss.AdaptiveColor

	// Diff view colors
	DiffAddedColor               lipgloss.AdaptiveColor
	DiffRemovedColor             lipgloss.AdaptiveColor
	DiffContextColor             lipgloss.AdaptiveColor
	DiffHunkHeaderColor          lipgloss.AdaptiveColor
	DiffHighlightAddedColor      lipgloss.AdaptiveColor
	DiffHighlightRemovedColor    lipgloss.AdaptiveColor
	DiffAddedBgColor             lipgloss.AdaptiveColor
	DiffRemovedBgColor           lipgloss.AdaptiveColor
	DiffContextBgColor           lipgloss.AdaptiveColor
	DiffLineNumberColor          lipgloss.AdaptiveColor
	DiffAddedLineNumberBgColor   lipgloss.AdaptiveColor
	DiffRemovedLineNumberBgColor lipgloss.AdaptiveColor

	// Markdown colors
	MarkdownTextColor            lipgloss.AdaptiveColor
	MarkdownHeadingColor         lipgloss.AdaptiveColor
	MarkdownLinkColor            lipgloss.AdaptiveColor
	MarkdownLinkTextColor        lipgloss.AdaptiveColor
	MarkdownCodeColor            lipgloss.AdaptiveColor
	MarkdownBlockQuoteColor      lipgloss.AdaptiveColor
	MarkdownEmphColor            lipgloss.AdaptiveColor
	MarkdownStrongColor          lipgloss.AdaptiveColor
	MarkdownHorizontalRuleColor  lipgloss.AdaptiveColor
	MarkdownListItemColor        lipgloss.AdaptiveColor
	MarkdownListEnumerationColor lipgloss.AdaptiveColor
	MarkdownImageColor           lipgloss.AdaptiveColor
	MarkdownImageTextColor       lipgloss.AdaptiveColor
	MarkdownCodeBlockColor       lipgloss.AdaptiveColor

	// Syntax highlighting colors
	SyntaxCommentColor     lipgloss.AdaptiveColor
	SyntaxKeywordColor     lipgloss.AdaptiveColor
	SyntaxFunctionColor    lipgloss.AdaptiveColor
	SyntaxVariableColor    lipgloss.AdaptiveColor
	SyntaxStringColor      lipgloss.AdaptiveColor
	SyntaxNumberColor      lipgloss.AdaptiveColor
	SyntaxTypeColor        lipgloss.AdaptiveColor
	SyntaxOperatorColor    lipgloss.AdaptiveColor
	SyntaxPunctuationColor lipgloss.AdaptiveColor
}

BaseTheme provides a default implementation of the Theme interface that can be embedded in concrete theme implementations.

func (*BaseTheme) Accent

func (t *BaseTheme) Accent() lipgloss.AdaptiveColor

func (*BaseTheme) Background

func (t *BaseTheme) Background() lipgloss.AdaptiveColor

func (*BaseTheme) BackgroundDarker

func (t *BaseTheme) BackgroundDarker() lipgloss.AdaptiveColor

func (*BaseTheme) BackgroundSecondary

func (t *BaseTheme) BackgroundSecondary() lipgloss.AdaptiveColor

func (*BaseTheme) BorderDim

func (t *BaseTheme) BorderDim() lipgloss.AdaptiveColor

func (*BaseTheme) BorderFocused

func (t *BaseTheme) BorderFocused() lipgloss.AdaptiveColor

func (*BaseTheme) BorderNormal

func (t *BaseTheme) BorderNormal() lipgloss.AdaptiveColor

func (*BaseTheme) DiffAdded

func (t *BaseTheme) DiffAdded() lipgloss.AdaptiveColor

func (*BaseTheme) DiffAddedBg

func (t *BaseTheme) DiffAddedBg() lipgloss.AdaptiveColor

func (*BaseTheme) DiffAddedLineNumberBg

func (t *BaseTheme) DiffAddedLineNumberBg() lipgloss.AdaptiveColor

func (*BaseTheme) DiffContext

func (t *BaseTheme) DiffContext() lipgloss.AdaptiveColor

func (*BaseTheme) DiffContextBg

func (t *BaseTheme) DiffContextBg() lipgloss.AdaptiveColor

func (*BaseTheme) DiffHighlightAdded

func (t *BaseTheme) DiffHighlightAdded() lipgloss.AdaptiveColor

func (*BaseTheme) DiffHighlightRemoved

func (t *BaseTheme) DiffHighlightRemoved() lipgloss.AdaptiveColor

func (*BaseTheme) DiffHunkHeader

func (t *BaseTheme) DiffHunkHeader() lipgloss.AdaptiveColor

func (*BaseTheme) DiffLineNumber

func (t *BaseTheme) DiffLineNumber() lipgloss.AdaptiveColor

func (*BaseTheme) DiffRemoved

func (t *BaseTheme) DiffRemoved() lipgloss.AdaptiveColor

func (*BaseTheme) DiffRemovedBg

func (t *BaseTheme) DiffRemovedBg() lipgloss.AdaptiveColor

func (*BaseTheme) DiffRemovedLineNumberBg

func (t *BaseTheme) DiffRemovedLineNumberBg() lipgloss.AdaptiveColor

func (*BaseTheme) Error

func (t *BaseTheme) Error() lipgloss.AdaptiveColor

func (*BaseTheme) Info

func (t *BaseTheme) Info() lipgloss.AdaptiveColor

func (*BaseTheme) MarkdownBlockQuote

func (t *BaseTheme) MarkdownBlockQuote() lipgloss.AdaptiveColor

func (*BaseTheme) MarkdownCode

func (t *BaseTheme) MarkdownCode() lipgloss.AdaptiveColor

func (*BaseTheme) MarkdownCodeBlock

func (t *BaseTheme) MarkdownCodeBlock() lipgloss.AdaptiveColor

func (*BaseTheme) MarkdownEmph

func (t *BaseTheme) MarkdownEmph() lipgloss.AdaptiveColor

func (*BaseTheme) MarkdownHeading

func (t *BaseTheme) MarkdownHeading() lipgloss.AdaptiveColor

func (*BaseTheme) MarkdownHorizontalRule

func (t *BaseTheme) MarkdownHorizontalRule() lipgloss.AdaptiveColor

func (*BaseTheme) MarkdownImage

func (t *BaseTheme) MarkdownImage() lipgloss.AdaptiveColor

func (*BaseTheme) MarkdownImageText

func (t *BaseTheme) MarkdownImageText() lipgloss.AdaptiveColor
func (t *BaseTheme) MarkdownLink() lipgloss.AdaptiveColor

func (*BaseTheme) MarkdownLinkText

func (t *BaseTheme) MarkdownLinkText() lipgloss.AdaptiveColor

func (*BaseTheme) MarkdownListEnumeration

func (t *BaseTheme) MarkdownListEnumeration() lipgloss.AdaptiveColor

func (*BaseTheme) MarkdownListItem

func (t *BaseTheme) MarkdownListItem() lipgloss.AdaptiveColor

func (*BaseTheme) MarkdownStrong

func (t *BaseTheme) MarkdownStrong() lipgloss.AdaptiveColor

func (*BaseTheme) MarkdownText

func (t *BaseTheme) MarkdownText() lipgloss.AdaptiveColor

func (*BaseTheme) Primary

func (t *BaseTheme) Primary() lipgloss.AdaptiveColor

Implement the Theme interface for BaseTheme

func (*BaseTheme) Secondary

func (t *BaseTheme) Secondary() lipgloss.AdaptiveColor

func (*BaseTheme) Success

func (t *BaseTheme) Success() lipgloss.AdaptiveColor

func (*BaseTheme) SyntaxComment

func (t *BaseTheme) SyntaxComment() lipgloss.AdaptiveColor

func (*BaseTheme) SyntaxFunction

func (t *BaseTheme) SyntaxFunction() lipgloss.AdaptiveColor

func (*BaseTheme) SyntaxKeyword

func (t *BaseTheme) SyntaxKeyword() lipgloss.AdaptiveColor

func (*BaseTheme) SyntaxNumber

func (t *BaseTheme) SyntaxNumber() lipgloss.AdaptiveColor

func (*BaseTheme) SyntaxOperator

func (t *BaseTheme) SyntaxOperator() lipgloss.AdaptiveColor

func (*BaseTheme) SyntaxPunctuation

func (t *BaseTheme) SyntaxPunctuation() lipgloss.AdaptiveColor

func (*BaseTheme) SyntaxString

func (t *BaseTheme) SyntaxString() lipgloss.AdaptiveColor

func (*BaseTheme) SyntaxType

func (t *BaseTheme) SyntaxType() lipgloss.AdaptiveColor

func (*BaseTheme) SyntaxVariable

func (t *BaseTheme) SyntaxVariable() lipgloss.AdaptiveColor

func (*BaseTheme) Text

func (t *BaseTheme) Text() lipgloss.AdaptiveColor

func (*BaseTheme) TextEmphasized

func (t *BaseTheme) TextEmphasized() lipgloss.AdaptiveColor

func (*BaseTheme) TextMuted

func (t *BaseTheme) TextMuted() lipgloss.AdaptiveColor

func (*BaseTheme) Warning

func (t *BaseTheme) Warning() lipgloss.AdaptiveColor

type CatppuccinTheme

type CatppuccinTheme struct {
	BaseTheme
}

CatppuccinTheme implements the Theme interface with Catppuccin colors. It provides both dark (Mocha) and light (Latte) variants.

func NewCatppuccinTheme

func NewCatppuccinTheme() *CatppuccinTheme

NewCatppuccinTheme creates a new instance of the Catppuccin theme.

type DraculaTheme

type DraculaTheme struct {
	BaseTheme
}

DraculaTheme implements the Theme interface with Dracula colors. It provides both dark and light variants, though Dracula is primarily a dark theme.

func NewDraculaTheme

func NewDraculaTheme() *DraculaTheme

NewDraculaTheme creates a new instance of the Dracula theme.

type FlexokiTheme

type FlexokiTheme struct {
	BaseTheme
}

FlexokiTheme implements the Theme interface with Flexoki colors. It provides both dark and light variants.

func NewFlexokiTheme

func NewFlexokiTheme() *FlexokiTheme

NewFlexokiTheme creates a new instance of the Flexoki theme.

type GruvboxTheme

type GruvboxTheme struct {
	BaseTheme
}

GruvboxTheme implements the Theme interface with Gruvbox colors. It provides both dark and light variants.

func NewGruvboxTheme

func NewGruvboxTheme() *GruvboxTheme

NewGruvboxTheme creates a new instance of the Gruvbox theme.

type Manager

type Manager struct {
	// contains filtered or unexported fields
}

Manager handles theme registration, selection, and retrieval. It maintains a registry of available themes and tracks the currently active theme.

type MonokaiProTheme

type MonokaiProTheme struct {
	BaseTheme
}

MonokaiProTheme implements the Theme interface with Monokai Pro colors. It provides both dark and light variants.

func NewMonokaiProTheme

func NewMonokaiProTheme() *MonokaiProTheme

NewMonokaiProTheme creates a new instance of the Monokai Pro theme.

type OneDarkTheme

type OneDarkTheme struct {
	BaseTheme
}

OneDarkTheme implements the Theme interface with Atom's One Dark colors. It provides both dark and light variants.

func NewOneDarkTheme

func NewOneDarkTheme() *OneDarkTheme

NewOneDarkTheme creates a new instance of the One Dark theme.

type OpenCodeTheme

type OpenCodeTheme struct {
	BaseTheme
}

OpenCodeTheme implements the Theme interface with OpenCode brand colors. It provides both dark and light variants.

func NewOpenCodeTheme

func NewOpenCodeTheme() *OpenCodeTheme

NewOpenCodeTheme creates a new instance of the OpenCode theme.

type Theme

type Theme interface {
	// Base colors
	Primary() lipgloss.AdaptiveColor
	Secondary() lipgloss.AdaptiveColor
	Accent() lipgloss.AdaptiveColor

	// Status colors
	Error() lipgloss.AdaptiveColor
	Warning() lipgloss.AdaptiveColor
	Success() lipgloss.AdaptiveColor
	Info() lipgloss.AdaptiveColor

	// Text colors
	Text() lipgloss.AdaptiveColor
	TextMuted() lipgloss.AdaptiveColor
	TextEmphasized() lipgloss.AdaptiveColor

	// Background colors
	Background() lipgloss.AdaptiveColor
	BackgroundSecondary() lipgloss.AdaptiveColor
	BackgroundDarker() lipgloss.AdaptiveColor

	// Border colors
	BorderNormal() lipgloss.AdaptiveColor
	BorderFocused() lipgloss.AdaptiveColor
	BorderDim() lipgloss.AdaptiveColor

	// Diff view colors
	DiffAdded() lipgloss.AdaptiveColor
	DiffRemoved() lipgloss.AdaptiveColor
	DiffContext() lipgloss.AdaptiveColor
	DiffHunkHeader() lipgloss.AdaptiveColor
	DiffHighlightAdded() lipgloss.AdaptiveColor
	DiffHighlightRemoved() lipgloss.AdaptiveColor
	DiffAddedBg() lipgloss.AdaptiveColor
	DiffRemovedBg() lipgloss.AdaptiveColor
	DiffContextBg() lipgloss.AdaptiveColor
	DiffLineNumber() lipgloss.AdaptiveColor
	DiffAddedLineNumberBg() lipgloss.AdaptiveColor
	DiffRemovedLineNumberBg() lipgloss.AdaptiveColor

	// Markdown colors
	MarkdownText() lipgloss.AdaptiveColor
	MarkdownHeading() lipgloss.AdaptiveColor
	MarkdownLink() lipgloss.AdaptiveColor
	MarkdownLinkText() lipgloss.AdaptiveColor
	MarkdownCode() lipgloss.AdaptiveColor
	MarkdownBlockQuote() lipgloss.AdaptiveColor
	MarkdownEmph() lipgloss.AdaptiveColor
	MarkdownStrong() lipgloss.AdaptiveColor
	MarkdownHorizontalRule() lipgloss.AdaptiveColor
	MarkdownListItem() lipgloss.AdaptiveColor
	MarkdownListEnumeration() lipgloss.AdaptiveColor
	MarkdownImage() lipgloss.AdaptiveColor
	MarkdownImageText() lipgloss.AdaptiveColor
	MarkdownCodeBlock() lipgloss.AdaptiveColor

	// Syntax highlighting colors
	SyntaxComment() lipgloss.AdaptiveColor
	SyntaxKeyword() lipgloss.AdaptiveColor
	SyntaxFunction() lipgloss.AdaptiveColor
	SyntaxVariable() lipgloss.AdaptiveColor
	SyntaxString() lipgloss.AdaptiveColor
	SyntaxNumber() lipgloss.AdaptiveColor
	SyntaxType() lipgloss.AdaptiveColor
	SyntaxOperator() lipgloss.AdaptiveColor
	SyntaxPunctuation() lipgloss.AdaptiveColor
}

Theme defines the interface for all UI themes in the application. All colors must be defined as lipgloss.AdaptiveColor to support both light and dark terminal backgrounds.

func CurrentTheme

func CurrentTheme() Theme

CurrentTheme returns the currently active theme. If no theme is set, it returns nil.

func GetTheme

func GetTheme(name string) Theme

GetTheme returns a specific theme by name. Returns nil if the theme doesn't exist.

type TokyoNightTheme

type TokyoNightTheme struct {
	BaseTheme
}

TokyoNightTheme implements the Theme interface with Tokyo Night colors. It provides both dark and light variants.

func NewTokyoNightTheme

func NewTokyoNightTheme() *TokyoNightTheme

NewTokyoNightTheme creates a new instance of the Tokyo Night theme.

type TronTheme

type TronTheme struct {
	BaseTheme
}

TronTheme implements the Theme interface with Tron-inspired colors. It provides both dark and light variants, though Tron is primarily a dark theme.

func NewTronTheme

func NewTronTheme() *TronTheme

NewTronTheme creates a new instance of the Tron theme.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL