Files
trufflehog/pkg/tui/styles/styles.go
Kashif Khan 54ea455ac4 Reverted cloud.google.com/go/secretmanager to v1.14.2 (#4022)
* Update go.mod to resolve grpc/stats/opentelemetry ambiguity

* fallback

* fallback

* go mod tidy

* resolved linters

* resolved linters

* revert back

* resolved linters
2025-04-08 07:12:28 -07:00

494 lines
11 KiB
Go

package styles
import (
"github.com/charmbracelet/lipgloss"
)
// XXX: For now, this is in its own package so that it can be shared between
// different packages without incurring an illegal import cycle.
// https://github.com/charmbracelet/lipgloss#colors
var Colors = map[string]string{
"softblack": "#1e1e1e",
"charcoal": "#252525",
"stone": "#5a5a5a",
"smoke": "#999999",
"sand": "#e1deda",
"cloud": "#f4efe9",
"offwhite": "#faf8f7",
"fern": "#38645a",
"sprout": "#5bb381",
"gold": "#ae8c57",
"bronze": "#89553d",
"coral": "#c15750",
"violet": "#6b5b9a",
}
var (
BoldTextStyle = lipgloss.NewStyle().Bold(true)
PrimaryTextStyle = lipgloss.NewStyle().Foreground(
lipgloss.Color("28")) // green
HintTextStyle = lipgloss.NewStyle().Foreground(
lipgloss.Color("8")) // grey
CodeTextStyle = lipgloss.NewStyle().Background(lipgloss.Color("130")).Foreground(lipgloss.Color("15"))
)
var AppStyle = lipgloss.NewStyle().Padding(1, 2)
// Styles defines styles for the UI.
type Styles struct {
ActiveBorderColor lipgloss.Color
InactiveBorderColor lipgloss.Color
App lipgloss.Style
ServerName lipgloss.Style
TopLevelNormalTab lipgloss.Style
TopLevelActiveTab lipgloss.Style
TopLevelActiveTabDot lipgloss.Style
MenuItem lipgloss.Style
MenuLastUpdate lipgloss.Style
RepoSelector struct {
Normal struct {
Base lipgloss.Style
Title lipgloss.Style
Desc lipgloss.Style
Command lipgloss.Style
Updated lipgloss.Style
}
Active struct {
Base lipgloss.Style
Title lipgloss.Style
Desc lipgloss.Style
Command lipgloss.Style
Updated lipgloss.Style
}
}
Repo struct {
Base lipgloss.Style
Title lipgloss.Style
Command lipgloss.Style
Body lipgloss.Style
Header lipgloss.Style
HeaderName lipgloss.Style
HeaderDesc lipgloss.Style
}
Footer lipgloss.Style
Branch lipgloss.Style
HelpKey lipgloss.Style
HelpValue lipgloss.Style
HelpDivider lipgloss.Style
URLStyle lipgloss.Style
Error lipgloss.Style
ErrorTitle lipgloss.Style
ErrorBody lipgloss.Style
AboutNoReadme lipgloss.Style
LogItem struct {
Normal struct {
Base lipgloss.Style
Hash lipgloss.Style
Title lipgloss.Style
Desc lipgloss.Style
Keyword lipgloss.Style
}
Active struct {
Base lipgloss.Style
Hash lipgloss.Style
Title lipgloss.Style
Desc lipgloss.Style
Keyword lipgloss.Style
}
}
Log struct {
Commit lipgloss.Style
CommitHash lipgloss.Style
CommitAuthor lipgloss.Style
CommitDate lipgloss.Style
CommitBody lipgloss.Style
CommitStatsAdd lipgloss.Style
CommitStatsDel lipgloss.Style
Paginator lipgloss.Style
}
Ref struct {
Normal struct {
Item lipgloss.Style
ItemTag lipgloss.Style
}
Active struct {
Item lipgloss.Style
ItemTag lipgloss.Style
}
ItemSelector lipgloss.Style
ItemBranch lipgloss.Style
Paginator lipgloss.Style
}
Tree struct {
Normal struct {
FileName lipgloss.Style
FileDir lipgloss.Style
FileMode lipgloss.Style
FileSize lipgloss.Style
}
Active struct {
FileName lipgloss.Style
FileDir lipgloss.Style
FileMode lipgloss.Style
FileSize lipgloss.Style
}
Selector lipgloss.Style
FileContent lipgloss.Style
Paginator lipgloss.Style
NoItems lipgloss.Style
}
Spinner lipgloss.Style
CodeNoContent lipgloss.Style
StatusBar lipgloss.Style
StatusBarKey lipgloss.Style
StatusBarValue lipgloss.Style
StatusBarInfo lipgloss.Style
StatusBarBranch lipgloss.Style
StatusBarHelp lipgloss.Style
Tabs lipgloss.Style
TabInactive lipgloss.Style
TabActive lipgloss.Style
TabSeparator lipgloss.Style
}
// DefaultStyles returns default styles for the UI.
func DefaultStyles() *Styles {
highlightColor := lipgloss.Color("210")
highlightColorDim := lipgloss.Color("174")
selectorColor := lipgloss.Color("167")
hashColor := lipgloss.Color("185")
s := new(Styles)
s.ActiveBorderColor = lipgloss.Color("62")
s.InactiveBorderColor = lipgloss.Color("241")
s.App = lipgloss.NewStyle().
Margin(1, 2)
s.ServerName = lipgloss.NewStyle().
Height(1).
MarginLeft(1).
MarginBottom(1).
Padding(0, 1).
Background(lipgloss.Color("57")).
Foreground(lipgloss.Color("229")).
Bold(true)
s.TopLevelNormalTab = lipgloss.NewStyle().
MarginRight(2)
s.TopLevelActiveTab = s.TopLevelNormalTab.
Foreground(lipgloss.Color("36"))
s.TopLevelActiveTabDot = lipgloss.NewStyle().
Foreground(lipgloss.Color("36"))
s.RepoSelector.Normal.Base = lipgloss.NewStyle().
PaddingLeft(1).
Border(lipgloss.Border{Left: " "}, false, false, false, true).
Height(3)
s.RepoSelector.Normal.Title = lipgloss.NewStyle().Bold(true)
s.RepoSelector.Normal.Desc = lipgloss.NewStyle().
Foreground(lipgloss.Color("243"))
s.RepoSelector.Normal.Command = lipgloss.NewStyle().
Foreground(lipgloss.Color("132"))
s.RepoSelector.Normal.Updated = lipgloss.NewStyle().
Foreground(lipgloss.Color("243"))
s.RepoSelector.Active.Base = s.RepoSelector.Normal.Base.
BorderStyle(lipgloss.Border{Left: "┃"}).
BorderForeground(lipgloss.Color("176"))
s.RepoSelector.Active.Title = s.RepoSelector.Normal.Title.
Foreground(lipgloss.Color("212"))
s.RepoSelector.Active.Desc = s.RepoSelector.Normal.Desc.
Foreground(lipgloss.Color("246"))
s.RepoSelector.Active.Updated = s.RepoSelector.Normal.Updated.
Foreground(lipgloss.Color("212"))
s.RepoSelector.Active.Command = s.RepoSelector.Normal.Command.
Foreground(lipgloss.Color("204"))
s.MenuItem = lipgloss.NewStyle().
PaddingLeft(1).
Border(lipgloss.Border{
Left: " ",
}, false, false, false, true).
Height(3)
s.MenuLastUpdate = lipgloss.NewStyle().
Foreground(lipgloss.Color("241")).
Align(lipgloss.Right)
s.Repo.Base = lipgloss.NewStyle()
s.Repo.Title = lipgloss.NewStyle().
Padding(0, 2)
s.Repo.Command = lipgloss.NewStyle().
Foreground(lipgloss.Color("168"))
s.Repo.Body = lipgloss.NewStyle().
Margin(1, 0)
s.Repo.Header = lipgloss.NewStyle().
Height(2).
Border(lipgloss.NormalBorder(), false, false, true, false).
BorderForeground(lipgloss.Color("236"))
s.Repo.HeaderName = lipgloss.NewStyle().
Foreground(lipgloss.Color("212")).
Bold(true)
s.Repo.HeaderDesc = lipgloss.NewStyle().
Foreground(lipgloss.Color("243"))
s.Footer = lipgloss.NewStyle().
MarginTop(1).
Padding(0, 1).
Height(1)
s.Branch = lipgloss.NewStyle().
Foreground(lipgloss.Color("203")).
Background(lipgloss.Color("236")).
Padding(0, 1)
s.HelpKey = lipgloss.NewStyle().
Foreground(lipgloss.Color("241"))
s.HelpValue = lipgloss.NewStyle().
Foreground(lipgloss.Color("239"))
s.HelpDivider = lipgloss.NewStyle().
Foreground(lipgloss.Color("237")).
SetString(" • ")
s.URLStyle = lipgloss.NewStyle().
MarginLeft(1).
Foreground(lipgloss.Color("168"))
s.Error = lipgloss.NewStyle().
MarginTop(2)
s.ErrorTitle = lipgloss.NewStyle().
Foreground(lipgloss.Color("230")).
Background(lipgloss.Color("204")).
Bold(true).
Padding(0, 1)
s.ErrorBody = lipgloss.NewStyle().
Foreground(lipgloss.Color("252")).
MarginLeft(2)
s.AboutNoReadme = lipgloss.NewStyle().
MarginTop(1).
MarginLeft(2).
Foreground(lipgloss.Color("242"))
s.LogItem.Normal.Base = lipgloss.NewStyle().
Border(lipgloss.Border{
Left: " ",
}, false, false, false, true).
PaddingLeft(1)
s.LogItem.Active.Base = s.LogItem.Normal.Base.
Border(lipgloss.Border{
Left: "┃",
}, false, false, false, true).
BorderForeground(selectorColor)
s.LogItem.Active.Hash = s.LogItem.Normal.Hash.
Foreground(hashColor)
s.LogItem.Active.Hash = lipgloss.NewStyle().
Bold(true).
Foreground(highlightColor)
s.LogItem.Normal.Title = lipgloss.NewStyle().
Foreground(lipgloss.Color("105"))
s.LogItem.Active.Title = lipgloss.NewStyle().
Foreground(highlightColor).
Bold(true)
s.LogItem.Normal.Desc = lipgloss.NewStyle().
Foreground(lipgloss.Color("246"))
s.LogItem.Active.Desc = lipgloss.NewStyle().
Foreground(lipgloss.Color("95"))
s.LogItem.Active.Keyword = s.LogItem.Active.Desc.
Foreground(highlightColorDim)
s.LogItem.Normal.Hash = lipgloss.NewStyle().
Foreground(hashColor)
s.LogItem.Active.Hash = lipgloss.NewStyle().
Foreground(highlightColor)
s.Log.Commit = lipgloss.NewStyle().
Margin(0, 2)
s.Log.CommitHash = lipgloss.NewStyle().
Foreground(hashColor).
Bold(true)
s.Log.CommitBody = lipgloss.NewStyle().
MarginTop(1).
MarginLeft(2)
s.Log.CommitStatsAdd = lipgloss.NewStyle().
Foreground(lipgloss.Color("42")).
Bold(true)
s.Log.CommitStatsDel = lipgloss.NewStyle().
Foreground(lipgloss.Color("203")).
Bold(true)
s.Log.Paginator = lipgloss.NewStyle().
Margin(0).
Align(lipgloss.Center)
s.Ref.Normal.Item = lipgloss.NewStyle()
s.Ref.ItemSelector = lipgloss.NewStyle().
Foreground(selectorColor).
SetString("> ")
s.Ref.Active.Item = lipgloss.NewStyle().
Foreground(highlightColorDim)
s.Ref.ItemBranch = lipgloss.NewStyle()
s.Ref.Normal.ItemTag = lipgloss.NewStyle().
Foreground(lipgloss.Color("39"))
s.Ref.Active.ItemTag = lipgloss.NewStyle().
Bold(true).
Foreground(highlightColor)
s.Ref.Active.Item = lipgloss.NewStyle().
Bold(true).
Foreground(highlightColor)
s.Ref.Paginator = s.Log.Paginator
s.Tree.Selector = s.Tree.Normal.FileName.
Width(1).
Foreground(selectorColor)
s.Tree.Normal.FileName = lipgloss.NewStyle().
MarginLeft(1)
s.Tree.Active.FileName = s.Tree.Normal.FileName.
Bold(true).
Foreground(highlightColor)
s.Tree.Normal.FileDir = lipgloss.NewStyle().
Foreground(lipgloss.Color("39"))
s.Tree.Active.FileDir = lipgloss.NewStyle().
Foreground(highlightColor)
s.Tree.Normal.FileMode = s.Tree.Active.FileName.
Width(10).
Foreground(lipgloss.Color("243"))
s.Tree.Active.FileMode = s.Tree.Normal.FileMode.
Foreground(highlightColorDim)
s.Tree.Normal.FileSize = s.Tree.Normal.FileName.
Foreground(lipgloss.Color("243"))
s.Tree.Active.FileSize = s.Tree.Normal.FileName.
Foreground(highlightColorDim)
s.Tree.FileContent = lipgloss.NewStyle()
s.Tree.Paginator = s.Log.Paginator
s.Tree.NoItems = s.AboutNoReadme
s.Spinner = lipgloss.NewStyle().
MarginTop(1).
MarginLeft(2).
Foreground(lipgloss.Color("205"))
s.CodeNoContent = lipgloss.NewStyle().
SetString("No Content.").
MarginTop(1).
MarginLeft(2).
Foreground(lipgloss.Color("242"))
s.StatusBar = lipgloss.NewStyle().
Height(1)
s.StatusBarKey = lipgloss.NewStyle().
Bold(true).
Padding(0, 1).
Background(lipgloss.Color("206")).
Foreground(lipgloss.Color("228"))
s.StatusBarValue = lipgloss.NewStyle().
Padding(0, 1).
Background(lipgloss.Color("235")).
Foreground(lipgloss.Color("243"))
s.StatusBarInfo = lipgloss.NewStyle().
Padding(0, 1).
Background(lipgloss.Color("212")).
Foreground(lipgloss.Color("230"))
s.StatusBarBranch = lipgloss.NewStyle().
Padding(0, 1).
Background(lipgloss.Color("62")).
Foreground(lipgloss.Color("230"))
s.StatusBarHelp = lipgloss.NewStyle().
Padding(0, 1).
Background(lipgloss.Color("237")).
Foreground(lipgloss.Color("243"))
s.Tabs = lipgloss.NewStyle().
Height(1)
s.TabInactive = lipgloss.NewStyle()
s.TabActive = lipgloss.NewStyle().
Underline(true).
Foreground(lipgloss.Color("36"))
s.TabSeparator = lipgloss.NewStyle().
SetString("│").
Padding(0, 1).
Foreground(lipgloss.Color("238"))
return s
}