Date: May 2, 2026
Source: ui/ folder (5 mockup images)
Total Size: 4.2 MB
This document analyzes the existing UI mockups to inform implementation decisions and ensure alignment with PRD requirements.
| File | Size | Purpose | Priority |
|---|---|---|---|
| bible_reader_study_view.png | 782 KB | Main study view with 3 panels | High |
| chat.png | 1,068 KB | AI chat integration | High |
| dual-panel-parallel-view.png | 1,115 KB | Side-by-side comparison | High |
| no-content-view.png | 306 KB | Empty state | Medium |
| upload-bible-usfm.png | 962 KB | Upload modal | High |
File: bible_reader_study_view.png (782 KB)
Three-Panel Layout:
- Left Panel: "Bible Reader Study View" - Gospel of John 3:1-EV
- Center Panel: "Interlinear View" - Greek/English word-by-word translation
- Right Panel: "Dictionary" - Word definitions (λόγος - Logos)
Top Navigation Bar:
- Logo (Bible icon with blue accent)
- Search bar (prominent, left-aligned)
- Navigation tabs: Home (active), Library, Plans, Settings
Panel Headers:
- Panel title (e.g., "John - Bible", "Interlinear View", "Dictionary")
- Action icons: Edit (✏️), Star (⭐), Book (📖), More (•••)
- Close button (×) on dictionary panel
Bible Text Panel:
- Heading: "Bible Reader Study View" (large, bold)
- Section heading: "Gospel of John 3:1-EV" (with reference)
- Verse formatting:
- Superscript verse numbers (¹, ², ³, etc.)
- Body text: 16px, comfortable line-height
- Proper paragraph breaks
- CTA Button: Blue "Study" button at bottom
Interlinear Panel:
- Translation selector: "Greek/English Interlinear (ESV)" (dropdown)
- Word-by-word layout:
- Original Greek text (large, top)
- Transliteration (middle)
- English translation (bottom)
- Word-level alignment in grid format
- Bottom tabs: Cross-References, Footnotes, Dictionary
Dictionary Panel:
- Word entry: Greek word λόγος (large heading)
- Pronunciation: "Logos (schlilten)."
- Definition: Full paragraph explaining meaning
- Cross-references section: Links to John 18-24, John 8:20, etc.
Bottom Navigation Bar:
- Audio icon (🔊)
- Search icon (🔍)
- Bookmarks icon (🔖)
- Labels for each icon
Colors:
- Background: White (#FFFFFF)
- Top nav: Light gray (#F8F9FA)
- Panel borders: Light gray (#E0E0E0)
- Primary blue: #1976D2 (buttons, links, active states)
- Text: Dark gray (#212121)
- Muted text: Medium gray (#757575)
Typography:
- Headings: Sans-serif, bold
- Body: Sans-serif, regular (likely Roboto or Inter)
- Greek text: Serif font for readability
- Verse numbers: Superscript, smaller size
Spacing:
- Generous padding (16-20px in panels)
- Comfortable line-height (1.6-1.8)
- Clear section separation
✅ Matches PRD:
- Multi-panel layout
- Bible text formatting with verse numbers
- Action buttons and navigation
- Shows 3 specialized panels (study tools) vs. our "multiple Bible translations"
- Has top navigation bar (Home/Library/Plans/Settings) - we planned no header
- Includes bottom navigation bar - we planned no footer
- Has advanced features (Interlinear, Dictionary) not in MVP scope
Recommendation: Use this as inspiration but simplify for MVP:
- Remove Interlinear and Dictionary panels (future features)
- Focus on basic Bible reading with multiple translations
- Keep clean panel layout and formatting style
File: chat.png (1,068 KB)
Three-Panel Layout:
- Left Panel: "Psalm 23:1" explanation (AI response)
- Center Panel: Bible text (Psalm 23)
- Right Panel: Dictionary (λόγος definition)
AI Chat Panel (Left):
- User query (top): "Explain Psalm 23:1 in context." (blue bubble, right-aligned)
- AI response: Long explanation text (white/gray background, left-aligned)
- AI icon: Small avatar icon next to response
- Pagination dots: Three dots showing multiple response pages
- Input area (bottom):
- Text input with "Thinking..." placeholder
- Send button (arrow icon)
- Model selector: "Model: Gemini" dropdown
- Voice button: Red "End" button (indicating active recording)
Voice Chat Active State:
- Red "End" button with microphone icon
- Status text: "Thinking..."
- Model selector showing "Gemini"
Message Layout:
- User message: Blue bubble, right-aligned
- AI response: Text block with avatar, left-aligned
- Clear visual distinction
Bottom Bar:
- Audio icon (active - red dot)
- Search icon
- Bookmarks icon
Chat Bubbles:
- User: Blue background (#1976D2), white text, rounded corners
- AI: White/light gray background, dark text, left-aligned
Voice Status:
- Active recording: Red "End" button
- Status text below input
- Model selector integrated
✅ Matches PRD:
- Chat interface integrated with Bible reading
- Voice chat capability
- Model selection (OpenAI/Gemini)
- Message history
- Chat takes full left panel vs. our "collapsible sidebar section"
- Voice button is "End" (active) vs. our "Voice/End toggle"
- No clear indication of OpenAI vs Gemini mode switch
Recommendation: Adapt for our sidebar approach:
- Chat in collapsible sidebar section (400px expanded)
- Smaller chat area than full panel
- Keep voice button states (Ready/Listening/Thinking/End)
- Add model toggle more prominently
File: dual-panel-parallel-view.png (1,115 KB)
Layout Structure:
- Left Sidebar: Bible list (ABC, ESV, NIV, CPE, DSG, PEP, SCH, PLP) + AI Chat collapsed
- Left Panel: Genesis 1 (ESV)
- Right Panel: Genesis 1 (NIV)
Left Sidebar (280px):
- Top: "John - Bible" header with close (×)
- Bible list:
- Compact list of translations
- ESV and NIV highlighted (selected)
- Scrollable list with 8+ items
- Clean, minimal design
- Bottom: "AI Chat" section with close (×)
- Blue prompt bubble: "Compare the word 'beginning' in these versions."
- AI response visible (partial)
Panel Layout:
- 50/50 split vertically
- Blue divider between panels (drag handle)
- Panel headers:
- Title: "Genesis 1 (ESV)" / "Genesis 1 (NIV)"
- Action icons: Edit, Star, Book, More
- Close button (×)
Bible Text Content:
- Chapter heading: "Genesis 1 (ESV)" (large, bold, centered)
- Verse text:
- Verse numbers as superscript (¹, ², ³, etc.)
- Clean paragraphs
- Proper spacing
- Readable font size
- Synchronized scrolling implied (both at top of Genesis 1)
Sidebar:
- Background: Light gray (#F5F5F5)
- Selected items: Blue highlight
- Text: Dark gray
- Compact spacing
Panels:
- White background
- Blue accent for divider
- Clear headers with actions
- Generous padding (24px)
Bottom Bar:
- Audio, Search, Bookmarks icons
- Consistent across views
✅ Matches PRD:
- Left sidebar with Bible list
- Dual-panel comparison view
- Independent panels with own headers
- Clean, readable text formatting
- AI chat integration
✅ Perfectly Aligned:
- This mockup is closest to our PRD vision
- Sidebar with Bible library
- Multiple Bible panels
- Chat at bottom of sidebar
- Comparison workflow
Recommendation: Use this as primary reference for implementation:
- Sidebar width: ~280px (matches mockup)
- Panel layout: Flexible split
- Bible list: Compact, scrollable
- Chat: Bottom section of sidebar, collapsible
- Keep exact visual style
File: no-content-view.png (306 KB)
Two-Column Layout:
- Left Sidebar: Empty state - "No Bibles uploaded" with cloud download icon
- Main Area: Empty state - "No Bible Open" with book + chat bubble icon
Sidebar Empty State:
- Icon: Cloud with down arrow (gray, large)
- Message: "No Bibles uploaded" (dark text)
- Clean, centered layout
Main Area Empty State:
- Icon: Open book with chat bubble (gray, large, ~200px)
- Heading: "No Bible Open" (large, bold, dark)
- Subtext: "Select a Bible from the sidebar or upload one to start reading." (gray, smaller)
- Center-aligned in panel
- Light blue background (#F0F4F8)
Empty States:
- Large, friendly icons (outlines, not filled)
- Gray color scheme (#9E9E9E)
- Clear messaging
- Center-aligned
- Generous spacing
✅ Matches PRD:
- Empty states for no Bibles
- Helpful guidance text
- Clean, uncluttered design
Recommendation: Implement exactly as shown:
- Sidebar empty: Cloud icon + "No Bibles uploaded"
- Main empty: Book+chat icon + "No Bible Open" + subtext
- Use SVG icons (Lucide or Heroicons)
- Light blue background for main area
File: upload-bible-usfm.png (962 KB)
Modal Overlay:
- Semi-transparent dark backdrop (#00000080)
- Centered white modal card (500px width)
- Appears over main Bible reader view
Modal Structure:
- Title: "Upload Bible USFM Modal" (top, bold, large)
- Upload area:
- Dashed border rectangle (large, 300px+ height)
- Cloud upload icon (gray, centered, large)
- Primary text: "Drag & drop or click to browse .zip files containing USFM"
- Clean, spacious design
- Action buttons (bottom right):
- "Cancel" (gray, secondary button)
- "Upload" (blue, primary button)
- Proper spacing between buttons
Modal:
- White background
- Rounded corners (8px)
- Box shadow for elevation
- 40px padding
- Clean typography
Upload Area:
- Dashed border (#BDBDBD)
- Large drop zone (encourages drag-and-drop)
- Icon + text centered
- Hover state implied (would show blue border)
Buttons:
- Cancel: Gray text, no background, minimal
- Upload: Blue background (#1976D2), white text, solid
✅ Matches PRD:
- Modal overlay for upload
- Drag-and-drop area
- File type specification (.zip)
- Cancel/Upload actions
- Mockup shows simple two-button layout
- PRD mentioned "progress indicator" and "success state" (not shown here)
Recommendation: Implement as shown, plus:
- Add progress bar during upload
- Add success state (checkmark + "3 books found")
- Add error state (red icon + error message)
- Keep drag-and-drop interaction
Primary Colors:
- Primary Blue: #1976D2 (buttons, links, active states)
- Light Blue: #E3F2FD (hover states, backgrounds)
- Dark Blue: #1565C0 (button hover)
Neutral Colors:
- White: #FFFFFF (panel backgrounds)
- Light Gray: #F5F5F5 (sidebar background)
- Medium Gray: #E0E0E0 (borders, dividers)
- Dark Gray: #757575 (muted text)
- Very Dark: #212121 (body text)
Status Colors:
- Error/Active: #D32F2F (red, for End button)
- Success: #388E3C (green, implied)
- Warning: #F57C00 (orange, implied)
Font Family:
- Sans-serif (likely Roboto, Inter, or system font)
- Serif for Greek/Hebrew text
Font Sizes:
- Headings (h1): 32px, bold
- Headings (h2): 24px, semi-bold
- Headings (h3): 20px, semi-bold
- Body: 16px, regular
- Small: 14px, regular
- Caption: 12px, regular
Line Heights:
- Headings: 1.2-1.4
- Body: 1.6-1.8
- Tight: 1.4 (for compact lists)
Padding Scale:
- xs: 4px
- sm: 8px
- md: 12px
- lg: 16px
- xl: 24px
- 2xl: 32px
- 3xl: 48px
Component Spacing:
- Panel padding: 24px
- Sidebar padding: 16px
- Button padding: 12px 24px
- Input padding: 12px 16px
- Section margins: 32px
Buttons:
- Primary: Blue background, white text, rounded (4px)
- Secondary: Gray text, transparent background
- Icon buttons: 40x40px, square, icon centered
- Hover: Darker shade
- Active: Even darker
- Disabled: 50% opacity, no hover
Inputs:
- Border: 1px solid #E0E0E0
- Focus: 2px solid #1976D2, blue ring
- Padding: 12px 16px
- Border radius: 4px
- Placeholder: #9E9E9E
Panels:
- Background: White
- Border: 1px solid #E0E0E0
- Shadow: 0 2px 4px rgba(0,0,0,0.1)
- Border radius: 8px (for modals), 0px (for main panels)
Icons:
- Size: 20px (standard), 24px (large), 32px+ (empty states)
- Stroke: 2px
- Style: Outline (not filled)
- Color: Inherits from parent
- Multi-Panel Layout - Mockup 3 shows exact vision
- Bible Text Formatting - All mockups show proper verse formatting
- Chat Integration - Mockup 2 shows integrated chat (needs sidebar adaptation)
- Upload Modal - Mockup 5 matches requirements
- Empty States - Mockup 4 provides clear guidance
- Dockable Panels - Headers with drag handles visible
-
Sidebar Approach:
- Mockups show full panels for chat
- PRD: Chat in collapsible sidebar section
- Solution: Collapse chat to 400px section in sidebar
-
Top Navigation:
- Mockups show Home/Library/Plans/Settings tabs
- PRD: No header (maximize reading space)
- Solution: Remove top nav, move to sidebar if needed
-
Bottom Navigation:
- Mockups show Audio/Search/Bookmarks bar
- PRD: No footer (maximize reading space)
- Solution: Move to panel actions or remove for MVP
-
Advanced Features:
- Mockups show Interlinear, Dictionary panels
- PRD: Focus on basic translation comparison
- Solution: Future features, skip for MVP
-
Voice Status Indicators:
- Mockup 2 shows "End" button but not full state flow
- Need: Ready → Listening → Thinking → Speaking states
- Solution: Design voice UI states explicitly
-
Panel Docking Zones:
- No visual indicators for drop zones
- Need: Blue overlays for left/right/top/bottom splits
- Solution: Add during implementation
-
Multiple Panels (3+):
- Mockup 3 shows 2 panels only
- Need: Support for 3+ panels in grid
- Solution: Design 3-panel and 4-panel layouts
-
Loading States:
- No skeleton UI or loading indicators
- Need: Shimmer effect for loading chapters
- Solution: Design loading placeholders
-
Error States:
- Upload modal has no error state
- Need: Error messages with retry options
- Solution: Add error UI variants
Priority 1: Use Mockup 3 as Foundation
- Left sidebar (280px) with Bible list
- Main area with flexible panel layout
- 50/50 split for dual-panel view
- Clean, minimal design
Adaptations:
- Remove top navigation bar (Home/Library/Plans/Settings)
- Remove bottom navigation bar (Audio/Search/Bookmarks)
- Move chat to sidebar bottom section (collapsible, 400px)
- Keep sidebar Bible list exactly as shown
Bible Reader Panel:
- Use Mockup 1 text formatting
- Chapter headings, verse numbers, paragraphs
- Line-height: 1.8 for readability
- Max content width: 680px (centered)
Upload Modal:
- Use Mockup 5 design exactly
- Add progress bar component
- Add success/error states
Empty States:
- Use Mockup 4 designs
- Sidebar: Cloud icon
- Main: Book+chat icon
Sidebar Chat Section:
- Adapt Mockup 2 chat UI to fit sidebar
- Collapsible: 60px header → 400px expanded
- User bubbles: Blue, right-aligned
- AI bubbles: Gray, left-aligned
- Voice button with state indicators
Voice UI States to Design:
- Ready: Gray microphone icon
- Listening: Blue microphone, "Listening..." text
- Thinking: Purple dots animation, "Thinking..." text
- Speaking: Green waveform, "Speaking..." text
- End: Red microphone, "End" button
Interactions:
- Panel drag-and-drop with drop zones
- Panel resize with drag handle
- Smooth animations (250ms transitions)
- Hover states on all interactive elements
Responsive:
- Desktop: Full multi-panel layout
- Tablet: Single panel with tabs
- Mobile: Full-screen single panel
// tailwind.config.ts
export default {
theme: {
extend: {
colors: {
primary: {
50: '#E3F2FD',
100: '#BBDEFB',
500: '#1976D2', // Main blue
600: '#1565C0',
700: '#0D47A1',
},
gray: {
50: '#FAFAFA',
100: '#F5F5F5', // Sidebar background
200: '#E0E0E0', // Borders
400: '#BDBDBD',
500: '#9E9E9E', // Muted text
600: '#757575',
900: '#212121', // Body text
},
},
spacing: {
'72': '18rem', // 288px (sidebar + padding)
'80': '20rem',
'96': '24rem',
},
maxWidth: {
'reading': '680px', // Max content width for Bible text
},
},
},
}Sidebar:
.sidebar {
@apply w-72 bg-gray-100 border-r border-gray-200;
}Panel:
.panel {
@apply bg-white border border-gray-200 shadow-sm;
}Button Primary:
.btn-primary {
@apply bg-primary-500 text-white px-6 py-3 rounded hover:bg-primary-600;
}Chat Bubble User:
.chat-bubble-user {
@apply bg-primary-500 text-white px-4 py-3 rounded-lg rounded-br-none max-w-[70%] ml-auto;
}Chat Bubble AI:
.chat-bubble-ai {
@apply bg-gray-100 text-gray-900 px-4 py-3 rounded-lg rounded-bl-none max-w-[70%];
}-
Update ui-prompt.md:
- Incorporate insights from existing mockups
- Specify adaptations needed (sidebar chat, no top/bottom nav)
- Add missing states (voice, loading, error)
-
Create Component Specifications:
- Document exact spacing, colors, typography
- Map mockup designs to Tailwind classes
- Create component variants (states)
-
Design Missing UI Elements:
- Voice status indicators (4 states)
- Panel docking drop zones
- 3+ panel layouts
- Loading states (skeleton UI)
- Error states
-
Begin Implementation:
- Start with Mockup 3 layout (sidebar + dual-panel)
- Implement core components (Panel, BibleText, Sidebar)
- Add upload modal (Mockup 5)
- Integrate chat (adapted from Mockup 2)
The existing mockups provide excellent visual guidance with high-quality design. Mockup 3 (dual-panel-parallel-view.png) is the closest match to our PRD vision and should be the primary reference.
Key Takeaways:
- ✅ Layout structure is well-defined
- ✅ Typography and spacing are professional
- ✅ Color scheme is clean and accessible
⚠️ Need to adapt chat to sidebar (not full panel)⚠️ Remove top/bottom navigation bars- ❌ Need to design missing states (voice, loading, error, docking)
Recommendation: Use these mockups as foundation, adapt for sidebar-based chat, and design missing interaction states before implementation.