@@ -1447,66 +1447,73 @@ func (m *AppModel) viewDashboard() string {
14471447}
14481448
14491449// renderWelcomeMessage renders a friendly getting started message for first-time users.
1450+ // Focuses on demonstrating the mental model: describe what you want, AI does it, review.
14501451func (m * AppModel ) renderWelcomeMessage (height int ) string {
1451- // Welcome title
1452+ // Styles
14521453 titleStyle := lipgloss .NewStyle ().
14531454 Bold (true ).
1454- Foreground (ColorPrimary ).
1455- MarginBottom (1 )
1455+ Foreground (ColorPrimary )
14561456
1457- // Subtitle style
14581457 subtitleStyle := lipgloss .NewStyle ().
1459- Foreground (ColorSecondary ).
1460- MarginBottom (2 )
1458+ Foreground (ColorSecondary )
1459+
1460+ stepNumStyle := lipgloss .NewStyle ().
1461+ Bold (true ).
1462+ Foreground (ColorPrimary )
1463+
1464+ stepDescStyle := lipgloss .NewStyle ().
1465+ Foreground (lipgloss .Color ("252" ))
14611466
1462- // Action style for keyboard shortcuts
14631467 actionStyle := lipgloss .NewStyle ().
14641468 Bold (true ).
14651469 Foreground (ColorPrimary )
14661470
1467- // Description style
14681471 descStyle := lipgloss .NewStyle ().
14691472 Foreground (ColorMuted )
14701473
14711474 // Build the welcome content
14721475 var lines []string
14731476
14741477 lines = append (lines , titleStyle .Render ("Welcome to TaskYou!" ))
1475- lines = append (lines , subtitleStyle .Render ("Your AI-powered task management system" ))
14761478 lines = append (lines , "" )
14771479
1478- // Key actions
1479- lines = append (lines , lipgloss .JoinHorizontal (lipgloss .Top ,
1480- actionStyle .Render ("n" ),
1481- descStyle .Render (" Create your first task" ),
1482- ))
1480+ // Mental model - how it works in 3 steps
1481+ lines = append (lines , subtitleStyle .Render ("How it works:" ))
14831482 lines = append (lines , "" )
14841483
14851484 lines = append (lines , lipgloss .JoinHorizontal (lipgloss .Top ,
1486- actionStyle .Render ("s" ),
1487- descStyle .Render (" Open settings to configure projects" ),
1485+ stepNumStyle .Render ("1. " ),
1486+ stepDescStyle .Render ("Describe what you want done" ),
1487+ ))
1488+ lines = append (lines , lipgloss .JoinHorizontal (lipgloss .Top ,
1489+ stepNumStyle .Render ("2. " ),
1490+ stepDescStyle .Render ("AI works on it autonomously" ),
1491+ ))
1492+ lines = append (lines , lipgloss .JoinHorizontal (lipgloss .Top ,
1493+ stepNumStyle .Render ("3. " ),
1494+ stepDescStyle .Render ("Review the result" ),
14881495 ))
14891496 lines = append (lines , "" )
14901497
1498+ // Quick start action
14911499 lines = append (lines , lipgloss .JoinHorizontal (lipgloss .Top ,
1492- actionStyle .Render ("?" ),
1493- descStyle .Render (" Show all keyboard shortcuts" ),
1500+ descStyle .Render ("Press " ),
1501+ actionStyle .Render ("n" ),
1502+ descStyle .Render (" to create your first task" ),
14941503 ))
14951504 lines = append (lines , "" )
14961505
14971506 // Executor status
14981507 if len (m .availableExecutors ) == 0 {
14991508 warningStyle := lipgloss .NewStyle ().
1500- Foreground (ColorWarning ).
1501- MarginTop (1 )
1502- lines = append (lines , warningStyle .Render (IconBlocked ()+ " Install an AI executor to run tasks" ))
1503- lines = append (lines , descStyle .Render (" Visit: https://code.claude.com/docs/en/overview" ))
1509+ Foreground (ColorWarning )
1510+ lines = append (lines , warningStyle .Render (IconBlocked ()+ " No AI executor found" ))
1511+ lines = append (lines , descStyle .Render (" Install one: claude, codex, or gemini" ))
15041512 } else {
15051513 readyStyle := lipgloss .NewStyle ().
1506- Foreground (ColorDone ).
1507- MarginTop (1 )
1514+ Foreground (ColorDone )
15081515 executorList := strings .Join (m .availableExecutors , ", " )
1509- lines = append (lines , readyStyle .Render (IconDone ()+ " Ready to run tasks with: " + executorList ))
1516+ lines = append (lines , readyStyle .Render (IconDone ()+ " Ready with: " + executorList ))
15101517 }
15111518
15121519 content := lipgloss .JoinVertical (lipgloss .Left , lines ... )
@@ -1515,8 +1522,8 @@ func (m *AppModel) renderWelcomeMessage(height int) string {
15151522 boxStyle := lipgloss .NewStyle ().
15161523 Border (lipgloss .RoundedBorder ()).
15171524 BorderForeground (ColorPrimary ).
1518- Padding (2 , 4 ).
1519- Width (min (60 , m .width - 4 ))
1525+ Padding (1 , 3 ).
1526+ Width (min (50 , m .width - 4 ))
15201527
15211528 boxed := boxStyle .Render (content )
15221529
0 commit comments