# Canvas and frames Source: https://canvas-docs.vibeflow.ai/concepts/canvas-and-frames The two units you work with every day. Everything else is built on these. A VibeFlow canvas with five frames at different aspect ratios and an attached design system ## Canvas A **canvas** is a document you own at `/canvas/:id`. It holds your frames, your chat history, and a few pinned settings: | What's on a canvas | What it does | | ------------------ | ------------------------------------------------------------------------ | | **Frames** | The artboards visible in the viewport. Any number, any size. | | **Chat history** | Every brief, every reply, every tool call. Multiple chats per canvas. | | **Design system** | Optional, pinned to the canvas. Locks brand for every future generation. | | **Style preset** | Optional aesthetic (e.g. *Editorial*, *Glassmorphism*) layered on top. | | **Assets** | Images you've uploaded or generated, addressable by the agent. | A canvas belongs to an organization and is **owner-scoped**. Other people in your org cannot edit it today (multiplayer is coming soon). They can clone a copy if you publish it to the community gallery. ### Creating a canvas `/home` → toggle to **Canvas** → brief → **Generate**. You land on `/canvas/:id` with the agent already streaming. `/canvas` → **New canvas**. Blank canvas, then talk to the agent in chat. `/community` → pick a canvas template → **Use template**. You get an owned copy. You can also create a canvas from your editor via the [MCP](/mcp/tools), then drive it from chat. *** ## Frame A **frame** is a fixed-size artboard rendered as inline HTML inside an iframe on the canvas. That's the whole shape. | Property | Detail | | ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | | Size | Set per-frame. Common sizes: 1440 × 900 desktop, 1920 × 1080 slide, 1080 × 1080 social, 390 × 844 mobile, 1200 × 628 ad. Any custom size works. | | Position | `x`, `y` on the canvas. Drag with the mouse. | | Stack order | A `z` index per frame. Frames can overlap. | | Content | Inline-styled HTML. No `