From 2a8998ef00f6b1e00d4e6dab13bac50eff543938 Mon Sep 17 00:00:00 2001 From: Ayman Bagabas Date: Thu, 17 Jul 2025 12:34:55 -0400 Subject: [PATCH] fix(tui): logo: simplify logo word stretching --- internal/tui/components/logo/logo.go | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/internal/tui/components/logo/logo.go b/internal/tui/components/logo/logo.go index a4c9ac455405f6eb912ac46a5a1de83c5cd6fb53..c5902477b944602bd9b70398541631b3362b2e5f 100644 --- a/internal/tui/components/logo/logo.go +++ b/internal/tui/components/logo/logo.go @@ -44,13 +44,19 @@ func Render(version string, compact bool, o Opts) string { // Title. const spacing = 1 - crush := renderWord(spacing, !compact, + letterforms := []letterform{ letterC, letterR, letterU, letterSStylized, letterH, - ) + } + stretchIndex := -1 // -1 means no stretching. + if !compact { + stretchIndex = rand.IntN(len(letterforms)) + } + + crush := renderWord(spacing, stretchIndex, letterforms...) crushWidth := lipgloss.Width(crush) b := new(strings.Builder) for r := range strings.SplitSeq(crush, "\n") { @@ -124,8 +130,9 @@ func SmallRender(width int) string { return title } -// renderWord renders letterforms to fork a word. -func renderWord(spacing int, stretchRandomLetter bool, letterforms ...letterform) string { +// renderWord renders letterforms to fork a word. stretchIndex is the index of +// the letter to stretch, or -1 if no letter should be stretched. +func renderWord(spacing int, stretchIndex int, letterforms ...letterform) string { if spacing < 0 { spacing = 0 } @@ -133,11 +140,6 @@ func renderWord(spacing int, stretchRandomLetter bool, letterforms ...letterform renderedLetterforms := make([]string, len(letterforms)) // pick one letter randomly to stretch - stretchIndex := -1 - if stretchRandomLetter { - stretchIndex = rand.IntN(len(letterforms)) //nolint:gosec - } - for i, letter := range letterforms { renderedLetterforms[i] = letter(i == stretchIndex) }