UI revamp: SF Symbol icons, top-center dock, board settings, adaptive ink & spotlight collaboration#18
Merged
Merged
Conversation
Icons now render the supplied SF Symbol PNGs as mask-images tinted by currentColor, behind the unchanged <Icon name/> API. Hand-drawn SVGs remain only for glyphs with no SF counterpart (grip, sticky, shapes, rounded, arrow-elbow, grid pickers). Adds optical-scale corrections for glyphs with uneven intrinsic padding. https://claude.ai/code/session_014knToCSeCGKvjWxJjCopQ6
…to-flip popovers The dock now defaults to top-center (still draggable + persisted) and is ordered hand, select, pen, highlighter, eraser, text, sticky, shapes, color, insert-media. Popovers resolve placement automatically from the dock's on-screen position so menus always open into visible space, with a mirrored speech-bubble tail when opening downward. The new insert button imports images/PDFs/audio and embeds YouTube/Drive links through an EmbedDialog shared with the app menu. https://claude.ai/code/session_014knToCSeCGKvjWxJjCopQ6
…ggle, text align Adds a board-level settings map in the Yjs doc (background preset + grid style) mirrored into a settings store; the BackgroundLayer now paints the paper color and dotted/squared/ruled/plain grids with contrast derived from the effective background. The app menu gains HIG-style sections: File (with Copy share link), Edit, View (zoom, appearance, background swatches, grid picker, collaborator-cursor toggle) and Arrange. Text and sticky shapes get a synced align field, editable from the selection inspector and honored by the edit overlay. https://claude.ai/code/session_014knToCSeCGKvjWxJjCopQ6
… paper Near-neutral ink (pen strokes, text, shape outlines, lines, arrows and their in-flight previews) flips between near-black and near-white at render time based on the effective board background's luminance, like Apple Freeform. Stored colors are untouched; chromatic inks, highlighters, fills, stickies and exports keep authored colors. The text edit overlay applies the same mapping so editing stays WYSIWYG. https://claude.ai/code/session_014knToCSeCGKvjWxJjCopQ6
Adds a FigJam-inspired CollabBar showing connected peers as an avatar stack (click to follow a peer), a Spotlight toggle, and a share popover with copy-link plus the owner's public/private switch (absorbing the old BoardAccessIndicator). Presenters broadcast their viewport centre+scale via awareness at 10 Hz; other clients auto-follow with a smooth RAF lerp and a 'Following — tap to stop' pill. Any manual pan/zoom breaks follow and suppresses re-grab until the presenter re-toggles. Identity now carries the avatar into presence. https://claude.ai/code/session_014knToCSeCGKvjWxJjCopQ6
…duced motion Popovers scale-fade in toward their anchor (180ms ease-out, direction aware via resolved placement), the dock and follow pill get gentle entrances, focus-visible outlines cover buttons and inputs, and prefers-reduced-motion disables all of it. https://claude.ai/code/session_014knToCSeCGKvjWxJjCopQ6
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.
Summary
A full HIG-inspired UI revamp across six commits (one per area, each leaving the app working):
1. SF Symbol icon system
mask-imagespans tinted bycurrentColor— pixel-faithful SF look that adapts to theme/hover/active states behind the unchanged<Icon name/>API.2. Tools dock
EmbedDialogwith the app menu).placement="auto") from the dock's on-screen position — they open downward at the top, flip upward when the dock is dragged low, with a mirrored speech-bubble tail.3. Board settings & menu reorg
settingsmap — synced to collaborators, persisted via IndexedDB/autosave/snapshots, intentionally outside the undo scope.alignfield with left/center/right controls in the selection inspector; the edit overlay matches.4. Adaptive ink
5. Collaboration bar & spotlight (FigJam-inspired)
BoardAccessIndicator).6. Motion polish
prefers-reduced-motionsupport.Verification
Driven live with Playwright against
pnpm dev(screenshots in session):pnpm typecheckandpnpm buildgreen (icon PNGs emitted/inlined correctly).Not exercised live: multi-client spotlight/follow (needs a reachable Supabase Realtime backend; the sandbox blocks TLS). The flow is guarded for local-only mode and worth a two-browser smoke test on a deployed environment.
Notes
https://claude.ai/code/session_014knToCSeCGKvjWxJjCopQ6
Generated by Claude Code