1
0
mirror of https://github.com/mrusme/neonmodem.git synced 2024-12-04 14:46:37 -05:00

Added ItemDetail to Theme engine

This commit is contained in:
マリウス 2022-12-31 18:32:04 -05:00
parent 6b63fc44c2
commit c1a6b9273e
No known key found for this signature in database
GPG Key ID: 272ED814BF63261F
3 changed files with 102 additions and 30 deletions

View File

@ -59,6 +59,12 @@ type Config struct {
Item struct {
Focused ThemeItemConfig
Blurred ThemeItemConfig
Selected ThemeItemConfig
}
ItemDetail struct {
Focused ThemeItemConfig
Blurred ThemeItemConfig
Selected ThemeItemConfig
}
}
@ -117,31 +123,55 @@ func Load() (Config, error) {
lipgloss.AdaptiveColor{Light: "#cccccc", Dark: "#333333"})
// PostsList Item:Focused
viper.SetDefault("Theme.PostsList.Item.Focused.Margin",
[]int{0, 0, 0, 0})
viper.SetDefault("Theme.PostsList.Item.Focused.Padding",
[]int{1, 1, 1, 1})
viper.SetDefault("Theme.PostsList.Item.Focused.Border.Border",
lipgloss.RoundedBorder())
viper.SetDefault("Theme.PostsList.Item.Focused.Border.Sides",
[]bool{true, true, true, true},
)
viper.SetDefault("Theme.PostsList.Item.Focused.Border.Foreground",
[]int{0, 0, 0, 2})
viper.SetDefault("Theme.PostsList.Item.Focused.Foreground",
lipgloss.AdaptiveColor{Light: "#333333", Dark: "#cccccc"})
// PostsList Item:Blurred
viper.SetDefault("Theme.PostsList.Item.Blurred.Margin",
[]int{0, 0, 0, 0})
viper.SetDefault("Theme.PostsList.Item.Blurred.Padding",
[]int{1, 1, 1, 1})
viper.SetDefault("Theme.PostsList.Item.Blurred.Border.Border",
lipgloss.RoundedBorder())
viper.SetDefault("Theme.PostsList.Item.Blurred.Border.Sides",
[]bool{true, true, true, true},
)
viper.SetDefault("Theme.PostsList.Item.Blurred.Border.Foreground",
[]int{0, 0, 0, 2})
viper.SetDefault("Theme.PostsList.Item.Blurred.Foreground",
lipgloss.AdaptiveColor{Light: "#cccccc", Dark: "#333333"})
// PostsList Item:Selected
viper.SetDefault("Theme.PostsList.Item.Selected.Padding",
[]int{0, 0, 0, 1})
viper.SetDefault("Theme.PostsList.Item.Selected.Border.Border",
lipgloss.NormalBorder())
viper.SetDefault("Theme.PostsList.Item.Selected.Border.Sides",
[]bool{false, false, false, true},
)
viper.SetDefault("Theme.PostsList.Item.Selected.Border.Foreground",
lipgloss.AdaptiveColor{Light: "#000000", Dark: "#FFFFFF"})
viper.SetDefault("Theme.PostsList.Item.Selected.Foreground",
lipgloss.AdaptiveColor{Light: "#000000", Dark: "#FFFFFF"})
// PostsList ItemDetail:Focused
viper.SetDefault("Theme.PostsList.ItemDetail.Focused.Padding",
[]int{0, 0, 0, 2})
viper.SetDefault("Theme.PostsList.ItemDetail.Focused.Foreground",
lipgloss.AdaptiveColor{Light: "#333333", Dark: "#cccccc"})
// PostsList ItemDetail:Blurred
viper.SetDefault("Theme.PostsList.ItemDetail.Blurred.Padding",
[]int{0, 0, 0, 2})
viper.SetDefault("Theme.PostsList.ItemDetail.Blurred.Foreground",
lipgloss.AdaptiveColor{Light: "#cccccc", Dark: "#333333"})
// PostsList ItemDetail:Selected
viper.SetDefault("Theme.PostsList.ItemDetail.Selected.Padding",
[]int{0, 0, 0, 1})
viper.SetDefault("Theme.PostsList.ItemDetail.Selected.Border.Border",
lipgloss.NormalBorder())
viper.SetDefault("Theme.PostsList.ItemDetail.Selected.Border.Sides",
[]bool{false, false, false, true},
)
viper.SetDefault("Theme.PostsList.ItemDetail.Selected.Border.Foreground",
lipgloss.AdaptiveColor{Light: "#000000", Dark: "#FFFFFF"})
viper.SetDefault("Theme.PostsList.ItemDetail.Selected.Foreground",
lipgloss.AdaptiveColor{Light: "#000000", Dark: "#FFFFFF"})
// DialogBox Window
viper.SetDefault("Theme.DialogBox.Window.Margin",
[]int{0, 0, 0, 0})

View File

