@@ -44,13 +44,19 @@ func Render(version string, compact bool, o Opts) string {
4444
4545 // Title.
4646 const spacing = 1
47− crush := renderWord(spacing, !compact,
47+ letterforms := []letterform{
4848 letterC,
4949 letterR,
5050 letterU,
5151 letterSStylized,
5252 letterH,
53− )
53+ }
54+ stretchIndex := -1 // -1 means no stretching.
55+ if !compact {
56+ stretchIndex = rand.IntN(len(letterforms))
57+ }
58+
59+ crush := renderWord(spacing, stretchIndex, letterforms...)
5460 crushWidth := lipgloss.Width(crush)
5561 b := new(strings.Builder)
5662 for r := range strings.SplitSeq(crush, "\n") {
@@ -124,8 +130,9 @@ func SmallRender(width int) string {
124130 return title
125131}
126132
127−// renderWord renders letterforms to fork a word.
128−func renderWord(spacing int, stretchRandomLetter bool, letterforms ...letterform) string {
133+// renderWord renders letterforms to fork a word. stretchIndex is the index of
134+// the letter to stretch, or -1 if no letter should be stretched.
135+func renderWord(spacing int, stretchIndex int, letterforms ...letterform) string {
129136 if spacing < 0 {
130137 spacing = 0
131138 }
@@ -133,11 +140,6 @@ func renderWord(spacing int, stretchRandomLetter bool, letterforms ...letterform
133140 renderedLetterforms := make([]string, len(letterforms))
134141
135142 // pick one letter randomly to stretch
136− stretchIndex := -1
137− if stretchRandomLetter {
138− stretchIndex = rand.IntN(len(letterforms)) //nolint:gosec
139− }
140−
141143 for i, letter := range letterforms {
142144 renderedLetterforms[i] = letter(i == stretchIndex)
143145 }