Enlarge text in story cards (stories index, kids stories) and
occurrence cards (Strong's concordance) when big font mode is enabled.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Arrow keys now navigate words in a 2D grid pattern:
- Left/Right: move to adjacent words in same row
- Up/Down: move to closest word in row above/below
- Enter: expand word details
- Escape: exit word mode
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Convert verse navigation to pill-style buttons
- Extend breadcrumb bar to the left with padding
- Add scroll-margin-top for verse anchors on chapter page
- Rename 'Chapter X' to 'Read in Chapter X'
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Inline horizontal layout for interlinear words (original + English + Strong's)
- Larger font for Hebrew/Greek text (1.6-1.8rem)
- Remove expand/collapse from interlinear section (always visible)
- Rename 'Analysis' to 'Analysis & Commentary'
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Cross-references now display as compact pills (always visible, no collapse)
- Hover tooltip shows verse text
- Sidebar current selection is now bold (font-weight: 700)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Update VerseReference.from_string to parse 'Book Chapter Verse' format
- Update is_verse_reference regex to match space format
- Add book name normalization to parse_verse_reference
- Update quick lookup JS to handle space format
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Added missing verse 14:17 with Hebrew word studies (shēm, pachad)
and theological analysis connecting to Messianic kingdom.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Transparent background instead of gray
- Rounded pill shape (border-radius: 20px)
- Subtler text color
- Light red tint on hover
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- New /red-letter route with filterable, paginated verse list
- Stats showing total verses, full/partial breakdown
- Red letter text rendering with highlighting
- Keyboard navigation support
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Streamlined structure, added AI commentary, Strong's Concordance details,
family tree explorer, PDF export, accessibility features, and API docs.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Use consistent green color instead of --link-color which had poor
contrast (light gray background with white text) in dark mode.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Use file modification time hash for base.js and tufte.css to
automatically bust browser cache when files are updated.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Wrap KJVNav.initGridNav call in DOMContentLoaded to ensure
base.js has loaded before accessing the function.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Keep the font toggle (A) visible on mobile while hiding other
breadcrumb action buttons (speech, bookmark).
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Remove localStorage persistence for sidebar state on mobile
- Always start with sidebar closed on mobile
- Close sidebar when clicking any link inside it
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
normalize_book_name() was returning the canonical name even when the
input was already canonical, causing infinite redirect loops.
Now only returns a value when the canonical name differs from input.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Add "Solomon's Song" and "Solomons Song" as aliases that redirect
to "Song of Solomon" for backwards compatibility with old links.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Update verse references in verses-1769.json
- Rename data files (solomons_song.json -> song_of_solomon.json)
- Update book mappings in books.py
- Fix VerseReference.from_string() to handle multi-word book names
like "Song of Solomon" (was only handling 2-word names)
- Update sitemap and metadata files
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Remove checked attribute so hamburger menu starts closed on mobile.
Desktop sidebar is always visible via CSS regardless of checkbox state.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Group by first two breadcrumbs (e.g., "Books / 1 Corinthians") so that
chapters and verses from the same book appear in the same group instead
of being split across different groups.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Detect when query looks like a Strong's number (H123, G456)
- Redirect directly to entry page instead of showing search results
- Handle case insensitivity and leading zeros (h0026 -> H26)
- Update placeholder text to show both number and definition search
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Change primary nav button to explicit green (#4a7c59) instead of
var(--link-color) which is dark gray in light mode
- Ensure button text is white with !important and :link/:visited states
- Make verse-tooltip selector more specific to avoid styling conflicts
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Convert entry cards and search results to anchor tags
- Whole card is now clickable, not just the small Strong's number
- Add hover effects with border highlight and subtle shadow
- Update keyboard navigation to work with new structure
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Hebrew numbers in Greek derivations often have leading zeros (H04566)
which caused lookups to fail. Now normalize all Strong's numbers by
stripping leading zeros before lookup and link generation.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Show lowercase 'a' for normal mode, uppercase 'A' for large text mode
- Fix speech button not showing stop icon while playing
- Check all speech sources (KJVResourceSpeech, KJVSpeech, speechSynthesis)
- Clear suppressSpace flag on button click to fix toggle behavior
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Disable sticky breadcrumb on mobile, hide action buttons
- Add mobile styles to chapter page (nav, touch targets)
- Add mobile styles to verse page (share buttons, tooltips)
- Add mobile styles to books page (responsive grid)
- Add mobile styles to book page (chapter links, nav hints)
- Add mobile styles to search page (full-width, iOS zoom fix)
- Add mobile styles to topics and reading plans pages
- Improve touch targets across all pages (44px min)
- Fix max-width containers for mobile (100%)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
The heading "Starred Pages" now appears dynamically when there are
starred items, but is hidden when the page is empty (showing the
empty state with instructions instead).
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Remove heading from stars page
- Left arrow key now collapses expanded item instead of navigating back
- Only navigate back with left key if nothing is selected
- Fix reading plans progress: correct ID from 'your-plans' to 'your-reading-plans'
- Change section to div for reading plans wrapper
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Create /stars page with collapsible groups, notes, and keyboard nav
- Add yellow star bookmark button in breadcrumb (☆/★)
- Add nav badges showing star count and reading plan % complete
- Change 's' shortcut from Stories to Stars
- Update toast to say "Added to Starred Pages"
- Persist group collapse state in localStorage
- Support notes with monospace font and edit/add functionality
- Update accessibility page and ? help modal
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
New tests target:
- routes/resources.py: biblical maps, angels, prophets, parables, etc.
- Resource detail and PDF routes
- utils/search_index.py: search with filters, highlighting
- Bible PDF routes (book, chapter, verse, interlinear)
- Commentary API endpoints
- Extended API tests for cross-references, topics, reading plans
Total tests: 939 (all passing)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>