@@ -134,10 +134,8 @@ func (s *splashCmp) Init() tea.Cmd {
134134// SetSize implements SplashPage.
135135func (s *splashCmp) SetSize(width int, height int) tea.Cmd {
136136 s.height = height
137− if width != s.width {
138− s.width = width
139− s.logoRendered = s.logoBlock()
140− }
137+ s.width = width
138+ s.logoRendered = s.logoBlock()
141139 // remove padding, logo height, gap, title space
142140 s.listHeight = s.height - lipgloss.Height(s.logoRendered) - (SplashScreenPaddingY * 2) - s.logoGap() - 2
143141 listWidth := min(60, width)
@@ -467,14 +465,25 @@ func (s *splashCmp) infoSection() string {
467465
468466func (s *splashCmp) logoBlock() string {
469467 t := styles.CurrentTheme()
470− return t.S().Base.Padding(0, 2).Width(s.width).Render(
468+ logoStyle := t.S().Base.Padding(0, 2).Width(s.width)
469+ if s.width < 40 || s.height < 20 {
470+ // If the width is too small, render a smaller version of the logo
471+ // NOTE: 20 is not correct because [splashCmp.height] is not the
472+ // *actual* window height, instead, it is the height of the splash
473+ // component and that depends on other variables like compact mode and
474+ // the height of the editor.
475+ return logoStyle.Render(
476+ logo.SmallRender(s.width - logoStyle.GetHorizontalFrameSize()),
477+ )
478+ }
479+ return logoStyle.Render(
471480 logo.Render(version.Version, false, logo.Opts{
472481 FieldColor: t.Primary,
473482 TitleColorA: t.Secondary,
474483 TitleColorB: t.Primary,
475484 CharmColor: t.Secondary,
476485 VersionColor: t.Primary,
477− Width: s.width - 4,
486+ Width: s.width - logoStyle.GetHorizontalFrameSize(),
478487 }),
479488 )
480489}