Skip to content

Header/hero polish: fix + dog-ify the theme toggle, Forum link, image zoom#18

Merged
bharvey88 merged 2 commits into
mainfrom
feat/header-hero-polish
Jul 10, 2026
Merged

Header/hero polish: fix + dog-ify the theme toggle, Forum link, image zoom#18
bharvey88 merged 2 commits into
mainfrom
feat/header-hero-polish

Conversation

@bharvey88

Copy link
Copy Markdown
Collaborator

What does this change?

Header/hero polish, a real bug fix for the theme toggle, and the Apollo dog mascot as the toggle icon.

  • Theme toggle was permanently hiddentheme.js revealed it with visibility = '', which clears the inline value and falls back to the CSS .theme-btn { visibility: hidden }, so it never showed (shipped broken in the dark-mode PR; no test caught it). Now sets visibility = 'visible', with a test asserting the toggle is visible.
  • Theme toggle icon → Apollo dog — paints the full-colour dog PNG (the same asset + technique as the wiki's annotation marker) instead of the emoji. On the dark header the dog's dark outline blends in, so it gets the same white backing it already has on the white light-mode header. The button still cycles system/dark/light (state via aria-label/title).
  • Nav: added a Forum link (forum.apolloautomation.com); pointed Discord at discord.apolloautomation.com.
  • Removed the footer blurb.
  • Hero reworded to first-flash framing (devices update over Wi-Fi/OTA after setup, so the installer is for the first flash, not routine updates).
  • Hub card images: object-fit: cover so cast-1 and msr-1 fill the card square like the square product shots (the 8 already-square images are unaffected).

Checklist

  • Playwright tests pass locally (cd tests && npx playwright test) (20 passed, 1 intentional skip)
  • Any new runtime file/dir is added to the cp list in .github/workflows/pages.yml (n/a: the dog PNG lives under assets/, which the cp-list already copies)
  • No new build step, framework, or runtime CDN dependency
  • If devices.json changed: python scripts/validate_registry.py passes (devices.json unchanged)

🤖 Generated with Claude Code

- Fix the theme toggle: it was permanently hidden because theme.js set
  visibility='' (which clears the inline value and falls back to the CSS
  `visibility: hidden`) instead of 'visible'. Shipped broken in the dark-mode PR
  and never caught; add a test that the toggle is visible.
- Nav: add a Forum link; point Discord at discord.apolloautomation.com.
- Remove the footer blurb.
- Hero: reword to the first-flash framing (devices update over Wi-Fi/OTA after
  setup, so the installer is for the first flash, not routine updates).
- Hub card images: object-fit cover so cast-1 and msr-1 fill the card square like
  the square product shots (no effect on the already-square images).

🤖 Generated with [Claude Code](https://claude.com/claude-code)
Duplicates the wiki's annotation-marker technique: paint the full-colour dog PNG
directly (no CSS mask/tint) instead of the emoji. On the dark header the dog's
dark outline blends in, so give it the same white backing it already has on the
white light-mode header. The button keeps cycling system/dark/light, with the
state carried by aria-label/title.

🤖 Generated with [Claude Code](https://claude.com/claude-code)
@coderabbitai

coderabbitai Bot commented Jul 10, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@bharvey88, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 45 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 7ccd2f2b-2807-442a-84b0-4584d73407b9

📥 Commits

Reviewing files that changed from the base of the PR and between 3ce47f7 and dda0b30.

⛔ Files ignored due to path filters (1)
  • assets/brand/apollo-dog.png is excluded by !**/*.png
📒 Files selected for processing (5)
  • css/style.css
  • index.html
  • js/theme.js
  • js/views/hub.js
  • tests/installer.spec.js
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/header-hero-polish

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@bharvey88 bharvey88 merged commit 1bcc378 into main Jul 10, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant