# Frames & image slots > Group elements with container frames and drop photos into Canva-style shaped image slots. Source: https://docs.docmosaic.com/docs/examples/frames DocMosaic ships two "frame" tools. `Editor.FrameToolButton` draws a **container frame** - a box that owns whatever you drop inside it, so the group moves, duplicates, and deletes as one unit and the frame's fill/border sits behind its children. `Editor.ImageFrameToolButton` draws a **placeholder frame** - a shaped image slot (rectangle, circle, or line) you fill by dropping a photo, the same pattern Canva uses for layouts. Use container frames to build cards, panels, and repeatable layout blocks; use placeholder frames for avatars, badges, and shaped photo grids. ## Code ```tsx 'use client'; import { Editor } from '@docmosaic/react'; import '@docmosaic/react/styles.css'; export default function FramesEditor() { return ( ); } ``` Arm `Editor.FrameToolButton` and drag to place a frame, then drop images or text inside it - each becomes a child (`parentFrameId`). Drag the frame and its contents follow; delete it and they go too. Give the frame a fill or border from its floating toolbar and it renders behind its children. Arm `Editor.ImageFrameToolButton`, pick a shape from its dropdown, and drag to place a slot. Drop a photo in and it's clipped to the shape - swap it any time. Both features are additive and optional. A frame with a transparent fill and border is a pure grouping box that leaves no trace in the exported PDF; an image without a `maskShape` renders exactly as a normal image. See the [Frames concept](/docs/concepts/frames) for the model. ## Try it ## Related - [Frames](/docs/concepts/frames) - container vs. placeholder frames - [Editor.FrameToolButton](/docs/primitives/frame-tool-button) - [Editor.ImageFrameToolButton](/docs/primitives/image-frame-tool-button)