Repository navigation
Conversation
…ogo, What's new tops every button - src/styles/ui.css: ONE ordered scale, lowest first: --z-canvas < --z-canvas-overlay < --z-chrome (FABs, Controls pill, side drawers) < --z-selection (phone strip) < --z-dock < --z-sheet < --z-window (40..44) < --z-phone-bar < --z-hud < --z-side-panel < --z-chrome-top (logo, undo/redo, Connect, notes/notifications/peers/profile) < --z-popover (main menu, profile, Add, search) < --z-toast-low < --z-modal < --z-onboarding (What's new, Welcome, tours) < --z-portal (selects, context menus, drag ghosts) < --z-toast. Old names stay as aliases (--z-drawer/-bottom/-viewport/ -menu) so a branch written before the scale still resolves. - every page-level hard-coded z-index moved onto it (80 sites: Users 996-999, Connect/PhoneShell 300, Add/ObjectSearch 999/1000, ThemedSelect 9999, drag chips 1400, Sheet 60/61/42/43, PhoneShell 36-44, HUD 38/46, FABs z-30, Inspector z-50, ...); in-component stacking stays < 30. - G3b: the logo is --z-chrome-top, so Settings and every app modal cover it (was --z-menu 1300 over --z-modal 1100); What's new is --z-onboarding at every width (no focusStack, no wn-sheet hack). - G20 (scale half): the phone selection strip sits on --z-selection, under docks and sheets, and no longer rises with the bar over an open main/profile/Add menu. - scripts/check-zindex.cjs + `npm run check:zindex` + a CI step: a page-level literal (>= 30) fails; `z-ok: <reason>` marks the numbers code reads back (windowFocus, docking). - mobile-ui-fixes: the wn-sheet checks become "the changelog outranks the logo at every width". Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…e one sheet gesture - sheetDrag `surfaces`: a touch on a sheet's BODY is watched (window capture, touch events); one owner per gesture on its first move past the slop: the list scrolls, at its top a downward drag moves the sheet, a body with nothing to scroll is the sheet both ways - a gesture that began as a scroll stays a scroll (no accidental close); pulled down then back up past the start hands back to the list (iOS); a dragged touch never clicks its row - sheetSnap: rubberBand (0.55 resistance past the max / a non-dismissible min), releaseVelocity (last 100 ms only), handoffMode, PROJECTION_MS: a hard flick closes from any height, a gentle one steps a detent / to the min - touch-action without pan-y, canvases, node graphs, range inputs, [data-sheet-nodrag] and the grab bar itself keep their own touches - wired once: ui/Sheet, ui/SheetGrip (auto: its fixed ancestor, only while the bar is shown), PhoneShell's framed sheets + the dock; every phone drawer inherits it - the strip's measure list gains #notes-drawer and toolbox sheets (G20) - suite sheet-handoff (every phone drawer, real CDP touches) + unit sheetSnap Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…loats over an open menu - Sidebar: light dismiss — a pointerdown outside the menu (capture on window) closes it on desktop and phone; another control still works in the same press, a press on the 3D view only dismisses (no select / deselect / orbit); logo, tour card, export popup excluded - phone.css: the selection strip hides while a MENU is open (main menu, profile menu, notification centre, Connection, More, an action sheet, the character studio, any dialog) — 40 F1 had raised it OVER the main and profile menus; tool sheets keep #32 b (above their top edge) - suite drawer-layering: strip states per menu / tool sheet + an elementFromPoint audit of every open drawer with the sim transport, FPS meter and note markers on; G3a on desktop, unfolded and folded Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
- AnnotationPopover: on the phone the card no longer closes the Notes drawer; it covers it at the same height (shared notesSheetH, one grab bar), so closing it (x or a swipe down) returns to the list as it was (scroll, collapsed groups) - previous / next in the note's label group with n/N (annotationsHandler.noteGroupWalk, the drawer's own wrapping walk), on the phone and the desktop card - phoneShell.notesSheetH: the notes sheet height, still under `notesSheetH` - suite notes-phone-drillin Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…g notes Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…en-from-scene e2e - annotationsHandler.noteWalk (global pin order, wrapping) replaces the per-group walk in the card: drawer, a pin tapped in the scene, an object's menu — previous / next go through every note with n/N of all; closing returns to where the card was opened from (the list, or the scene with no drawer opened) - notes-phone-drillin: the all-notes walk + wrap both ways, and the open-from-scene path (phone: tap a pin marker, desktop: click one) with close returning to the scene Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
phone.css: took 41-modals' 40 F1 block (the strip no longer rises over the menus; --z-selection under every sheet) — 41-sheets' G20 hide-over-menus block stays as it was. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…setAnnotation stores it) Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…for the all-notes walk) Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
… from every entry Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…desktop pages; press inside on a menu label Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…he Add list (portal); the strip rides above a full sheet's scrim phone-sheets went red after the merge: menus moved to --z-portal while the bar's Add-list raise stayed at --z-popover + 2 (Play covered), and the strip at --z-selection sat under the Add list's backdrop and under a full-height framed sheet's scrim (#32 b: it must stay usable over the tool sheets; over menus it is hidden by 41 G20). Co-Authored-By: Claude Opus 5.5 (1M context) <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.
Roadmap 41 lane 41-sheets — G5, G3a, G12, G20 (professional drawers). Base: feat/40-int (+ merged feat/41-modals' z-scale).
G5 — every phone drawer drags like a phone sheet (fixed once in
$lib/ui/sheetDrag.js)Nested-scroll hand-off modelled on UISheetPresentationController / BottomSheetBehavior: the list scrolls; at its top a downward drag moves the sheet; a gesture that began as a scroll stays a scroll (no accidental close); pulling back up hands back to the list; release velocity from the last 100 ms, projected 200 ms (a hard flick closes from any height); detent / min-max snap points; iOS rubber band; sideways strips, sliders, canvases, node graphs keep their touches; no click after a drag. Wired through ui/Sheet, ui/SheetGrip and PhoneShell's framed sheets + dock — Objects, Explorer, Notes, Add, Inspector, Configure Scene, main menu, notifications, profile, More, Chat, AI, toolboxes, the note page.
G3a — an outside press closes the burger menu (desktop + phone)
Another control works in the same press; a press on the 3D view only dismisses.
G12 — notes
On a phone a note opens as a page of the Notes sheet (the drawer stays mounted, one shared height + grab bar). ‹ n/N › walk all notes in pin order from any entry (drawer, a pin in the scene, …); closing returns to where it was opened from.
G20 — nothing floats over an open menu
The selection strip hides over menus (main/profile menu, notifications, Connection, More, action sheets, character studio, dialogs) and rides above the tool sheets (now measured for notes, the note page and toolbox sheets too). On the 41-modals scale the bar + strip rise over the Add list (
--z-portal) and the strip sits above a full sheet's scrim.Proof (OPPO N6 folded 390×896 / unfolded 770×850 touch, desktop 1440×900; real CDP touches)
Unit sheetSnap 14/14 · svelte-check 300/40 (= baseline) · check:tokens + check:zindex clean. Owed on device: the feel of the thresholds. Decisions: QUESTIONS-41-sheets.md; touch points for 41-int in STATUS-41-sheets.md.
🤖 Generated with Claude Code