Complete breadcrumb navigation overhaul - all pages now use content breadcrumbs
- **BibleReader breadcrumbs**: 'Books > [Book Name] > Chapter X' (all clickable navigation) - **Former 'Back to Chapters' button**: Replaced with intelligent breadcrumb navigation - **Mobile header cleanup**: Removed mobile navigation info since breadcrumbs now in content - **Consistent breadcrumb pattern**: Books → Book Name → Chapter across all pages - **Mobile-friendly navigation**: No more header scrolling, breadcrumbs where needed - **Full navigation chain**: Every breadcrumb is clickable for optimal user experience All pages now have their own contextual breadcrumb navigation!
This commit is contained in:
@@ -424,24 +424,7 @@ function App() {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
{/* Mobile Navigation - Simplified */}
|
|
||||||
<div className="flex md:hidden items-center space-x-1 text-xs text-gray-600 dark:text-gray-400">
|
|
||||||
{currentBook && (
|
|
||||||
<>
|
|
||||||
<span className="font-medium text-gray-900 dark:text-gray-100">
|
|
||||||
{formatBookName(currentBook)}
|
|
||||||
</span>
|
|
||||||
{currentChapter && (
|
|
||||||
<>
|
|
||||||
<span>•</span>
|
|
||||||
<span className="font-medium text-gray-900 dark:text-gray-100">
|
|
||||||
Ch. {currentChapter}
|
|
||||||
</span>
|
|
||||||
</>
|
|
||||||
)}
|
|
||||||
</>
|
|
||||||
)}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
{/* Search, User Authentication & Dark Mode */}
|
{/* Search, User Authentication & Dark Mode */}
|
||||||
<div className="flex items-center space-x-2">
|
<div className="flex items-center space-x-2">
|
||||||
|
|||||||
@@ -302,54 +302,62 @@ const BibleReader: React.FC<BibleReaderProps> = ({ book, chapter, onBack, format
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<div>
|
<div>
|
||||||
{/* Header */}
|
{/* Breadcrumb Navigation */}
|
||||||
<div className="flex flex-col sm:flex-row sm:items-center sm:justify-between mb-8 space-y-4 sm:space-y-0">
|
<div className="flex items-center justify-center space-x-1 mb-8">
|
||||||
|
<button
|
||||||
|
onClick={() => window.location.href = '/'}
|
||||||
|
className="flex items-center space-x-1 text-sm text-gray-600 dark:text-gray-400 hover:text-blue-600 dark:hover:text-blue-400 transition-colors"
|
||||||
|
>
|
||||||
|
<BookOpen className="h-4 w-4" />
|
||||||
|
<span>Books</span>
|
||||||
|
</button>
|
||||||
|
<ChevronRight className="h-3 w-3 text-gray-400 dark:text-gray-500" />
|
||||||
<button
|
<button
|
||||||
onClick={onBack}
|
onClick={onBack}
|
||||||
className="flex items-center space-x-2 text-blue-600 dark:text-blue-400 hover:text-blue-700 dark:hover:text-blue-300 transition-colors"
|
className="text-sm text-gray-600 dark:text-gray-400 hover:text-blue-600 dark:hover:text-blue-400 transition-colors"
|
||||||
>
|
>
|
||||||
<ArrowLeft className="h-5 w-5" />
|
{formatBookName(book)}
|
||||||
<span className="hidden sm:inline">Back to Chapters</span>
|
|
||||||
<span className="sm:hidden">Back</span>
|
|
||||||
</button>
|
</button>
|
||||||
|
<ChevronRight className="h-3 w-3 text-gray-400 dark:text-gray-500" />
|
||||||
|
<span className="text-sm font-medium text-gray-900 dark:text-gray-100">
|
||||||
|
Chapter {chapter}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
{/* Font Size Controls */}
|
{/* Font Size Controls */}
|
||||||
|
<div className="flex items-center justify-center mb-8">
|
||||||
<div className="flex items-center space-x-2">
|
<div className="flex items-center space-x-2">
|
||||||
<span className="hidden sm:inline text-sm text-gray-600 dark:text-gray-400">Font Size:</span>
|
<span className="text-sm text-gray-600 dark:text-gray-400">Font Size:</span>
|
||||||
<span className="sm:hidden text-xs text-gray-600 dark:text-gray-400">Size:</span>
|
|
||||||
<div className="flex space-x-1">
|
<div className="flex space-x-1">
|
||||||
<button
|
<button
|
||||||
onClick={() => handleFontSizeChange('small')}
|
onClick={() => handleFontSizeChange('small')}
|
||||||
className={`px-2 sm:px-3 py-1 text-xs rounded ${
|
className={`px-3 py-1 text-xs rounded ${
|
||||||
fontSize === 'small'
|
fontSize === 'small'
|
||||||
? 'bg-blue-600 text-white'
|
? 'bg-blue-600 text-white'
|
||||||
: 'bg-gray-200 dark:bg-gray-700 text-gray-700 dark:text-gray-300 hover:bg-gray-300 dark:hover:bg-gray-600'
|
: 'bg-gray-200 dark:bg-gray-700 text-gray-700 dark:text-gray-300 hover:bg-gray-300 dark:hover:bg-gray-600'
|
||||||
} transition-colors`}
|
} transition-colors`}
|
||||||
>
|
>
|
||||||
<span className="hidden sm:inline">Small</span>
|
Small
|
||||||
<span className="sm:hidden">S</span>
|
|
||||||
</button>
|
</button>
|
||||||
<button
|
<button
|
||||||
onClick={() => handleFontSizeChange('medium')}
|
onClick={() => handleFontSizeChange('medium')}
|
||||||
className={`px-2 sm:px-3 py-1 text-xs rounded ${
|
className={`px-3 py-1 text-xs rounded ${
|
||||||
fontSize === 'medium'
|
fontSize === 'medium'
|
||||||
? 'bg-blue-600 text-white'
|
? 'bg-blue-600 text-white'
|
||||||
: 'bg-gray-200 dark:bg-gray-700 text-gray-700 dark:text-gray-300 hover:bg-gray-300 dark:hover:bg-gray-600'
|
: 'bg-gray-200 dark:bg-gray-700 text-gray-700 dark:text-gray-300 hover:bg-gray-300 dark:hover:bg-gray-600'
|
||||||
} transition-colors`}
|
} transition-colors`}
|
||||||
>
|
>
|
||||||
<span className="hidden sm:inline">Medium</span>
|
Medium
|
||||||
<span className="sm:hidden">M</span>
|
|
||||||
</button>
|
</button>
|
||||||
<button
|
<button
|
||||||
onClick={() => handleFontSizeChange('large')}
|
onClick={() => handleFontSizeChange('large')}
|
||||||
className={`px-2 sm:px-3 py-1 text-xs rounded ${
|
className={`px-3 py-1 text-xs rounded ${
|
||||||
fontSize === 'large'
|
fontSize === 'large'
|
||||||
? 'bg-blue-600 text-white'
|
? 'bg-blue-600 text-white'
|
||||||
: 'bg-gray-200 dark:bg-gray-700 text-gray-700 dark:text-gray-300 hover:bg-gray-300 dark:hover:bg-gray-600'
|
: 'bg-gray-200 dark:bg-gray-700 text-gray-700 dark:text-gray-300 hover:bg-gray-300 dark:hover:bg-gray-600'
|
||||||
} transition-colors`}
|
} transition-colors`}
|
||||||
>
|
>
|
||||||
<span className="hidden sm:inline">Large</span>
|
Large
|
||||||
<span className="sm:hidden">L</span>
|
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user