summaryrefslogtreecommitdiff
path: root/ui/views/tabs.go
diff options
context:
space:
mode:
authorSanto Cariotti <santo@dcariotti.me>2025-04-04 15:53:52 +0200
committerSanto Cariotti <santo@dcariotti.me>2025-04-04 15:54:24 +0200
commitb5a6e1108a7209b68b5fc050d8545ab32e9a9dc7 (patch)
treed1c565cdcb9ed9ea1e4d7e4144d37bc5ba9a7780 /ui/views/tabs.go
parent400a81fdae4ea1ff2263024a7cd0618fc31076ca (diff)
Signup page
Diffstat (limited to 'ui/views/tabs.go')
-rw-r--r--ui/views/tabs.go37
1 files changed, 37 insertions, 0 deletions
diff --git a/ui/views/tabs.go b/ui/views/tabs.go
new file mode 100644
index 0000000..edfd02a
--- /dev/null
+++ b/ui/views/tabs.go
@@ -0,0 +1,37 @@
+package views
+
+import (
+ "fmt"
+
+ "github.com/charmbracelet/lipgloss"
+)
+
+// TabType represents the available tabs
+
+type TabType int
+
+var (
+ highlightColor = lipgloss.Color("#7ee2a8")
+ tabStyle = lipgloss.NewStyle().Border(lipgloss.RoundedBorder()).BorderForeground(highlightColor).Padding(0, 2)
+ inactiveTabStyle = tabStyle
+ activeTabStyle = tabStyle
+ altCodeStyle = lipgloss.NewStyle().Foreground(lipgloss.Color("#666666")).Bold(true)
+ windowStyle = lipgloss.NewStyle().BorderForeground(highlightColor).Padding(2, 0).Align(lipgloss.Center).Border(lipgloss.RoundedBorder())
+)
+
+func getTabsRow(tabsText []string, activeTab TabType) string {
+ tabs := make([]string, len(tabsText))
+
+ for i, tab := range tabsText {
+ if TabType(i) == activeTab {
+ tabs[i] = fmt.Sprintf("%s %s", altCodeStyle.Render(fmt.Sprintf("Alt+%d", i+1)), lipgloss.NewStyle().Bold(true).Foreground(highlightColor).Render(tab))
+ tabs[i] = activeTabStyle.Foreground(highlightColor).Render(tabs[i])
+ } else {
+ tabs[i] = fmt.Sprintf("%s %s", altCodeStyle.Render(fmt.Sprintf("Alt+%d", i+1)), lipgloss.NewStyle().Render(tab))
+ tabs[i] = inactiveTabStyle.Foreground(highlightColor).Render(tabs[i])
+ }
+ }
+
+ return lipgloss.JoinHorizontal(lipgloss.Top, tabs...)
+
+}