+ 'Creates one or more slides in a presentation from a JSON blueprint.\n\nFORMATS: {"slides":[{"elements":[...]},...]} for multiple slides, or {"elements":[...]} for a single slide.\n\nCANVAS: 720×405 pt (16:9). Origin is top-left.\n\nELEMENT TYPES: type ("text"|"shape"|"image"), position ({x,y,w,h} in points), optional content, shape_type (e.g. "RECTANGLE","TEXT_BOX"), url (images), layer (z-index).\n\nDESIGN INTENT: Let the content drive the layout. A single strong idea may need only a title and whitespace. A comparison needs two columns. A timeline needs flow. Avoid defaulting to the same structure every slide — vary density, emphasis, and composition to match what each slide is communicating.\n\nCONSISTENCY ACROSS A DECK: Use the same theme, margin rhythm (~18pt), and font size hierarchy throughout. Consistency in the system lets individual slides be visually distinct without feeling disconnected.\n\nTECHNICAL NOTES:\n- Layer ordering: lower layer values render first (backgrounds=0, boxes=1, text=2+). Text placed at the same layer as a shape it overlaps will be hidden — always use layers explicitly.\n- Theme aliases for color ("primary", "surface", "text", etc.) keep slides cohesive and restyable — prefer them over hardcoded RGB.\n- Font size hierarchy: titles ~20-24pt bold, subheadings ~12-14pt, body ~10-12pt. Scale to content density.\n- Text boxes clip silently — size h generously.\n\nSTYLE PROPERTIES: size, bold, italic, underline, strikethrough, align (START|CENTER|END), vertical_align (TOP|MIDDLE|BOTTOM), indent, color, bg_color, border_color, border_weight, no_border, font_family ("theme" to inherit theme font), bold_phrases (substrings to bold inline), bold_until (char index), links ([{text,url}]).\n\nCOLORS: RGB 0-1 objects ({red,green,blue}) OR named aliases: "primary","primary_text","secondary","secondary_text","surface","surface_alt","text","text_muted","background".\n\nTHEMES: "light" (default), "google" (Blue #1A73E8, Green #34A853, Google Sans), "dark". Image URLs with unresolved placeholders are replaced with a fallback icon.',
0 commit comments