Files

91 lines
3.0 KiB
Markdown

# Unified Bottom Navigation (Fixed Tab Bar)
Added Jul 9, 2026. Every game page now has the **same** fixed bottom tab bar for consistent navigation.
## The tab bar (7 items, same order on every page)
```
🏆 Scoring → draft-room.html
📊 Standings → draft-room.html
🦈 My Team → draft-room.html
📋 League → league.html
⚙️ Settings → settings.html
❓ Help → help.html
📖 Learn → how-to-play.html
```
## Files with the tab bar
| Page | Marker | Notes |
|------|--------|-------|
| `index.html` | `id="bottomNav"`, class `hidden` | Hidden before login, shown via JS |
| `draft-room.html` | End of `<body>` | Active on Scoring (first item) |
| `league.html` | End of `<body>` | Active on League |
| `settings.html` | End of `<body>` | Active on Settings |
| `help.html` | End of `<body>` | Active on Help |
| `how-to-play.html` | Replaced inline nav | Active on Learn |
## CSS (identical on every page)
```css
.bottom-nav {
position: fixed;
bottom: 0;
left: 0;
right: 0;
display: flex;
background: rgba(10, 22, 40, 0.95);
border-top: 1px solid rgba(14, 165, 233, 0.15);
backdrop-filter: blur(8px);
-webkit-backdrop-filter: blur(8px);
z-index: 50;
padding-bottom: env(safe-area-inset-bottom, 0);
}
.bottom-nav a {
flex: 1;
display: flex;
flex-direction: column;
align-items: center;
gap: 2px;
padding: 8px 4px 6px;
font-size: 10px;
color: var(--text-muted);
text-decoration: none;
font-weight: 600;
transition: color 0.2s;
border-top: 2px solid transparent;
}
.bottom-nav a .nav-icon { font-size: 18px; line-height: 1; }
.bottom-nav a.active {
color: var(--amber);
border-top-color: var(--amber);
}
```
## Body padding
Every page with a fixed tab bar needs `padding-bottom: 80px` on `<body>` to prevent content from being hidden behind the nav. On `index.html`, this is applied unconditionally even though the nav starts hidden — the auth form sits centered in the viewport and the extra bottom space doesn't interfere.
## Special case: index.html
- The tab bar has `class="hidden"` (display:none) in the static HTML
- `onAuthSuccess()` calls `document.getElementById('bottomNav').classList.remove('hidden')`
- `logout()` calls `document.getElementById('bottomNav').classList.add('hidden')`
- This keeps the landing/auth screen clean while giving authenticated users the full tab bar
## Adding a new tab
If you add or rename a tab:
1. Update ALL 6 HTML files' tab bar HTML (use search_files to find all `<div class="bottom-nav">` blocks)
2. Update the CSS if the number of items changes significantly (flex:1 handles even distribution)
3. Update settings.html and help.html — they also have the tab bar
4. Choose which page gets `class="active"` on each file
## Removing Feed tab
The original settings.html had a "Feed" tab (📡) pointing to draft-room.html. This was replaced by the unified 7-item bar above. The Feed tab was never implemented as a separate page — it was a placeholder.