Fix boxel-ui docs scroll behavior and other improvements#5528
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 9450509c68
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Preview deploymentsHost Test Results 1 files ±0 1 suites ±0 3h 11m 59s ⏱️ + 5m 32s Results for commit 4f0af7d. ± Comparison against earlier commit 11cfc87. Realm Server Test Results 1 files ±0 1 suites ±0 17m 30s ⏱️ +50s Results for commit 4f0af7d. ± Comparison against earlier commit 11cfc87. |
9450509 to
11cfc87
Compare
Trusted clicks run a microtask checkpoint between listeners, so the tracked-state mutation in ember-freestyle's expandSection re-renders the menu and tears down the clicked LinkTo before its own click handler can preventDefault — the browser then follows the href as a full page reload. Deferring the mutation with setTimeout keeps the LinkTo alive through the dispatch so section switches stay client-side transitions. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

Fixes scroll issues in the boxel-ui Freestyle docs, improves the icons grid, reworks the mobile nav into a proper drawer, and adds theme importing.
Scroll fixes
FreestyleMenu#scrollActiveItemIntoViewso the nav's scroll-spy scrolls only the nav's own container instead of usingscrollIntoView, which was hijacking the in-progress page scroll whenever the active menu item was off-screen.overflow: visibleon the guide'sCardContainer— itsoverflow: hiddenmade it the containing scroll box, so the sticky nav sidebar never stuck to the viewport.overflow: visibleon.FreestyleGuide-contenttoo: its vendoroverflow: automade it the containing scroll box for sticky descendants, but the page body is what actually scrolls (the column is never height-constrained), so nothing inside could stick. Also cap it withmin-width: 0; max-width: 100%so wide content (tables, code) can never push the column past its row.Mobile nav drawer
insetpositioning replaces the oldtop: 70pxmagic numbers; the hamburger reflects state viaaria-expanded.Icons grid improvements
max-height).<input>withBoxelInput+FieldContainer, and swapped hardcoded hex colors for theme variables (var(--border),color-mixhover).Themes
tcn-themes.ts/cs-themes.tsbarrels and added new themes (Amethyst Haze, Sage Garden, Boxel Brand Guide, …); display names are derived from the export names (SoftPop→ "Soft Pop").:root/.darkvariable blocks are kept —@themeblocks and resets are stripped. Apply is disabled until a valid block is present; names are de-duplicated.--font-*families loaded dynamically (one link per family, so unknown fonts fail silently to their fallback stacks).Other polish
FieldContainers (Theme / Cycle Themes / Dark Mode) and dropped the floating-position media-query CSS.