fix: restore icon-style theme toggle and GitHub topbar buttons - #38
Merged
Conversation
The theme select and GitHub link had regressed to wide text pills after the theme-select rework. Restore compact circular icon buttons for both: the theme select now shows a sun/moon/monitor icon matching the current mode (system/light/dark) with the native <select> as a transparent click target on top, and the GitHub link is now an icon button with an inline GitHub mark, matching the same icon-button style/size. Fixes #37 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0176vakGzooXWuenVBEeKosv
axisrow
force-pushed
the
ao/axisrow.github.io-27/fix-topbar-icons
branch
from
August 13, 2026 07:22
1084219 to
1d0af38
Compare
Three follow-ups on the topbar icon work: - Mobile topbar broke onto two rows. .topbar-inner declared four columns while only three children are visible there, and .topbar-actions was left to auto-placement after .menu-toggle had already claimed column 4 — so the grid cursor had passed it and dropped the actions onto row 2. Pin brand/actions/burger to explicit row-1 columns over a 3-column track and right-align the actions. - Restore the original ◐ glyph the pre-select toggle used, replacing the three-SVG sun/moon/monitor set. - Translate the theme control back to English (Colour theme / System / Light / Dark); the page is lang="en" and everything else on it is English, but #26 introduced Russian strings here. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0176vakGzooXWuenVBEeKosv
The panels overlaying a live canvas (stars, projects, proof, contact) each painted a near-opaque plate -- 0.91 via .veil-panel, and 0.97 for proof -- so the field behind them was flattened into a flat rectangle. Add a --veil-canvas token at 0.8 and point those four panels at it, leaving --veil for .project-surface, which has no canvas behind it. 0.8 is the floor rather than a taste call: composited over a black canvas pixel (mandelbrot does reach 0,0,0) it holds the in-panel --ink-faint at 4.91:1 light / 5.74:1 dark, still clear of AA. At 0.72 that secondary copy drops to 3.96:1. Mobile is deliberately untouched: those panels sit directly over the canvas with no side-by-side layout, and the existing mobile rules already tune them. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0176vakGzooXWuenVBEeKosv
- Veil panels over a live canvas now use a directional gradient fade (matching .experience-field/.about-field) instead of a flat semi-transparent plate, so the effect visibly runs into the panel. - projects-field-copy fades from the opposite side since its canvas sits to the left. - Bump plasma motion speed, starfield particle count, and copper-bars alpha scale for more visible motion/contrast. - Bump styles.css/effect-skins.js cache-busting query strings. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0176vakGzooXWuenVBEeKosv
Owner
Author
🔍 Local review (cycle 1) — round 3d553292-4852-49c1-9a89-a08c71a63223Reviewed locally (
Proceeding to fix the two FIX items now. |
- .theme-select inherits color: transparent into its <option> elements, making System/Light/Dark unreadable when the dropdown opens in browsers that render option text with the select's author color. Restore an explicit, opaque color/background on .theme-select option. - The starfield preview skin raised particleCount to 900/1200, ~10x the vendored preview.mobile/preview.desktop budget (90/120). densityMode stays "explicit" here, so densityMax never clamps the value -- the prior comment's clamp claim was incorrect. Cap the override at 180/240 (2x budget) and correct the comment. - Add regression tests for both: option-list contrast and a particle-count ceiling relative to the vendored preview budget. - Bump styles.css/effect-skins.js cache-busting query strings. Fixes review findings from cycle 1 (codex + claude /review). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0176vakGzooXWuenVBEeKosv
Owner
Author
🔍 Local review (cycle 2) — round 1c2cf750-3f5c-4720-a56e-685f5b377231Reviewed locally (
Codex companion: approve, zero findings. No FIX verdicts this round — both configured reviewers answered and found nothing actionable within this PR's scope. Proceeding to the final gate. |
Owner
Author
📋 Review summary — all cycles
Totals: 2 FIX (both resolved), 2 SKIP, 4 IRRELEVANT, 0 UNVERIFIED. Both configured local reviewers ( |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
<select>overlaid transparently as the click target so the dropdown still offers all three options.aria-label/titleon both controls, keyboard-operable native<select>, and a visible focus ring (:has(:focus-visible)).display:none), so both controls now show consistently on desktop and mobile.Testing
npm test— 34/36 pass. The 2 pre-existing failures (starfieldcanvas missing) are unrelated to this change and reproduce identically onmainbefore this branch.Fixes #37
🤖 Generated with Claude Code