@ -20,6 +20,12 @@ type Theme struct {
Item struct {
Focused lipgloss.Style
Blurred lipgloss.Style
Selected lipgloss.Style
}
ItemDetail struct {
Focused lipgloss.Style
Blurred lipgloss.Style
Selected lipgloss.Style
}
}
@ -35,14 +41,6 @@ type Theme struct {
func New(cfg *config.Config) (*Theme) {
t := new(Theme)
// viewportStyle = lipgloss.NewStyle().
// Margin(0, 0, 0, 0).
// Padding(0, 0).
// BorderTop(false).
// BorderLeft(false).
// BorderRight(false).
// BorderBottom(false)
//
t.PostsList.List.Focused = lipgloss.NewStyle().
Margin(cfg.Theme.PostsList.List.Focused.Margin...).
@ -80,6 +78,42 @@ func New(cfg *config.Config) (*Theme) {
Foreground(cfg.Theme.PostsList.Item.Blurred.Foreground).
Background(cfg.Theme.PostsList.Item.Blurred.Background)
t.PostsList.Item.Selected = lipgloss.NewStyle().
Margin(cfg.Theme.PostsList.Item.Selected.Margin...).
Padding(cfg.Theme.PostsList.Item.Selected.Padding...).
Border(cfg.Theme.PostsList.Item.Selected.Border.Border, cfg.Theme.PostsList.Item.Selected.Border.Sides...).
BorderForeground(cfg.Theme.PostsList.Item.Selected.Border.Foreground).
BorderBackground(cfg.Theme.PostsList.Item.Selected.Border.Background).
Foreground(cfg.Theme.PostsList.Item.Selected.Foreground).
Background(cfg.Theme.PostsList.Item.Selected.Background)
t.PostsList.ItemDetail.Focused = lipgloss.NewStyle().
Margin(cfg.Theme.PostsList.ItemDetail.Focused.Margin...).
Padding(cfg.Theme.PostsList.ItemDetail.Focused.Padding...).
Border(cfg.Theme.PostsList.ItemDetail.Focused.Border.Border, cfg.Theme.PostsList.ItemDetail.Focused.Border.Sides...).
BorderForeground(cfg.Theme.PostsList.ItemDetail.Focused.Border.Foreground).
BorderBackground(cfg.Theme.PostsList.ItemDetail.Focused.Border.Background).
Foreground(cfg.Theme.PostsList.ItemDetail.Focused.Foreground).
Background(cfg.Theme.PostsList.ItemDetail.Focused.Background)
t.PostsList.ItemDetail.Blurred = lipgloss.NewStyle().
Margin(cfg.Theme.PostsList.ItemDetail.Blurred.Margin...).
Padding(cfg.Theme.PostsList.ItemDetail.Blurred.Padding...).
Border(cfg.Theme.PostsList.ItemDetail.Blurred.Border.Border, cfg.Theme.PostsList.ItemDetail.Blurred.Border.Sides...).
BorderForeground(cfg.Theme.PostsList.ItemDetail.Blurred.Border.Foreground).
BorderBackground(cfg.Theme.PostsList.ItemDetail.Blurred.Border.Background).
Foreground(cfg.Theme.PostsList.ItemDetail.Blurred.Foreground).
Background(cfg.Theme.PostsList.ItemDetail.Blurred.Background)
t.PostsList.ItemDetail.Selected = lipgloss.NewStyle().
Margin(cfg.Theme.PostsList.ItemDetail.Selected.Margin...).
Padding(cfg.Theme.PostsList.ItemDetail.Selected.Padding...).
Border(cfg.Theme.PostsList.ItemDetail.Selected.Border.Border, cfg.Theme.PostsList.ItemDetail.Selected.Border.Sides...).
BorderForeground(cfg.Theme.PostsList.ItemDetail.Selected.Border.Foreground).
BorderBackground(cfg.Theme.PostsList.ItemDetail.Selected.Border.Background).
Foreground(cfg.Theme.PostsList.ItemDetail.Selected.Foreground).
Background(cfg.Theme.PostsList.ItemDetail.Selected.Background)
t.DialogBox.Window = lipgloss.NewStyle().
Margin(cfg.Theme.DialogBox.Window.Margin...).
Padding(cfg.Theme.DialogBox.Window.Padding...).

View File

@ -67,14 +67,22 @@ func (m Model) Init() tea.Cmd {
func NewModel(c *ctx.Ctx) Model {
m := Model{
ctx: c,
keymap: DefaultKeyMap,
focused: "list",
}
m.list = list.New(m.items, list.NewDefaultDelegate(), 0, 0)
listDelegate := list.NewDefaultDelegate()
listDelegate.Styles.NormalTitle = m.ctx.Theme.PostsList.Item.Focused
listDelegate.Styles.DimmedTitle = m.ctx.Theme.PostsList.Item.Blurred
listDelegate.Styles.SelectedTitle = m.ctx.Theme.PostsList.Item.Selected
listDelegate.Styles.NormalDesc = m.ctx.Theme.PostsList.ItemDetail.Focused
listDelegate.Styles.DimmedDesc = m.ctx.Theme.PostsList.ItemDetail.Blurred
listDelegate.Styles.SelectedDesc = m.ctx.Theme.PostsList.ItemDetail.Selected
m.list = list.New(m.items, listDelegate, 0, 0)
m.list.SetShowTitle(false)
m.list.SetShowStatusBar(false)
m.ctx = c
m.a, _ = aggregator.New(m.ctx)
return m