Skip to content

Add frames: named regions that group and carry their shapes - #86

Merged
raj-khan merged 1 commit into
mainfrom
fl-83-frames
Sep 27, 2026
Merged

raj-khan merged 1 commit into
mainfrom
fl-83-frames

Conversation

@raj-khan

Copy link
Copy Markdown
Owner

FL-83, part 2 of 2.

  • Frame shape in the library (560x360 by default): a dashed region behind everything, named at its top left. Membership is where things sit: a shape belongs to the smallest frame its centre is in, so there is no list to keep in step, and frames nest. A click never opens its details, so the shapes inside stay easy to reach.
  • Dragging a frame carries its members, saved as one change (one undo).
  • Frame menu (right click or long press): Rename, Copy frame for AI (a brief of just that frame), Export frame (Export gains a what to export select), Delete frame.
  • Everywhere else: the brief gets a Frames section; Mermaid draws nested subgraphs; draw.io exports frames first and round-trips them; the SVG renderer draws them under the connections; .flow is id = frame "Name", documented in /docs/format and llms-full.txt.

Tests: e2e/frames.spec.js (5), src/domain/__tests__/frames.spec.js (9). e2e 136, vitest 270, lint and typecheck; checked by screenshot.

A shape belongs to the frame its centre is in. Dragging a frame moves
its contents in one step, and a frame copies for AI, exports, briefs and
draws in Mermaid and draw.io on its own.
@raj-khan
raj-khan merged commit 1890470 into main Sep 27, 2026
4 checks passed
@raj-khan
raj-khan deleted the fl-83-frames branch September 27, 2026 13:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant