feat(M7): FigJam-style dock, app menu, sticky notes & slider fix#12
Merged
Conversation
Reworks the M7 board UI to be more intuitive and less iOS-like: - Fix opacity-slider thumb clipping: the knob now lives in a rail outside the clipped track and its travel is inset by its radius, so it stays fully visible at 0% and 100%. - Replace the 6 PencilKit instruments with a flat FigJam-style dock: select, hand (pan), pen (style/width/opacity popover), eraser, highlighter, text, shapes flyout, sticky note and color. Flat SVG icon set with an accent-pill active state. - Eraser gains an Area mode that trims/splits vector strokes under the tip (object mode unchanged). - Shapes flyout adds rounded rectangle, diamond, triangle and curved/elbow arrows alongside the existing shapes. - Sticky notes: new shape type, tool, renderer and inline text editing. - New collapsible top-left app menu (File/Edit/View/Object) wired to undo/redo, zoom, z-order, lock, delete and select-all, plus the pages list (rename/reorder/add/delete) and the light/dark toggle. Commands that live in CanvasStage are exposed via a small command store. - Dock is now collapsible and draggable (persisted to localStorage). - Default to the light theme. https://claude.ai/code/session_0173wwKpuWJ2LM49cc5g4HWE
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.
Why
The M7 board UI mirrored iOS too closely and had rough edges. This reworks it to feel more like FigJam — intuitive and aesthetically pleasing — addressing every point raised:
What changed
1. Slider fix
The knob now lives in a
.slider__railoutside the clipped track and its travel is inset by its radius, so it stays fully visible at both ends. (packages/ui/src/components/Slider.tsx,styles.css)2. FigJam-style dock & tools
Flat icon toolbar: Select · Hand · Pen · Eraser · Highlighter · Text · Shapes ▾ · Sticky · Color, with an accent-pill active state and a new flat SVG icon set.
YPolygonkind,YRect.radius,YArrow.variant).YStickyshape, tool, renderer and inline text editing (reuses the text overlay).3. Collapsible app menu (top-left)
File / Edit / View / Objectwired to real actions — undo/redo, zoom in/out/reset, z-order, lock, delete, select-all — plus the pages list (rename / reorder / add / delete) and the light/dark toggle. Canvas-resident commands are exposed via a small command store so the menu can drive them.4. Collapsible + draggable dock
Drag by the grip (double-click to re-center), collapse to a pill; both persisted to
localStorage.5. Aesthetics
Default to the light theme, flat icons throughout (dock, menu, color picker, pages).
Verification
pnpm -r typecheckandpnpm buildpass.Notes
PageNavigatorandThemeTogglewere removed; their functionality moved into the app menu.TransformLayer(resize handles) is unchanged; new box shapes use the existing dashed selection overlay and move via SelectTool.Generated by Claude Code