0cbc58f8d1ecc87dd904a6e8ce2bb42e918ac167
M-1: Navbar.toHtml emitted a fixed id="navbar-links" and unscoped .navbar-link/.navbar-cta :hover selectors -- two Navbars on one page collided on the duplicate id and cross-applied each other's hover colors (later <style> block wins in the cascade). Scope both on the Craft node id via scopeId(), matching the Menu/Tabs pattern: the links container gets a unique id, aria-controls/the hamburger toggle script reference it, and the hover rules are prefixed with a per-instance class on the <nav> root. M-2: Gallery lightbox had no focus management -- opening it left focus wherever it was (behind the now-visible overlay) and closing it never restored it. The inline script now stashes document.activeElement on open, moves focus to a new accessible close button, traps Tab on the close button while the dialog is open, and restores the saved focus on close (Escape, backdrop click, or the close button). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Description
Visual drag-and-drop website builder using GrapesJS
Languages
TypeScript
61.2%
HTML
17.1%
JavaScript
17%
CSS
3.6%
PHP
0.8%
Other
0.3%