)
```
**Do NOT** modify the `main` element or the flex wrapper in admin templates - these are part of the admin sidebar layout.
#### Verification Steps:
```bash
# Build all templates
go build ./...
# Verify: All templates compile successfully
# Verify: No template errors
```
#### Git Commit:
```bash
git add templates/collections.templ templates/progress.templ templates/queue.templ templates/devices.templ templates/analytics.templ templates/conflicts.templ templates/unlinked_books.templ templates/bookshelf.templ templates/profile.templ templates/docs.templ templates/admin.templ templates/admin_library.templ templates/admin_users.templ
git commit -m "refactor(layout): apply full-width layout to all pages
- Remove max-w-7xl containers from all page templates
- Replace with w-full for full-screen width utilization
- Maintain padding for readability
- Admin templates: modify inner content div only (preserve sidebar layout)"
```
---
### Phase 9: Add User Documentation
**Goal:** Document the wood paneling and theme features for end users.
#### New File: `docs/user/themes.md`
```markdown
# Themes and Wood Paneling
## Color Themes
Bookhoard includes multiple color themes to suit your preferences:
- **Tokyo Night** (default) - Dark blue/purple tones
- **Dracula** - Dark purple accent colors
- **Nord** - Arctic, bluish-gray colors
- **Solarized Dark** - Precision contrast for readability
- **Monokai** - Dark theme with vibrant accents
- **One Dark Pro** - Atom's favorite theme
- **Material Dark** - Material Design dark theme
- **Catppuccin Mocha** - Soothing pastel dark theme
- **Catppuccin Macchiato** - Warm mid-tone theme
- **Catppuccin Frappé** - Frothy cool tones
- **Catppuccin Latte** - Warm light theme
### Changing Your Theme
1. Click the theme icon (palette) in the header
2. Select your preferred color theme
3. Your choice is saved automatically and synced across devices
## Wood Paneling
Wood paneling adds texture to your dashboard bookshelf background, giving it a classic bookshelf feel.
### Available Wood Textures
- **None** (default) - Solid color background
- **Wood Light** - Light oak/birch texture
- **Wood Dark** - Dark walnut/mahogany texture
- **Wood Mahogany** - Reddish-brown mahogany texture
### Applying Wood Paneling
1. Click the theme icon (palette) in the header
2. Scroll to "Bookshelf Background" section
3. Select your preferred wood texture
4. Texture is applied to dashboard bookshelf only
**Note:** Wood paneling is a browser preference and is not synced across devices.
### Tips
- Wood textures work best with darker color themes (Tokyo Night, Nord, etc.)
- Light wood pairs well with light themes (Catppuccin Latte)
- Wood paneling only affects the dashboard bookshelf area
```
#### Verification Steps:
```bash
# Restart server and verify docs render
curl http://localhost:8080/docs
# Verify: themes.md appears in search
# Verify: Documentation renders correctly
```
#### Git Commit:
```bash
git add docs/user/themes.md
git commit -m "docs(user): add themes and wood paneling guide
- Document all available color themes with descriptions
- Explain wood paneling feature and available textures
- Provide step-by-step instructions for changing themes
- Add tips for theme/texture pairing"
```
---
### Phase 10: Final Testing and Verification
**Goal:** Complete end-to-end testing and verification.
#### Testing Checklist:
**Wood Paneling:**
- [ ] Wood paneling options appear in theme dropdown
- [ ] "None" option removes texture
- [ ] Wood textures apply to dashboard only (not header/sidebar)
- [ ] Active wood option highlighted
- [ ] Preference persists across page refreshes
**Full-Width Layout:**
- [ ] All pages use full width
- [ ] Content still readable with proper padding
- [ ] Responsive on mobile devices
**Theme System:**
- [ ] Wood themes removed from color theme section
- [ ] Color themes still work correctly
- [ ] Active theme highlighted
- [ ] Theme switching saves to server
**Performance:**
- [ ] Wood textures load quickly (<500 KB each)
- [ ] No flash of wrong background on page load
#### Final Verification:
```bash
# Build everything
npm run build:ts
npm run build:css
go build ./...
# Run verification script
bash scripts/verify-guidelines.sh
# Run tests
go test ./... -v
```
#### Final Git Commit:
```bash
git add .
git commit -m "chore: final cleanup for wood paneling and full-width layout
- All phases complete and tested
- Documentation updated in docs/user/themes.md
- Verification scripts passing
- Ready for testing"
```
---
## Files Summary
- `web/src/woodPaneling.ts` - Wood paneling management
- `web/src/woodPanelingInit.ts` - Early wood paneling initialization (prevents flash)
- `web/src/themeDropdown.ts` - Active indicator management
- `web/static/textures/wood-light.png` - Light wood texture
- `web/static/textures/wood-dark.png` - Dark wood texture
- `web/static/textures/wood-mahogany.png` - Mahogany texture
### Files Modified
- `templates/header.templ` - Remove wood themes, add wood paneling section, remove max-width
- `templates/profile_form.templ` - Remove wood theme options from profile settings
- `tailwind.config.ts` - Remove theme-wood-* from safelist, add wood background images
- `templates/dashboard.templ` - Remove max-width, add wood paneling script include
- `templates/*.templ` - Remove `max-w-7xl` from all page templates
---
## Migration Notes
### Breaking Changes
- Wood themes removed from theme system
- Users with wood theme selected will see tokyo-night (or their last color theme)
- Wood paneling preference starts as "none" (users must opt-in)
### Backward Compatibility
- Color themes unaffected
- localStorage theme preference still works
- Server-side theme sync still works
### Database Dependencies
- None (wood paneling is localStorage only)
### Performance
- Wood textures only loaded when selected
- "None" option = no texture load (fastest)
- Texture size optimized to ~200-500 KB each
### Progressive Enhancement
- Pages work without wood paneling (default "none")
- Wood paneling degrades gracefully if JS fails
- Color themes work independently of wood paneling
---
## Rollback Plan
If issues arise:
1. Remove wood paneling section from header
2. Restore `max-w-7xl` containers in templates
3. Delete wood texture files
4. Revert header.ts to include wood theme logic
5. Wood paneling preference in localStorage will be ignored (harmless)
---
## Future Improvements
1. **Per-page wood paneling:** Allow wood on bookshelf page, not just dashboard
2. **Texture variety:** Add more wood options (oak, pine, walnut)
3. **Texture intensity:** Add opacity slider for subtler effect
4. **Custom textures:** Allow users to upload their own backgrounds
5. **Server-side sync:** Store wood paneling preference in database for cross-device sync
6. **Preview mode:** Show texture preview before applying
7. **High-DPI textures:** Provide 2x versions for retina displays
---
## Attribution
All wood textures are CC0 licensed (no attribution required):
- **Light wood:** qubodup - https://opengameart.org/content/light-wood-1024x1024
- **Dark/Mahogany wood:** Luke.RUSTLTD - https://opengameart.org/content/5-wood-textures
**Optional:** Add to README.md or about page for documentation purposes.