[fix] launch quick-wins: clean play FAB + explorer/packs loading feedback - #71
Merged
Conversation
- the grid-cell placeholder under the floating play button was a FILLED primary square whose corners peeked out around the circle - now a transparent spacer of the same size - play glyph white in both themes (was near-black on the primary orange) with a 3px optical nudge right (fa-play is left-heavy) - ring in the pill background color + shadow so the FAB punches through the bar cleanly Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- packs.js: loadPackItems clears openPackItems and flags NEW openPackLoading synchronously on an uncached open (the fetch used to leave the PREVIOUS pack items on screen - the stale flash); a load sequence guard stops a slow first fetch from clobbering a newer pack switch - Explorer grid: spinner Loading-pack-contents while openPackLoading instead of a wrong empty-state message - explorerDrop: pack-item drops hold a removable Loading-name toast during the CDN fetch, removed on import start or failure; the 15s object toast timeout is the failsafe - attribution popup opens immediately in a loading state on first fetch and caches the html for instant reopen Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- whole button scales on hover (centering translate moved from inline style to a tailwind class so the transforms compose instead of fighting) - hovering Scale / Object list paints the spacer cell too (arbitrary hover variants), so the hover red runs continuously up to the circle - no more pill-colored notches above/below it - clip-path circles the HIT AREA: the 50px square box used to intercept clicks and hovers meant for the neighbor cells it overlaps - NOTE: the spacer keeps w-10 on purpose - the fr grid columns are content-sized and that 40px is what gives every cell its width Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- one icon language everywhere: Explorer (tree, breadcrumbs, KIND_ICONS item cards, install card, window title), Sidebar rows, Sessions/Library/Modules buttons and placeholders, Inspector file panel + env preset row + burst, object-list system/env row actions and lock badge, Users popover badges + Watch, Chat/ImagePreview/ModelPreview/TextEditor window titles, mesh-edit popup, node palette delete, dungeon dice - context-menu labels lose their glyphs for now (plain text) - a proper icon column arrives with the menu consistency pass - window tab titles are plain text (Explorer, Chat); typographic glyphs kept on purpose (x, +, arrows, list-drag handle) plus module toast celebration - tests updated in the same commit: node-search label, explorer Textures row accessible name (no more emoji prefixes in matchers) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- NEW src/lib/trackpadNav.js (store-only, LOCAL prefs): window-capture wheel handler - two-finger trackpad swipes PAN the orbit camera (same math OrbitControls uses internally but does not expose); classic mouse wheels fall through to OrbitControls dolly untouched; shift+wheel pans (browsers map it to deltaX) - pinch (ctrlKey wheel) never zooms the PAGE: swallowed over UI, camera-dolly over the canvas as before; iOS gesturestart + body touch-action pan-x pan-y suppress mobile page pinch on the chrome (canvas keeps its own gestures) - Settings: Trackpad gestures Auto/On/Off (auto = fine-delta/deltaX heuristic) + Allow browser pinch zoom accessibility escape hatch (restores everything) - App.svelte: startTrackpadNav() at boot + debug-hook module entry - suite tests/e2e/trackpad-nav.test.cjs: 9 checks (pan vs zoom split, UI pinch swallowed, mode off, escape hatch) - ALL PASS on the lane server Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- ALL 193 fa- sites across 24 files migrated to tree-shaken lucide components (codemod for static <i> elements + manual pass for dynamic class compositions: Controls toolbar tints, Explorer KIND_ICONS, Objects/SimControls/VoiceChat/ Inspector ternaries); sizes 16 inline / 18-20 toolbar / 24 play FAB; aria-hidden on decorative icons; play keeps a solid triangle via fill=currentColor + ml-0.5 optical centering; id=play-button stable hook - NEW components/ui/Icon.svelte: data-driven name->component map (Explorer kinds, future menu defs); everything else imports named components directly - Font Awesome REMOVED: +layout.js css import, package.json dependency, dependabot ignore entry, deps-check frozen list; Users.svelte FontAwesome font-glyph placeholder hacks replaced with plain placeholders - scoped-CSS trap fixed with :global(): classes passed to lucide components land on the CHILD-scope svg (cx-chevron rotation, tp-toast-icon color, role-caret opacity were silently dead) - documented in CLAUDE.md gotchas - svg.lucide baseline-alignment rule in ui.css - e2e selectors updated: svg instead of i + getAttribute(class) (svg className is an SVGAnimatedString) in controls-state, controls-transform-tint, dock-float-exclusivity, flow-explorer-dock; play-exits uses #play-button - gates: svelte-check exactly 476/62, build green Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- 7 new tokens --icon-{folder,image,audio,doc,object,prefab,danger}: dark
defaults on :root (dark has no block) + per-theme values for light / green /
bit8 / contrast in theme.css; appended to THEME_TOKENS (older custom
.theme.json files fall back to the :root defaults)
- ui.css .ico-* classes color via currentColor (work on the svg or a wrapper)
- applied: Explorer tree + scene folders + grid folder cards amber, Prefabs +
Library placeholders prefab-orange, KIND_COLORS map tints thumbnail-less
item cards / props / Inspector file panel per kind, Clear Scene + Delete
trash icons danger-red; everything else keeps inheriting the row text color
- also normalized placeholder icon sizes the codemod left at 16 in large cards
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- the spacer under the play button splits into two 20px halves: hovering Scale paints only the LEFT half up to the circle, Object list only the RIGHT (the full-width paint peeked out red on the opposite side of the FAB); no transition - the neighbors hover is instant, the fade lagged - total spacer width stays 40px (LOAD-BEARING for the fr column sizing) - trackpad pan direction FLIPPED to content-follows-fingers as the default (touch-scrolling convention) + NEW Settings toggle Reverse trackpad pan for the opposite preference; suite gains a direction-flip check (11/11) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…docs - play FAB clip-path moved from inline style to a ui.css rule so the 8-bit theme can square it back (its border-radius kill was overridden by the inline circle clip); bit8 override in theme.css - square look AND square hit area there, round everywhere else - free 2D panning: the renderer canvas gets touch-action:none (lazily in the wheel handler) - Chromium axis-latches scroll gestures over the body pan-x/pan-y page-zoom guard, which locked two-finger pans to one axis unless started diagonally - missed icons: Connect copy-id button (the 📋 HTML entity dodged the emoji sweep) -> lucide Copy; AI hud button sparkles emoji -> lucide Sparkles in brand orange (text-primary-500) - trackpad suite grows to 14 checks: gesture-window flick, pan-off, pinch-off (ALL PASS); CLAUDE.md gains the trackpadNav lib entry; e2e-verify skill: #play-button anchor + lucide svg selector rules - CHANGELOG: 1.1.0 section (icon system, trackpad nav, loading feedback, play polish) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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.
Two approved launch quick-wins (v1.0.x patch line; flows into release/1.1 on the next merge of main).
Controls play button (Option A, user-approved)
Explorer/packs loading feedback
loadPackItemsnow clears + flags a newopenPackLoadingstore synchronously, with a sequence guard against slow-fetch clobberingVerification
npm run buildgreen🤖 Generated with Claude Code