Efecto — Graphic Design Guide
Design graphic assets — presentations, pitch decks, event posters, email headers, blog images, OG cards, business cards, resumes, menus, infographics, invitations, newsletters, and documents — using the Efecto design tool.
Setup
This skill requires the Efecto MCP server. Check if it's available by looking for tools like create_session, add_section, or get_document in your tool list.
If Efecto tools are NOT available, install the MCP server:
Claude Code
claude mcp add efecto -- npx -y @efectoapp/mcp
Cursor
Add to .cursor/mcp.json:
{
"mcpServers": {
"efecto": {
"command": "npx",
"args": ["-y", "@efectoapp/mcp"]
}
}
}
Windsurf / VS Code / Other MCP Clients
{
"mcpServers": {
"efecto": {
"command": "npx",
"args": ["-y", "@efectoapp/mcp"]
}
}
}
Once installed, you'll have access to 68 MCP tools, including image search and native animation authoring. The MCP server connects your agent to the Efecto design canvas at efecto.app.
How It Works
- Your agent creates an Efecto session via MCP (
create_session)
- You open the returned design URL in your browser
- The agent pushes design commands — you see every change live
- Iterate with natural language until the design is perfect
Using Efecto Tools — Quick Reference
Session Workflow
Every design starts with a session:
create_session label: "Pitch Deck"
Returns { sessionId, documentId, designUrl }. Tell the user to open the URL, then call wait_for_connection (blocks until paired). If the user already has an Efecto URL with ?session=..., call attach_session with that URL instead of creating a duplicate session. Never call create_session twice to "reconnect" — a paired session refuses overwrite without force: true. Use session_status to inspect routing ({ all: true } for the full session list).
Building Designs
The primary workflow is: create artboard → add sections with JSX → refine with updates.
# 1. Create an artboard
create_artboard name: "Slide 1" width: 1920 height: 1080 backgroundColor: "#1a1a1a" className: "flex flex-col"
# 2. Add content with JSX (most efficient way to build)
add_section parentId: "<artboard-id>" jsx: '<section name="Title Slide" className="flex flex-col items-center justify-center gap-6 p-24 w-full h-full">
<h1 name="Presentation Title" className="text-7xl font-extrabold text-white text-center">Your Title Here</h1>
<p name="Presentation Subtitle" className="text-2xl text-gray-400">Subtitle text</p>
</section>'
# 3. Read current state to get node IDs
get_document
# 4. Fine-tune with batch updates
batch_update updates: [
{ nodeId: "abc", className: "text-8xl font-black text-white" },
{ nodeId: "def", textContent: "New text" }
]
All 68 Tools
| Category |
Tools |
| Session |
create_session, attach_session, wait_for_connection, session_status, close_session |
| Reading |
get_document, get_selection, get_node_tree, list_artboards, find_nodes |
| Creating |
create_artboard, add_section, add_node |
| Modifying |
update_node, update_class, update_artboard (accepts speakerNotes for slides and timelineDuration for animation), batch_update, replace_section |
| Animation |
list_animation_presets, apply_animation_plan, clear_animations |
| Organizing |
move_node, duplicate_node, duplicate_artboard, group_nodes, ungroup_node, reorder_node |
| Selection |
select_nodes, deselect_all, set_visibility, delete_nodes, delete_artboard |
| Alignment |
align_nodes, distribute_nodes |
| Fill & Export |
set_fill, export_image |
| Viewport |
zoom_to_artboard, zoom_to_fit, set_viewport, move_artboard |
| Document |
rename_document, new_document |
| History |
undo, redo |
| Theme |
get_theme, set_theme, set_theme_mode, reset_theme |
| Quality |
audit_design, repair_design |
Scoped reads (large docs). get_document returns the whole tree by default — on multi-artboard docs that can blow past tool-result token caps. Prefer scoped modes: outline: true (one-line summary per top-level child), artboardId: "..." (single artboard), maxDepth: N (cap descent; 0 = artboard header only, 1 = top-level children). Response includes an approx-token count so you can decide whether to widen. Drill into a subtree with get_node_tree after.
Routing inspection. session_status returns the legacy single-session shape by default (sessionId, paired, browserConnected, knownSessions). Pass { all: true } for the list shape — every session in this MCP process with isActive/paired flags. If this MCP process restarted, attach_session with the current browser URL makes that session active again.
JSX Format for add_section
Write standard HTML tags with Tailwind className. The tag determines the node type:
<div>/<section>/<nav> → frame <img> → image
<h1>-<h6>/<p>/<span> → text <button> → button
<a> → link <svg> → icon
<input> → input <video> → video
Icons: <svg icon="arrow-right" className="w-5 h-5 text-gray-600" />
Critical Gotchas
- Artboard
className must include flex flex-col — without it, children overlap at (0,0)
- Artboard
backgroundColor is a property, NOT a className — use backgroundColor: "#1a1a1a", not className: "bg-gray-900"
- Never use arbitrary hex in className —
bg-[#f9f9f9] silently fails. Use named colors (bg-gray-50) or inline style
- Use
grow instead of flex-1 — flex-1 doesn't work in Efecto
- Buttons ignore children — use a flex container with
<span> + <svg> instead
- Always add
w-full on direct children of artboards
Required Structure and Quality Gate
- Name meaningful layers. Give every section, layout group, card, text block, control, image, and icon a concise semantic
name attribute (for example, <section name="Title Slide">, <div name="Metric Group">, <h1 name="Presentation Title">). Never ship generic names such as Frame, Text, or Icon; unnamed purely decorative leaves are the only exception.
- Declare nested layout. Every frame with two or more children must explicitly include
flex or grid in className, including nested wrappers. Add the matching direction, alignment, gap, and wrapping classes; do not rely on implicit block flow.
- Meet WCAG AA contrast. Normal text must reach 4.5:1 and large text 3:1. Evaluate text against its effective rendered background: use its own background when present, otherwise walk through ancestor frames to the artboard, including opacity/alpha compositing. Resolve semantic theme tokens in the active mode before judging contrast.
- Audit until clean. After building or editing, call
audit_design. Fix every contrast-ratio, implicit-block-container, and generic-layer-name finding with batch_update or replace_section, then call audit_design again. If you use repair_design, inspect its changes and re-audit. Do not declare completion until all three finding types are zero, and use get_document to confirm meaningful layers retain semantic names.
Images — Use Real Photos, Not Placeholders
Use search_images to find free, high-quality stock photos from Lummi. No session required — call it anytime.
search_images
query: "conference stage audience"
orientation: "horizontal"
luminance: "dark"
limit: 4
Then apply images to your designs:
- Image node:
add_node with type: "image", src: "<url>", alt: "...", className: "w-full h-[400px] object-cover rounded-2xl"
- Background fill:
set_fill with fill: { type: "image", url: "<url>", size: "cover" }
- In JSX:
<img src="<url>" alt="..." className="w-full h-[400px] object-cover rounded-2xl" />
Tips for graphic design: Match orientation to your artboard (vertical for posters/stories, horizontal for banners/presentations, square for social cards). Use luminance: "dark" for dark-themed designs. Search before designing — build layouts around real images, not empty gray boxes.
Shader Nodes & Visual Effects
Add visual effects to graphic designs with shader nodes. Use add_node with type: "shader".
Generative Backgrounds
Create eye-catching backgrounds without images:
add_node
parentId: "<artboard-id>"
type: "shader"
shaderType: "meshGradient"
className: "w-full h-full"
Shader types: meshGradient (organic blending), dotGrid (tech/data), voronoi (organic cells), liquidMetal (premium), chrome (reflective), pulsar (energy), blackHole (dramatic), glass (frosted), spiral (playful), particles (atmospheric), fireworks (celebration).
Apply Effects to Images
Process photos with ASCII, dither, halftone, glitch, or art effects:
search_images query: "portrait" orientation: "vertical" limit: 1
add_node
parentId: "<artboard-id>"
type: "shader"
inputType: "image"
mediaInput: { mediaUrl: "<url>", mediaType: "image", objectFit: "cover" }
effectId: "halftone-mono"
effectEnabled: true
className: "w-full h-full"
Effect categories: ASCII (ascii-standard, ascii-dense, ascii-minimal, ascii-blocks), Dither (dither-floyd-steinberg, dither-atkinson), Halftone (halftone-mono, halftone-cmyk), Glitch (glitch-vhs, glitch-digital), Art (art-kuwahara, art-crosshatch, art-lineart, art-engraving, art-stipple).
Post-Processes
Stack additional effects: grain, vignette, bloom, scanlines, noise, pixelate, sepia, color-tint.
add_node
parentId: "<id>"
type: "shader"
shaderType: "meshGradient"
postProcesses: [
{ type: "grain", enabled: true, settings: { intensity: 0.3 } },
{ type: "vignette", enabled: true, settings: { intensity: 0.5 } }
]
className: "w-full h-full"
Best for: Presentation backgrounds, poster visuals, event graphics, blog hero images, OG cards with distinctive visual treatments.
Native Animation
Graphic assets can use native Efecto layer animations when the user asks for motion, slides, reels, or presentation playback. Do not use Tailwind animate-*, transition-*, or duration-* classes.
Workflow: inspect the target, call list_animation_presets, then apply a compact plan with apply_animation_plan. Animate hierarchy first: background or hero visual, headline, supporting detail, CTA or event details, then secondary ornaments. Use update_artboard with timelineDuration when the motion needs a deliberate ending.
Good defaults: 0.35-0.6s for hero/title motion, 0.18-0.35s for smaller details, 0.04-0.12s stagger, ease-out entrances, ease-in exits. For title text, use appearBy: "word" or "line"; reserve "char" for kinetic poster moments. For poster, slide, and frame reveals, prefer explicit mask presets (mask-in, fade-mask-in, slide-mask-in, scale-mask-in) and set maskStyle, maskDirection, or maskOrigin when the reveal shape matters.
Mindset: Design for the Context
Every graphic has a context that dictates the rules:
- Presentation slides are projected or screen-shared — big text, simple layouts, one idea per slide
- Event posters are scanned quickly — bold headline, essential details (date, place, CTA), strong visual identity
- Email headers are 600px wide and compete with dozens of other emails — punchy, branded, action-oriented
- Blog hero images set the tone for an article — atmospheric, typographic, or illustrative
- OG/share cards are the first impression of a link — they need to work at thumbnail size AND full size
The common thread: less is more. Every element must earn its place.
Presentations & Pitch Decks
Artboard Sizes
| Format |
Width |
Height |
Use Case |
| Standard (16:9) |
1920 |
1080 |
Presentations, screen share |
| Widescreen (16:10) |
1920 |
1200 |
Mac-native presentations |
| Classic (4:3) |
1440 |
1080 |
Traditional slides, projectors |
Slide Design Rules
- One idea per slide. If you need bullet points, each bullet should be its own slide.
- 30pt rule. At 1920px width, nothing smaller than
text-3xl (30px). If projected, even text-4xl is the minimum.
- 6 words per line, 6 lines max. Less is better. If you have a paragraph, you have a document, not a slide.
- Full-bleed visuals. When using an image, let it fill the entire slide. Overlay text on a solid dark block (not a gradient — use solid colors).
- Consistent grid. Pick a layout system and stick with it across all slides. Title always in the same position.
- Slide numbers. Subtle but present — helps navigation during Q&A.
Slide Types
Title Slide
<section className="flex flex-col items-center justify-center gap-6 p-24 bg-gray-900 w-full h-full">
<span className="text-xl font-semibold text-blue-400 uppercase tracking-widest">Q4 2026 Update</span>
<h1 className="text-7xl font-extrabold text-white text-center leading-none tracking-tight">Building the Future of Design</h1>
<p className="text-2xl text-gray-400 font-medium">Acme Inc. / October 2026</p>
</section>
Section Divider
<section className="flex flex-col items-start justify-center gap-4 px-24 py-16 bg-blue-600 w-full h-full">
<span className="text-xl font-bold text-blue-200 uppercase tracking-widest">Part 02</span>
<h2 className="text-6xl font-extrabold text-white leading-tight">Product Strategy</h2>
</section>
Content Slide (Text + Visual)
<section className="flex items-center gap-16 px-24 py-16 bg-white w-full h-full">
<div className="flex flex-col gap-6 grow">
<h2 className="text-4xl font-bold text-gray-900 leading-snug">Revenue grew 3x in 12 months</h2>
<p className="text-2xl text-gray-500 leading-relaxed">We hit $10M ARR ahead of schedule, driven by enterprise adoption and a 95% retention rate.</p>
</div>
<div className="w-[600px] h-[500px] bg-gray-100 rounded-3xl"></div>
</section>
Big Number / Stat Slide
<section className="flex flex-col items-center justify-center gap-6 p-24 bg-gray-900 w-full h-full">
<span className="text-9xl font-black text-blue-400">3x</span>
<h2 className="text-4xl font-bold text-white text-center">Revenue growth in 12 months</h2>
<p className="text-xl text-gray-500">$3.2M to $10M ARR</p>
</section>
Quote Slide
<section className="flex flex-col items-center justify-center gap-8 px-32 py-24 bg-gray-50 w-full h-full">
<p className="text-4xl text-gray-700 text-center leading-relaxed italic">"The best tool we've adopted this year. Our design velocity doubled."</p>
<div className="flex items-center gap-4">
<div className="w-16 h-16 bg-gray-300 rounded-full"></div>
<div className="flex flex-col">
<span className="text-xl font-semibold text-gray-900">Jamie Rivera</span>
<span className="text-lg text-gray-500">Head of Design, Linear</span>
</div>
</div>
</section>
Closing / CTA Slide
<section className="flex flex-col items-center justify-center gap-8 p-24 bg-gray-900 w-full h-full">
<h2 className="text-6xl font-extrabold text-white text-center">Let's build together</h2>
<p className="text-2xl text-gray-400 text-center">hello@acme.com</p>
<div className="flex items-center gap-2">
<div className="w-10 h-10 bg-blue-600 rounded-lg"></div>
<span className="text-xl font-bold text-gray-400">Acme Inc.</span>
</div>
</section>
Pitch Deck Flow (10 slides)
- Title — Company name, tagline, date
- Problem — What pain exists (one stat or quote)
- Solution — What you do (one sentence + visual)
- Demo / Product — Screenshot or mockup (full-bleed)
- Market — TAM/SAM/SOM or market size stat
- Traction — Key metrics (big numbers)
- Business Model — How you make money (simple diagram)
- Team — Founders + key hires (photos + one-line bios)
- Ask — What you need (funding amount, partnerships)
- Closing — Contact info, thank you
Speaker Notes
Every slide artboard has a speakerNotes field — plain text the presenter sees in Efecto's Present + Control mode. Set it whenever you author a slide.
- Pass
speakerNotes to create_artboard and update_artboard.
- Read existing notes via
list_artboards (the field appears in the result) or get_document (rendered as a speakerNotes="..." attribute on the Artboard tag).
- Write the speaker's script, not the slide content. The slide is the headline; the notes are what gets said out loud.
- 2–4 sentences per slide. Anchor the point + transition to the next slide.
- Leave blank when the slide is self-explanatory (title cards, one-word statement slides).
create_artboard:
name: "03 — Traction"
width: 1920
height: 1080
backgroundColor: "#0a0a0a"
className: "flex flex-col"
speakerNotes: "Walk through the 3x ARR growth. Highlight that 80% came from enterprise upgrades, not net-new logos. Set up the next slide on retention by saying 'and the reason this is durable is...'."
Presentation Playback
The end user launches a deck from the Play dropdown in Efecto: Prototype (in-app emulator), Present (single-window fullscreen), or Present + Control (audience window + speaker controller with current slide, next slide, notes, timer). Slide order follows the layer-panel order by default; the controller has a visual (y, x) toggle for spatially-laid-out decks. Your job is to author slides + notes — the user picks playback mode.
Event Posters & Flyers
Artboard Sizes
| Format |
Width |
Height |
Use Case |
| Digital Poster |
1080 |
1350 |
Online events, sharing |
| A4 Portrait |
794 |
1123 |
Print posters (210x297mm at 96dpi) |
| Letter Portrait |
816 |
1056 |
US letter print (8.5x11in at 96dpi) |
| Wide Banner |
1920 |
600 |
Website event banners |
| Square |
1080 |
1080 |
Multi-purpose, adaptable |
Event Poster Hierarchy
Every event poster needs these 4 elements in this priority order:
- What — The event name (largest text, the visual anchor)
- When — Date and time (second-largest, must be instantly readable)
- Where — Location or "Online" (clear and prominent)
- CTA — "Register now" / "Get tickets" / "RSVP" (button or highlighted text)
Everything else (speakers, sponsors, descriptions) is secondary.
Event Poster Template
<section className="flex flex-col justify-between p-16 bg-gray-900 w-full h-full">
<div className="flex items-center justify-between">
<span className="text-lg font-bold text-gray-400 uppercase tracking-widest">Design Conf 2026</span>
<div className="w-12 h-12 bg-blue-500 rounded-xl"></div>
</div>
<div className="flex flex-col gap-6">
<h1 className="text-7xl font-black text-white leading-none">The Future of Interface Design</h1>
<div className="flex flex-col gap-2">
<p className="text-3xl font-bold text-blue-400">March 15, 2026</p>
<p className="text-2xl text-gray-400">San Francisco / Moscone Center</p>
</div>
<button className="w-fit px-10 py-4 text-xl font-bold text-gray-900 bg-white rounded-2xl">Get Tickets</button>
</div>
</section>
Conference Talk Slide
<section className="flex items-end gap-8 p-16 bg-gray-900 w-full h-full">
<div className="flex flex-col gap-4 grow">
<span className="text-lg font-semibold text-purple-400 uppercase tracking-wider">Keynote</span>
<h1 className="text-5xl font-extrabold text-white leading-tight">Designing with AI: What Changes and What Doesn't</h1>
<div className="flex items-center gap-3">
<div className="w-12 h-12 bg-gray-700 rounded-full"></div>
<div className="flex flex-col">
<span className="text-lg font-semibold text-white">Pablo Stanley</span>
<span className="text-lg text-gray-500">Founder, Efecto</span>
</div>
</div>
</div>
</section>
Email Headers & Newsletter Graphics
Artboard Sizes
| Format |
Width |
Height |
Use Case |
| Email Header |
600 |
200 |
Top-of-email banner (max-width 600px) |
| Email Hero |
600 |
400 |
Hero image in newsletter |
| Wide Email Hero |
1200 |
400 |
Retina email hero (scales to 600px) |
Email Design Rules
- 600px max width is the universal email constraint. Design at 600px or 1200px (retina 2x).
- Simple layouts only. Email rendering engines are stuck in 2005. Stick to single-column or two-column max.
- Big, obvious CTA. One primary action per email. Make the button impossible to miss.
- Minimal text. The email body handles the message — the graphic is just the visual hook.
- Brand-heavy. Logo, brand colors, consistent header across all emails. Recognition matters in an inbox.
Email Header Template
<section className="flex items-center justify-between px-8 py-6 bg-gray-900 w-full h-full">
<div className="flex items-center gap-3">
<div className="w-8 h-8 bg-blue-500 rounded-lg"></div>
<span className="text-xl font-bold text-white">Acme Weekly</span>
</div>
<span className="text-lg text-gray-400">March 2026</span>
</section>
Newsletter Hero Template
<section className="flex flex-col items-center justify-center gap-6 px-12 py-12 bg-blue-600 w-full h-full">
<h1 className="text-4xl font-extrabold text-white text-center leading-tight">What we shipped this week</h1>
<p className="text-xl text-blue-100 text-center">3 features, 2 fixes, 1 big announcement</p>
<button className="px-8 py-3 text-lg font-bold text-blue-600 bg-white rounded-xl">Read the update</button>
</section>
Blog & Article Hero Images
Artboard Sizes
| Format |
Width |
Height |
Use Case |
| Blog Hero (16:9) |
1200 |
675 |
Standard blog header |
| Blog Hero (2:1) |
1200 |
600 |
Wide blog header |
| Medium Article |
1400 |
788 |
Medium.com header |
| Substack |
1456 |
816 |
Substack header image |
Blog Hero Tips
- Blog heroes set the mood, not deliver information. They can be more abstract and atmospheric.
- Title text on the hero is optional — many blogs render the title in HTML below the image.
- If including text:
text-5xl to text-6xl, centered, with plenty of breathing room.
- Solid color backgrounds with minimal text work well for a clean, modern look.
- Use image fills (
set_fill with type "image") for photographic heroes.
Blog Hero Template
<section className="flex flex-col items-center justify-center gap-6 px-16 py-16 bg-gray-900 w-full h-full">
<span className="text-lg font-semibold text-blue-400 uppercase tracking-widest">Engineering</span>
<h1 className="text-5xl font-extrabold text-white text-center leading-tight max-w-[900px]">How we reduced build times by 80%</h1>
<p className="text-xl text-gray-500 font-medium">March 2026 / 8 min read</p>
</section>
OG Images & Share Cards
Artboard Sizes
| Format |
Width |
Height |
Use Case |
| Open Graph |
1200 |
630 |
og:image for link previews (Facebook, Discord, Slack, iMessage) |
| Twitter Card |
1200 |
628 |
twitter:image for tweet link previews |
| WhatsApp Preview |
1200 |
630 |
Link preview in chats |
OG Image Best Practices
OG images appear when someone shares a URL. They render at different sizes depending on the platform (300px on Slack, 500px on Facebook, 120px in some chat apps).
- Title is king. The page title or article headline should dominate the image.
text-5xl to text-6xl.
- Brand anchor. Logo or brand name in a corner — consistent across all OG images.
- No fine details. Renders tiny on many platforms. Simple layout, high contrast, big text.
- Left-aligned text works well — many platforms crop the right edge on mobile.
OG Image Template
<section className="flex items-center gap-12 px-16 py-12 bg-white w-full h-full">
<div className="flex flex-col gap-4 grow">
<div className="flex items-center gap-2">
<div className="w-8 h-8 bg-blue-600 rounded-lg"></div>
<span className="text-lg font-bold text-gray-400">acme.com</span>
</div>
<h1 className="text-5xl font-extrabold text-gray-900 leading-tight">How we reduced build times by 80%</h1>
<p className="text-xl text-gray-500">A deep dive into our new CI/CD pipeline.</p>
</div>
<div className="w-[250px] h-[250px] bg-blue-100 rounded-3xl"></div>
</section>
Certificates & Awards
Artboard Sizes
| Format |
Width |
Height |
Use Case |
| Landscape Certificate |
1400 |
1000 |
Course completion, awards |
| A4 Landscape |
1123 |
794 |
Printable certificate |
Certificate Template
<section className="flex flex-col items-center justify-center gap-8 p-24 bg-white w-full h-full border-8 border-gray-200">
<div className="flex items-center gap-3">
<div className="w-10 h-10 bg-blue-600 rounded-lg"></div>
<span className="text-2xl font-bold text-gray-900">Acme Academy</span>
</div>
<span className="text-xl text-gray-400 uppercase tracking-widest font-semibold">Certificate of Completion</span>
<h1 className="text-5xl font-extrabold text-gray-900 text-center">Advanced Design Systems</h1>
<p className="text-2xl text-gray-500 text-center">Awarded to</p>
<p className="text-4xl font-bold text-blue-600">Jane Smith</p>
<div className="flex items-center gap-12">
<div className="flex flex-col items-center gap-1">
<span className="text-lg text-gray-400">Date</span>
<span className="text-lg font-semibold text-gray-700">March 6, 2026</span>
</div>
<div className="flex flex-col items-center gap-1">
<span className="text-lg text-gray-400">Instructor</span>
<span className="text-lg font-semibold text-gray-700">Pablo Stanley</span>
</div>
</div>
</section>
Business Cards
The most constrained and craft-dependent format in graphic design. Every pixel matters.
Core Principles
- Restraint is everything. A business card has ~30 cm² to work with. Every element must earn its place.
- Hierarchy through scale contrast. Name LARGE, title medium, contact details small. Three levels, max.
- Whitespace is luxury. The most memorable cards are the ones with the most breathing room. Resist filling space.
- One signature element. A bold color block, an oversized initial, a geometric accent — pick ONE.
Artboard Setup
- Standard: 336x192 (3.5" x 2" at 96 DPI) or 672x384 for higher fidelity
- Two artboards for front/back: "Front" and "Back"
- Front: name + title + brand. Back: contact details + address.
- Position side-by-side: x=0 for front, x=width+60 for back
Front Layout Patterns
- Classic: Logo top-left, name center or left-aligned, title below name. Clean, professional.
- Bold: Name in text-3xl or text-4xl spanning most of the card. Title in text-xs uppercase tracking-widest.
- Minimal: Just the name, centered, with generous margins. Nothing else on front.
- Asymmetric: Name left-aligned, large color block or accent shape on right third.
- Branded: Full-bleed brand color with reversed (white) text.
Back Layout Patterns
- Info stack: Left-aligned column: phone, email, website, address. Small icons optional.
- Two-column: Contact left, address right.
- Centered: All info centered, separated by subtle dividers or spacing.
Typography
- Name: text-xl to text-3xl, font-bold or font-extrabold. This is the HERO of the card.
- Title/role: text-xs to text-sm, font-medium, text-muted-foreground. Quiet, subordinate.
- Contact: text-xs, font-normal. Legible but small. Use tracking-wide for all-caps labels.
- NEVER use more than 2 font weights on a business card. Bold + normal. That's it.
Color Rules
- TWO colors max (plus black/white). Brand color + neutral.
- Full-bleed color backgrounds make cards stand out physically.
- Dark cards (bg-zinc-950, bg-slate-900) feel premium.
Rules
- NO paragraphs. No sentences. Just name, title, contact data.
- NO decorative borders around the entire card — they feel dated.
- ALWAYS include: name, title/role, at least email and phone.
- Horizontal orientation is standard. Vertical is bold and distinctive — suggest it for creative professionals.
Resumes / CVs
A single-page professional document that must be scannable in 6 seconds.
Core Principles
- Scannable in seconds. Recruiters spend 6-10 seconds per resume. Visual hierarchy is critical.
- Information-dense but organized. Resumes pack a lot of content. The design's job is to make density feel clear, not cluttered.
- Conservative elegance. Bold design choices should be subtle — a strong color accent, a distinctive layout — not experimental.
- Content is king. The text matters more than the styling. Never sacrifice information space for visual decoration.
Artboard Setup
- US Letter: 816x1056 (8.5" x 11" at 96 DPI)
- A4: 794x1123 (210mm x 297mm at 96 DPI)
- Single artboard — resumes should be ONE page.
Layout Patterns
- Two-column (most popular): Narrow sidebar (w-1/3) for contact, skills, education + wide main column (w-2/3) for experience, projects.
- Single-column: Full-width, traditional. Header -> Summary -> Experience -> Education -> Skills. Classic and ATS-friendly.
- Top header + single column: Bold header band with name + contact, then single-column content below.
- Asymmetric: Sidebar with accent color background for visual distinction.
Section Hierarchy
- Name + contact — text-2xl to text-3xl font-bold, followed by email, phone, location, LinkedIn in text-xs
- Experience — company + role + dates, with 2-3 bullet achievements each
- Education — degree, school, year
- Skills — grouped by category (Languages, Frameworks, Tools)
- Optional: Summary (2 lines max), Projects, Certifications
Typography
- Name: text-2xl to text-3xl, font-bold. The only large text on the page.
- Section headers: text-sm uppercase tracking-widest font-bold — acts as visual anchors
- Company/role: text-sm font-semibold for company, font-medium for role
- Body/bullets: text-xs to text-sm, font-normal. Compact but readable.
- Dates: text-xs, text-muted-foreground, right-aligned or inline
Color Strategy
- ONE accent color for section headers, sidebar, or name. Subtle — not a rainbow.
- Dark: slate-900 or zinc-900 for body text. Never pure black.
- Accent choices: blue-700 (professional), emerald-700 (creative), slate-700 (conservative), amber-700 (warm)
- Sidebar background: muted accent like slate-50, blue-50, or a subtle tint
Rules
- ONE page. No exceptions unless explicitly asked for multi-page CV.
- NO photos unless explicitly asked (photos on resumes are culturally variable).
- NO icons for contact info — they waste space. Just text.
- NO decorative elements. Every pixel should convey information.
- USE consistent date formatting: "Jan 2023 - Present" or "2023 - Present"
- USE real-sounding content, not "Lorem ipsum." Realistic job titles, companies, and bullet points.
Flyers (Detailed Design Guide)
Extends the "Event Posters & Flyers" section above with deeper layout patterns, color psychology, and typographic rules for standalone promotional flyers.
Core Principles
- Impact from 3 feet away. Flyers compete for attention on bulletin boards, in stacks, on screens. The headline must PUNCH.
- Essential info only. WHAT + WHEN + WHERE + HOW (to attend/buy/register). Everything else is noise.
- Bold visual hierarchy. Three tiers: (1) Headline/event name — massive, (2) Key details — medium, (3) Fine print — small.
- Energetic composition. Flyers should feel dynamic — angled text, color blocks, overlapping elements, strong contrast.
Artboard Setup
- Standard flyer: 816x1056 (US Letter) or 794x1123 (A4)
- Half-page: 816x528 or compact 540x720
- Social/digital flyer: 1080x1080 (square) or 1080x1350 (4:5)
Layout Patterns
- Stacked bold: Giant headline top, image/graphic middle, details bottom. Reads top-to-bottom.
- Full-bleed image + overlay: Photo fills the card, semi-transparent overlay for text readability. Dramatic.
- Split composition: Color block top (headline) + white/dark bottom (details). Clean separation.
- Diagonal energy: Angled divider between image and text zones. Feels active and dynamic.
- Centered stack: Everything centered, stacked vertically. Works for elegant/minimal events.
- Typographic: No image — pure type. Giant headline, details in contrasting weight/size. Bold and editorial.
Typography
- Headline: text-5xl to text-9xl, font-extrabold or font-black, tracking-tight. ALL CAPS is encouraged.
- Date: text-xl to text-2xl, font-bold. Consider uppercase tracking-widest for emphasis.
- Details: text-sm to text-base, font-normal. Quiet but readable.
- MAX 2 text sizes for details (date + location should be similar). Headline is the outlier.
Color Psychology for Events
- Concert/party: Neon on black (emerald-400, fuchsia-500, cyan-400 on zinc-950). High energy.
- Conference/professional: Dark blue or slate on white. Clean authority.
- Community/cultural: Warm tones (amber, orange, rose) on cream or dark backgrounds.
- Sale/promotion: Red + yellow/white. Urgency colors. bg-red-600 text-white.
- Art/gallery: Monochromatic or black + one accent. Minimalist sophistication.
Rules
- NO tiny text. If the date isn't readable at arm's length, it's too small.
- NO walls of text. A flyer is NOT a brochure. Max 3-4 short text blocks.
- ALWAYS include date, time, location, and how to attend. Missing info = useless flyer.
- CONTRAST is mandatory. Text must be instantly readable over any background.
Restaurant / Cafe Menus
A functional document that must be beautiful, scannable, and make food sound irresistible.
Core Principles
- Scannability first. Customers scan menus in an F-pattern or Z-pattern. Category headers must be instantly visible.
- Make food the hero. The item names and descriptions should dominate — not the decoration.
- Price alignment. Prices must be easy to find but not dominant. Right-aligned, consistent formatting.
- Atmosphere through design. The menu IS the restaurant's brand. Its style should match the dining experience.
Artboard Setup
- Single page menu: 816x1056 (letter) or 794x1123 (A4)
- Folded menu (each panel): 408x528 or similar half-page
- Compact/table tent: 540x720 or 480x640
- For multi-page: create multiple artboards side-by-side
Layout Patterns
- Single column: Category by category, top to bottom. Best for short menus (< 20 items).
- Two column: Left column + right column. Maximizes items per page. Use for larger menus.
- Centered elegant: Everything centered, generous spacing. Perfect for fine dining with fewer items.
- Grid cards: Items in card-style blocks with image placeholders. Modern, casual restaurants.
- Asymmetric: One wide feature column + one narrow specials/drinks column.
Section Structure
STARTERS <- Category header: text-lg to text-xl, font-bold, uppercase tracking-widest
Bruschetta ............... $12 <- Item name: text-sm font-semibold, price right-aligned
Tomato, basil, balsamic <- Description: text-xs text-muted-foreground
Burrata Salad ............ $16
Heirloom tomato, arugula, olive oil
Typography
- Restaurant name: text-3xl to text-5xl, distinctive. This sets the tone.
- Category headers: text-lg to text-xl, font-bold, uppercase, tracking-wide. Clear dividers.
- Item names: text-sm to text-base, font-semibold. The star of each line.
- Descriptions: text-xs to text-sm, font-normal, text-muted-foreground. Appetizing but compact.
- Prices: text-sm, font-medium, right-aligned or after dot leaders.
Style by Restaurant Type
- Fine dining: Minimal, serif-feeling (use font-light + tracking-wide). Lots of whitespace. Dark bg or ivory.
- Casual/bistro: Warm tones, slightly playful. Rounded corners on sections. bg-amber-50 or bg-stone-50.
- Modern/trendy: Clean sans-serif, dark theme (bg-zinc-950), accent color for specials. Minimal ornament.
- Cafe: Light, airy. bg-white or bg-stone-50. Small illustrations encouraged.
- Bar/cocktail: Dark and moody. bg-zinc-950 or bg-slate-900. Gold or amber accents. Atmospheric.
Rules
- NO prices hidden or hard to find. Price transparency builds trust.
- NO more than 7-9 items per category. Too many choices paralyze diners.
- ALWAYS include: restaurant name, categories, item names, descriptions, prices.
- USE appetizing language: "house-made", "slow-roasted", "seasonal", "fresh" — not "good" or "tasty."
- Dietary markers (V, VG, GF) should be subtle: text-xs, after the item name, muted color.
Infographics / Data Visualization
A visual narrative that makes data compelling, memorable, and shareable.
Core Principles
- Story first, data second. An infographic tells a story. The data supports it. Lead with the narrative arc, not the raw numbers.
- One key insight. Every infographic should have ONE takeaway the viewer remembers. Everything else supports that insight.
- Visual encoding. Numbers become shapes, sizes, colors, positions. Never just text + numbers — translate data into visual patterns.
- Top-to-bottom flow. Infographics read like a scroll. Clear sections with clear transitions.
Artboard Setup
- Standard: 800x2400 to 1080x3200 (tall, scrollable)
- Social-friendly: 1080x1920 (9:16) or 1080x1350 (4:5)
- Presentation: 1920x1080 (landscape, one key chart)
- Use one tall artboard, NOT multiple. Infographics are single continuous pieces.
Section Flow
- Title banner — Bold headline that frames the story. "The State of...", "How X Changed Y", "By the Numbers: Z"
- Key stat — One massive number (text-7xl to text-9xl) that hooks attention. "73% of..." or "$4.2 Trillion"
- Context section — 2-3 sentences explaining why this matters. text-base, max-w-xl.
- Data sections (2-4) — Each visualizing one aspect of the data. Different visual encoding per section.
- Comparison — Side-by-side or before/after. Shows contrast clearly.
- Conclusion/CTA — Key takeaway restated, source credits.
Data Visualization Patterns (Using Efecto Nodes)
Since Efecto doesn't have native chart components, represent data visually with layout:
- Bar chart: Horizontal frames with width proportional to value. Label left, bar right.
- Stat cards: Large number (text-6xl font-bold) + label (text-xs uppercase). Grid of 3-4.
- Comparison columns: Two columns side-by-side, each with stacked items. Color-coded.
- Timeline: Vertical line (w-0.5 bg-border) with alternating left/right content nodes.
- Icon array: Grid of small icons (w-4 h-4) where colored vs muted represent proportions.
- Ranked list: Numbered items with bars showing magnitude. 1-5 items.
Typography
- Title: text-3xl to text-5xl, font-extrabold, tracking-tight. Sets the topic.
- Key stat: text-7xl to text-9xl, font-black. The eye-catcher.
- Section headers: text-xl font-bold. Separates data sections.
- Labels: text-xs uppercase tracking-widest font-medium. Data annotations.
- Body text: text-sm, max 2-3 lines per section. Support, not bulk.
- Source: text-xs text-muted-foreground, bottom of infographic.
Color Strategy
…(truncated)
1---2name: efecto-graphic-design3description: Design graphic assets with Efecto — presentations, pitch decks, event posters, email headers, blog images, open graph cards, business cards, resumes, menus, infographics, invitations, newsletters, and documents. Use when asked to "design a poster", "create a pitch deck", "make a presentation", "design a business card", or any graphic design task. Requires Efecto MCP server.4---56# Efecto — Graphic Design Guide78Design graphic assets — presentations, pitch decks, event posters, email headers, blog images, OG cards, business cards, resumes, menus, infographics, invitations, newsletters, and documents — using the Efecto design tool.910---1112## Setup1314This skill requires the **Efecto MCP server**. Check if it's available by looking for tools like `create_session`, `add_section`, or `get_document` in your tool list.1516**If Efecto tools are NOT available, install the MCP server:**1718### Claude Code19```bash20claude mcp add efecto -- npx -y @efectoapp/mcp21```2223### Cursor24Add to `.cursor/mcp.json`:25```json26{27 "mcpServers": {28 "efecto": {29 "command": "npx",30 "args": ["-y", "@efectoapp/mcp"]31 }32 }33}34```3536### Windsurf / VS Code / Other MCP Clients37```json38{39 "mcpServers": {40 "efecto": {41 "command": "npx",42 "args": ["-y", "@efectoapp/mcp"]43 }44 }45}46```4748Once installed, you'll have access to 68 MCP tools, including image search and native animation authoring. The MCP server connects your agent to the Efecto design canvas at [efecto.app](https://efecto.app).4950### How It Works51521. Your agent creates an Efecto session via MCP (`create_session`)532. You open the returned design URL in your browser543. The agent pushes design commands — you see every change live554. Iterate with natural language until the design is perfect5657---5859## Using Efecto Tools — Quick Reference6061### Session Workflow6263Every design starts with a session:6465```66create_session label: "Pitch Deck"67```68Returns `{ sessionId, documentId, designUrl }`. Tell the user to open the URL, then call `wait_for_connection` (blocks until paired). If the user already has an Efecto URL with `?session=...`, call `attach_session` with that URL instead of creating a duplicate session. Never call `create_session` twice to "reconnect" — a paired session refuses overwrite without `force: true`. Use `session_status` to inspect routing (`{ all: true }` for the full session list).6970### Building Designs7172The primary workflow is: **create artboard → add sections with JSX → refine with updates**.7374```75# 1. Create an artboard76create_artboard name: "Slide 1" width: 1920 height: 1080 backgroundColor: "#1a1a1a" className: "flex flex-col"7778# 2. Add content with JSX (most efficient way to build)79add_section parentId: "<artboard-id>" jsx: '<section name="Title Slide" className="flex flex-col items-center justify-center gap-6 p-24 w-full h-full">80 <h1 name="Presentation Title" className="text-7xl font-extrabold text-white text-center">Your Title Here</h1>81 <p name="Presentation Subtitle" className="text-2xl text-gray-400">Subtitle text</p>82</section>'8384# 3. Read current state to get node IDs85get_document8687# 4. Fine-tune with batch updates88batch_update updates: [89 { nodeId: "abc", className: "text-8xl font-black text-white" },90 { nodeId: "def", textContent: "New text" }91]92```9394### All 68 Tools9596| Category | Tools |97|----------|-------|98| **Session** | `create_session`, `attach_session`, `wait_for_connection`, `session_status`, `close_session` |99| **Reading** | `get_document`, `get_selection`, `get_node_tree`, `list_artboards`, `find_nodes` |100| **Creating** | `create_artboard`, `add_section`, `add_node` |101| **Modifying** | `update_node`, `update_class`, `update_artboard` (accepts `speakerNotes` for slides and `timelineDuration` for animation), `batch_update`, `replace_section` |102| **Animation** | `list_animation_presets`, `apply_animation_plan`, `clear_animations` |103| **Organizing** | `move_node`, `duplicate_node`, `duplicate_artboard`, `group_nodes`, `ungroup_node`, `reorder_node` |104| **Selection** | `select_nodes`, `deselect_all`, `set_visibility`, `delete_nodes`, `delete_artboard` |105| **Alignment** | `align_nodes`, `distribute_nodes` |106| **Fill & Export** | `set_fill`, `export_image` |107| **Viewport** | `zoom_to_artboard`, `zoom_to_fit`, `set_viewport`, `move_artboard` |108| **Document** | `rename_document`, `new_document` |109| **History** | `undo`, `redo` |110| **Theme** | `get_theme`, `set_theme`, `set_theme_mode`, `reset_theme` |111| **Quality** | `audit_design`, `repair_design` |112113**Scoped reads (large docs).** `get_document` returns the whole tree by default — on multi-artboard docs that can blow past tool-result token caps. Prefer scoped modes: `outline: true` (one-line summary per top-level child), `artboardId: "..."` (single artboard), `maxDepth: N` (cap descent; 0 = artboard header only, 1 = top-level children). Response includes an approx-token count so you can decide whether to widen. Drill into a subtree with `get_node_tree` after.114115**Routing inspection.** `session_status` returns the legacy single-session shape by default (sessionId, paired, browserConnected, knownSessions). Pass `{ all: true }` for the list shape — every session in this MCP process with isActive/paired flags. If this MCP process restarted, `attach_session` with the current browser URL makes that session active again.116117### JSX Format for `add_section`118119Write standard HTML tags with Tailwind `className`. The tag determines the node type:120121```122<div>/<section>/<nav> → frame <img> → image123<h1>-<h6>/<p>/<span> → text <button> → button124<a> → link <svg> → icon125<input> → input <video> → video126```127128Icons: `<svg icon="arrow-right" className="w-5 h-5 text-gray-600" />`129130### Critical Gotchas131132- **Artboard `className` must include `flex flex-col`** — without it, children overlap at (0,0)133- **Artboard `backgroundColor` is a property, NOT a className** — use `backgroundColor: "#1a1a1a"`, not `className: "bg-gray-900"`134- **Never use arbitrary hex in className** — `bg-[#f9f9f9]` silently fails. Use named colors (`bg-gray-50`) or inline `style`135- **Use `grow` instead of `flex-1`** — `flex-1` doesn't work in Efecto136- **Buttons ignore children** — use a flex container with `<span>` + `<svg>` instead137- **Always add `w-full`** on direct children of artboards138139### Required Structure and Quality Gate140141- **Name meaningful layers.** Give every section, layout group, card, text block, control, image, and icon a concise semantic `name` attribute (for example, `<section name="Title Slide">`, `<div name="Metric Group">`, `<h1 name="Presentation Title">`). Never ship generic names such as `Frame`, `Text`, or `Icon`; unnamed purely decorative leaves are the only exception.142- **Declare nested layout.** Every frame with two or more children must explicitly include `flex` or `grid` in `className`, including nested wrappers. Add the matching direction, alignment, gap, and wrapping classes; do not rely on implicit block flow.143- **Meet WCAG AA contrast.** Normal text must reach 4.5:1 and large text 3:1. Evaluate text against its effective rendered background: use its own background when present, otherwise walk through ancestor frames to the artboard, including opacity/alpha compositing. Resolve semantic theme tokens in the active mode before judging contrast.144- **Audit until clean.** After building or editing, call `audit_design`. Fix every `contrast-ratio`, `implicit-block-container`, and `generic-layer-name` finding with `batch_update` or `replace_section`, then call `audit_design` again. If you use `repair_design`, inspect its changes and re-audit. Do not declare completion until all three finding types are zero, and use `get_document` to confirm meaningful layers retain semantic names.145146---147148## Images — Use Real Photos, Not Placeholders149150Use `search_images` to find free, high-quality stock photos from Lummi. **No session required** — call it anytime.151152```153search_images154 query: "conference stage audience"155 orientation: "horizontal"156 luminance: "dark"157 limit: 4158```159160Then apply images to your designs:161162- **Image node**: `add_node` with `type: "image"`, `src: "<url>"`, `alt: "..."`, `className: "w-full h-[400px] object-cover rounded-2xl"`163- **Background fill**: `set_fill` with `fill: { type: "image", url: "<url>", size: "cover" }`164- **In JSX**: `<img src="<url>" alt="..." className="w-full h-[400px] object-cover rounded-2xl" />`165166**Tips for graphic design**: Match `orientation` to your artboard (vertical for posters/stories, horizontal for banners/presentations, square for social cards). Use `luminance: "dark"` for dark-themed designs. Search before designing — build layouts around real images, not empty gray boxes.167168---169170## Shader Nodes & Visual Effects171172Add visual effects to graphic designs with shader nodes. Use `add_node` with `type: "shader"`.173174### Generative Backgrounds175176Create eye-catching backgrounds without images:177178```179add_node180 parentId: "<artboard-id>"181 type: "shader"182 shaderType: "meshGradient"183 className: "w-full h-full"184```185186**Shader types**: `meshGradient` (organic blending), `dotGrid` (tech/data), `voronoi` (organic cells), `liquidMetal` (premium), `chrome` (reflective), `pulsar` (energy), `blackHole` (dramatic), `glass` (frosted), `spiral` (playful), `particles` (atmospheric), `fireworks` (celebration).187188### Apply Effects to Images189190Process photos with ASCII, dither, halftone, glitch, or art effects:191192```193search_images query: "portrait" orientation: "vertical" limit: 1194add_node195 parentId: "<artboard-id>"196 type: "shader"197 inputType: "image"198 mediaInput: { mediaUrl: "<url>", mediaType: "image", objectFit: "cover" }199 effectId: "halftone-mono"200 effectEnabled: true201 className: "w-full h-full"202```203204**Effect categories**: ASCII (`ascii-standard`, `ascii-dense`, `ascii-minimal`, `ascii-blocks`), Dither (`dither-floyd-steinberg`, `dither-atkinson`), Halftone (`halftone-mono`, `halftone-cmyk`), Glitch (`glitch-vhs`, `glitch-digital`), Art (`art-kuwahara`, `art-crosshatch`, `art-lineart`, `art-engraving`, `art-stipple`).205206### Post-Processes207208Stack additional effects: `grain`, `vignette`, `bloom`, `scanlines`, `noise`, `pixelate`, `sepia`, `color-tint`.209210```211add_node212 parentId: "<id>"213 type: "shader"214 shaderType: "meshGradient"215 postProcesses: [216 { type: "grain", enabled: true, settings: { intensity: 0.3 } },217 { type: "vignette", enabled: true, settings: { intensity: 0.5 } }218 ]219 className: "w-full h-full"220```221222**Best for**: Presentation backgrounds, poster visuals, event graphics, blog hero images, OG cards with distinctive visual treatments.223224---225226## Native Animation227228Graphic assets can use native Efecto layer animations when the user asks for motion, slides, reels, or presentation playback. Do not use Tailwind `animate-*`, `transition-*`, or `duration-*` classes.229230Workflow: inspect the target, call `list_animation_presets`, then apply a compact plan with `apply_animation_plan`. Animate hierarchy first: background or hero visual, headline, supporting detail, CTA or event details, then secondary ornaments. Use `update_artboard` with `timelineDuration` when the motion needs a deliberate ending.231232Good defaults: 0.35-0.6s for hero/title motion, 0.18-0.35s for smaller details, 0.04-0.12s stagger, `ease-out` entrances, `ease-in` exits. For title text, use `appearBy: "word"` or `"line"`; reserve `"char"` for kinetic poster moments. For poster, slide, and frame reveals, prefer explicit mask presets (`mask-in`, `fade-mask-in`, `slide-mask-in`, `scale-mask-in`) and set `maskStyle`, `maskDirection`, or `maskOrigin` when the reveal shape matters.233234---235236## Mindset: Design for the Context237238Every graphic has a context that dictates the rules:239240- **Presentation slides** are projected or screen-shared — big text, simple layouts, one idea per slide241- **Event posters** are scanned quickly — bold headline, essential details (date, place, CTA), strong visual identity242- **Email headers** are 600px wide and compete with dozens of other emails — punchy, branded, action-oriented243- **Blog hero images** set the tone for an article — atmospheric, typographic, or illustrative244- **OG/share cards** are the first impression of a link — they need to work at thumbnail size AND full size245246The common thread: **less is more.** Every element must earn its place.247248---249250## Presentations & Pitch Decks251252### Artboard Sizes253254| Format | Width | Height | Use Case |255|--------|-------|--------|----------|256| **Standard (16:9)** | 1920 | 1080 | Presentations, screen share |257| **Widescreen (16:10)** | 1920 | 1200 | Mac-native presentations |258| **Classic (4:3)** | 1440 | 1080 | Traditional slides, projectors |259260### Slide Design Rules2612621. **One idea per slide.** If you need bullet points, each bullet should be its own slide.2632. **30pt rule.** At 1920px width, nothing smaller than `text-3xl` (`30px`). If projected, even `text-4xl` is the minimum.2643. **6 words per line, 6 lines max.** Less is better. If you have a paragraph, you have a document, not a slide.2654. **Full-bleed visuals.** When using an image, let it fill the entire slide. Overlay text on a solid dark block (not a gradient — use solid colors).2665. **Consistent grid.** Pick a layout system and stick with it across all slides. Title always in the same position.2676. **Slide numbers.** Subtle but present — helps navigation during Q&A.268269### Slide Types270271#### Title Slide272273```jsx274<section className="flex flex-col items-center justify-center gap-6 p-24 bg-gray-900 w-full h-full">275 <span className="text-xl font-semibold text-blue-400 uppercase tracking-widest">Q4 2026 Update</span>276 <h1 className="text-7xl font-extrabold text-white text-center leading-none tracking-tight">Building the Future of Design</h1>277 <p className="text-2xl text-gray-400 font-medium">Acme Inc. / October 2026</p>278</section>279```280281#### Section Divider282283```jsx284<section className="flex flex-col items-start justify-center gap-4 px-24 py-16 bg-blue-600 w-full h-full">285 <span className="text-xl font-bold text-blue-200 uppercase tracking-widest">Part 02</span>286 <h2 className="text-6xl font-extrabold text-white leading-tight">Product Strategy</h2>287</section>288```289290#### Content Slide (Text + Visual)291292```jsx293<section className="flex items-center gap-16 px-24 py-16 bg-white w-full h-full">294 <div className="flex flex-col gap-6 grow">295 <h2 className="text-4xl font-bold text-gray-900 leading-snug">Revenue grew 3x in 12 months</h2>296 <p className="text-2xl text-gray-500 leading-relaxed">We hit $10M ARR ahead of schedule, driven by enterprise adoption and a 95% retention rate.</p>297 </div>298 <div className="w-[600px] h-[500px] bg-gray-100 rounded-3xl"></div>299</section>300```301302#### Big Number / Stat Slide303304```jsx305<section className="flex flex-col items-center justify-center gap-6 p-24 bg-gray-900 w-full h-full">306 <span className="text-9xl font-black text-blue-400">3x</span>307 <h2 className="text-4xl font-bold text-white text-center">Revenue growth in 12 months</h2>308 <p className="text-xl text-gray-500">$3.2M to $10M ARR</p>309</section>310```311312#### Quote Slide313314```jsx315<section className="flex flex-col items-center justify-center gap-8 px-32 py-24 bg-gray-50 w-full h-full">316 <p className="text-4xl text-gray-700 text-center leading-relaxed italic">"The best tool we've adopted this year. Our design velocity doubled."</p>317 <div className="flex items-center gap-4">318 <div className="w-16 h-16 bg-gray-300 rounded-full"></div>319 <div className="flex flex-col">320 <span className="text-xl font-semibold text-gray-900">Jamie Rivera</span>321 <span className="text-lg text-gray-500">Head of Design, Linear</span>322 </div>323 </div>324</section>325```326327#### Closing / CTA Slide328329```jsx330<section className="flex flex-col items-center justify-center gap-8 p-24 bg-gray-900 w-full h-full">331 <h2 className="text-6xl font-extrabold text-white text-center">Let's build together</h2>332 <p className="text-2xl text-gray-400 text-center">hello@acme.com</p>333 <div className="flex items-center gap-2">334 <div className="w-10 h-10 bg-blue-600 rounded-lg"></div>335 <span className="text-xl font-bold text-gray-400">Acme Inc.</span>336 </div>337</section>338```339340### Pitch Deck Flow (10 slides)3413421. **Title** — Company name, tagline, date3432. **Problem** — What pain exists (one stat or quote)3443. **Solution** — What you do (one sentence + visual)3454. **Demo / Product** — Screenshot or mockup (full-bleed)3465. **Market** — TAM/SAM/SOM or market size stat3476. **Traction** — Key metrics (big numbers)3487. **Business Model** — How you make money (simple diagram)3498. **Team** — Founders + key hires (photos + one-line bios)3509. **Ask** — What you need (funding amount, partnerships)35110. **Closing** — Contact info, thank you352353### Speaker Notes354355Every slide artboard has a `speakerNotes` field — plain text the presenter sees in Efecto's Present + Control mode. Set it whenever you author a slide.356357- Pass `speakerNotes` to `create_artboard` and `update_artboard`.358- Read existing notes via `list_artboards` (the field appears in the result) or `get_document` (rendered as a `speakerNotes="..."` attribute on the Artboard tag).359- Write the speaker's **script**, not the slide content. The slide is the headline; the notes are what gets said out loud.360- 2–4 sentences per slide. Anchor the point + transition to the next slide.361- Leave blank when the slide is self-explanatory (title cards, one-word statement slides).362363```364create_artboard:365 name: "03 — Traction"366 width: 1920367 height: 1080368 backgroundColor: "#0a0a0a"369 className: "flex flex-col"370 speakerNotes: "Walk through the 3x ARR growth. Highlight that 80% came from enterprise upgrades, not net-new logos. Set up the next slide on retention by saying 'and the reason this is durable is...'."371```372373### Presentation Playback374375The end user launches a deck from the Play dropdown in Efecto: **Prototype** (in-app emulator), **Present** (single-window fullscreen), or **Present + Control** (audience window + speaker controller with current slide, next slide, notes, timer). Slide order follows the layer-panel order by default; the controller has a visual (y, x) toggle for spatially-laid-out decks. Your job is to author slides + notes — the user picks playback mode.376377---378379## Event Posters & Flyers380381### Artboard Sizes382383| Format | Width | Height | Use Case |384|--------|-------|--------|----------|385| **Digital Poster** | 1080 | 1350 | Online events, sharing |386| **A4 Portrait** | 794 | 1123 | Print posters (210x297mm at 96dpi) |387| **Letter Portrait** | 816 | 1056 | US letter print (8.5x11in at 96dpi) |388| **Wide Banner** | 1920 | 600 | Website event banners |389| **Square** | 1080 | 1080 | Multi-purpose, adaptable |390391### Event Poster Hierarchy392393Every event poster needs these 4 elements in this priority order:3943951. **What** — The event name (largest text, the visual anchor)3962. **When** — Date and time (second-largest, must be instantly readable)3973. **Where** — Location or "Online" (clear and prominent)3984. **CTA** — "Register now" / "Get tickets" / "RSVP" (button or highlighted text)399400Everything else (speakers, sponsors, descriptions) is secondary.401402### Event Poster Template403404```jsx405<section className="flex flex-col justify-between p-16 bg-gray-900 w-full h-full">406 <div className="flex items-center justify-between">407 <span className="text-lg font-bold text-gray-400 uppercase tracking-widest">Design Conf 2026</span>408 <div className="w-12 h-12 bg-blue-500 rounded-xl"></div>409 </div>410 <div className="flex flex-col gap-6">411 <h1 className="text-7xl font-black text-white leading-none">The Future of Interface Design</h1>412 <div className="flex flex-col gap-2">413 <p className="text-3xl font-bold text-blue-400">March 15, 2026</p>414 <p className="text-2xl text-gray-400">San Francisco / Moscone Center</p>415 </div>416 <button className="w-fit px-10 py-4 text-xl font-bold text-gray-900 bg-white rounded-2xl">Get Tickets</button>417 </div>418</section>419```420421### Conference Talk Slide422423```jsx424<section className="flex items-end gap-8 p-16 bg-gray-900 w-full h-full">425 <div className="flex flex-col gap-4 grow">426 <span className="text-lg font-semibold text-purple-400 uppercase tracking-wider">Keynote</span>427 <h1 className="text-5xl font-extrabold text-white leading-tight">Designing with AI: What Changes and What Doesn't</h1>428 <div className="flex items-center gap-3">429 <div className="w-12 h-12 bg-gray-700 rounded-full"></div>430 <div className="flex flex-col">431 <span className="text-lg font-semibold text-white">Pablo Stanley</span>432 <span className="text-lg text-gray-500">Founder, Efecto</span>433 </div>434 </div>435 </div>436</section>437```438439---440441## Email Headers & Newsletter Graphics442443### Artboard Sizes444445| Format | Width | Height | Use Case |446|--------|-------|--------|----------|447| **Email Header** | 600 | 200 | Top-of-email banner (max-width 600px) |448| **Email Hero** | 600 | 400 | Hero image in newsletter |449| **Wide Email Hero** | 1200 | 400 | Retina email hero (scales to 600px) |450451### Email Design Rules452453- **600px max width** is the universal email constraint. Design at 600px or 1200px (retina 2x).454- **Simple layouts only.** Email rendering engines are stuck in 2005. Stick to single-column or two-column max.455- **Big, obvious CTA.** One primary action per email. Make the button impossible to miss.456- **Minimal text.** The email body handles the message — the graphic is just the visual hook.457- **Brand-heavy.** Logo, brand colors, consistent header across all emails. Recognition matters in an inbox.458459### Email Header Template460461```jsx462<section className="flex items-center justify-between px-8 py-6 bg-gray-900 w-full h-full">463 <div className="flex items-center gap-3">464 <div className="w-8 h-8 bg-blue-500 rounded-lg"></div>465 <span className="text-xl font-bold text-white">Acme Weekly</span>466 </div>467 <span className="text-lg text-gray-400">March 2026</span>468</section>469```470471### Newsletter Hero Template472473```jsx474<section className="flex flex-col items-center justify-center gap-6 px-12 py-12 bg-blue-600 w-full h-full">475 <h1 className="text-4xl font-extrabold text-white text-center leading-tight">What we shipped this week</h1>476 <p className="text-xl text-blue-100 text-center">3 features, 2 fixes, 1 big announcement</p>477 <button className="px-8 py-3 text-lg font-bold text-blue-600 bg-white rounded-xl">Read the update</button>478</section>479```480481---482483## Blog & Article Hero Images484485### Artboard Sizes486487| Format | Width | Height | Use Case |488|--------|-------|--------|----------|489| **Blog Hero (16:9)** | 1200 | 675 | Standard blog header |490| **Blog Hero (2:1)** | 1200 | 600 | Wide blog header |491| **Medium Article** | 1400 | 788 | Medium.com header |492| **Substack** | 1456 | 816 | Substack header image |493494### Blog Hero Tips495496- Blog heroes set the mood, not deliver information. They can be more abstract and atmospheric.497- Title text on the hero is optional — many blogs render the title in HTML below the image.498- If including text: `text-5xl` to `text-6xl`, centered, with plenty of breathing room.499- Solid color backgrounds with minimal text work well for a clean, modern look.500- Use image fills (`set_fill` with type "image") for photographic heroes.501502### Blog Hero Template503504```jsx505<section className="flex flex-col items-center justify-center gap-6 px-16 py-16 bg-gray-900 w-full h-full">506 <span className="text-lg font-semibold text-blue-400 uppercase tracking-widest">Engineering</span>507 <h1 className="text-5xl font-extrabold text-white text-center leading-tight max-w-[900px]">How we reduced build times by 80%</h1>508 <p className="text-xl text-gray-500 font-medium">March 2026 / 8 min read</p>509</section>510```511512---513514## OG Images & Share Cards515516### Artboard Sizes517518| Format | Width | Height | Use Case |519|--------|-------|--------|----------|520| **Open Graph** | 1200 | 630 | og:image for link previews (Facebook, Discord, Slack, iMessage) |521| **Twitter Card** | 1200 | 628 | twitter:image for tweet link previews |522| **WhatsApp Preview** | 1200 | 630 | Link preview in chats |523524### OG Image Best Practices525526OG images appear when someone shares a URL. They render at different sizes depending on the platform (300px on Slack, 500px on Facebook, 120px in some chat apps).5275281. **Title is king.** The page title or article headline should dominate the image. `text-5xl` to `text-6xl`.5292. **Brand anchor.** Logo or brand name in a corner — consistent across all OG images.5303. **No fine details.** Renders tiny on many platforms. Simple layout, high contrast, big text.5314. **Left-aligned text works well** — many platforms crop the right edge on mobile.532533### OG Image Template534535```jsx536<section className="flex items-center gap-12 px-16 py-12 bg-white w-full h-full">537 <div className="flex flex-col gap-4 grow">538 <div className="flex items-center gap-2">539 <div className="w-8 h-8 bg-blue-600 rounded-lg"></div>540 <span className="text-lg font-bold text-gray-400">acme.com</span>541 </div>542 <h1 className="text-5xl font-extrabold text-gray-900 leading-tight">How we reduced build times by 80%</h1>543 <p className="text-xl text-gray-500">A deep dive into our new CI/CD pipeline.</p>544 </div>545 <div className="w-[250px] h-[250px] bg-blue-100 rounded-3xl"></div>546</section>547```548549---550551## Certificates & Awards552553### Artboard Sizes554555| Format | Width | Height | Use Case |556|--------|-------|--------|----------|557| **Landscape Certificate** | 1400 | 1000 | Course completion, awards |558| **A4 Landscape** | 1123 | 794 | Printable certificate |559560### Certificate Template561562```jsx563<section className="flex flex-col items-center justify-center gap-8 p-24 bg-white w-full h-full border-8 border-gray-200">564 <div className="flex items-center gap-3">565 <div className="w-10 h-10 bg-blue-600 rounded-lg"></div>566 <span className="text-2xl font-bold text-gray-900">Acme Academy</span>567 </div>568 <span className="text-xl text-gray-400 uppercase tracking-widest font-semibold">Certificate of Completion</span>569 <h1 className="text-5xl font-extrabold text-gray-900 text-center">Advanced Design Systems</h1>570 <p className="text-2xl text-gray-500 text-center">Awarded to</p>571 <p className="text-4xl font-bold text-blue-600">Jane Smith</p>572 <div className="flex items-center gap-12">573 <div className="flex flex-col items-center gap-1">574 <span className="text-lg text-gray-400">Date</span>575 <span className="text-lg font-semibold text-gray-700">March 6, 2026</span>576 </div>577 <div className="flex flex-col items-center gap-1">578 <span className="text-lg text-gray-400">Instructor</span>579 <span className="text-lg font-semibold text-gray-700">Pablo Stanley</span>580 </div>581 </div>582</section>583```584585---586587## Business Cards588589The most constrained and craft-dependent format in graphic design. Every pixel matters.590591### Core Principles592593- **Restraint is everything.** A business card has ~30 cm² to work with. Every element must earn its place.594- **Hierarchy through scale contrast.** Name LARGE, title medium, contact details small. Three levels, max.595- **Whitespace is luxury.** The most memorable cards are the ones with the most breathing room. Resist filling space.596- **One signature element.** A bold color block, an oversized initial, a geometric accent — pick ONE.597598### Artboard Setup599600- Standard: 336x192 (3.5" x 2" at 96 DPI) or 672x384 for higher fidelity601- Two artboards for front/back: "Front" and "Back"602- Front: name + title + brand. Back: contact details + address.603- Position side-by-side: x=0 for front, x=width+60 for back604605### Front Layout Patterns606607- **Classic**: Logo top-left, name center or left-aligned, title below name. Clean, professional.608- **Bold**: Name in text-3xl or text-4xl spanning most of the card. Title in text-xs uppercase tracking-widest.609- **Minimal**: Just the name, centered, with generous margins. Nothing else on front.610- **Asymmetric**: Name left-aligned, large color block or accent shape on right third.611- **Branded**: Full-bleed brand color with reversed (white) text.612613### Back Layout Patterns614615- **Info stack**: Left-aligned column: phone, email, website, address. Small icons optional.616- **Two-column**: Contact left, address right.617- **Centered**: All info centered, separated by subtle dividers or spacing.618619### Typography620621- Name: text-xl to text-3xl, font-bold or font-extrabold. This is the HERO of the card.622- Title/role: text-xs to text-sm, font-medium, text-muted-foreground. Quiet, subordinate.623- Contact: text-xs, font-normal. Legible but small. Use tracking-wide for all-caps labels.624- NEVER use more than 2 font weights on a business card. Bold + normal. That's it.625626### Color Rules627628- TWO colors max (plus black/white). Brand color + neutral.629- Full-bleed color backgrounds make cards stand out physically.630- Dark cards (bg-zinc-950, bg-slate-900) feel premium.631632### Rules633634- NO paragraphs. No sentences. Just name, title, contact data.635- NO decorative borders around the entire card — they feel dated.636- ALWAYS include: name, title/role, at least email and phone.637- Horizontal orientation is standard. Vertical is bold and distinctive — suggest it for creative professionals.638639---640641## Resumes / CVs642643A single-page professional document that must be scannable in 6 seconds.644645### Core Principles646647- **Scannable in seconds.** Recruiters spend 6-10 seconds per resume. Visual hierarchy is critical.648- **Information-dense but organized.** Resumes pack a lot of content. The design's job is to make density feel clear, not cluttered.649- **Conservative elegance.** Bold design choices should be subtle — a strong color accent, a distinctive layout — not experimental.650- **Content is king.** The text matters more than the styling. Never sacrifice information space for visual decoration.651652### Artboard Setup653654- US Letter: 816x1056 (8.5" x 11" at 96 DPI)655- A4: 794x1123 (210mm x 297mm at 96 DPI)656- Single artboard — resumes should be ONE page.657658### Layout Patterns659660- **Two-column (most popular)**: Narrow sidebar (w-1/3) for contact, skills, education + wide main column (w-2/3) for experience, projects.661- **Single-column**: Full-width, traditional. Header -> Summary -> Experience -> Education -> Skills. Classic and ATS-friendly.662- **Top header + single column**: Bold header band with name + contact, then single-column content below.663- **Asymmetric**: Sidebar with accent color background for visual distinction.664665### Section Hierarchy6666671. **Name + contact** — text-2xl to text-3xl font-bold, followed by email, phone, location, LinkedIn in text-xs6682. **Experience** — company + role + dates, with 2-3 bullet achievements each6693. **Education** — degree, school, year6704. **Skills** — grouped by category (Languages, Frameworks, Tools)6715. Optional: Summary (2 lines max), Projects, Certifications672673### Typography674675- Name: text-2xl to text-3xl, font-bold. The only large text on the page.676- Section headers: text-sm uppercase tracking-widest font-bold — acts as visual anchors677- Company/role: text-sm font-semibold for company, font-medium for role678- Body/bullets: text-xs to text-sm, font-normal. Compact but readable.679- Dates: text-xs, text-muted-foreground, right-aligned or inline680681### Color Strategy682683- ONE accent color for section headers, sidebar, or name. Subtle — not a rainbow.684- Dark: slate-900 or zinc-900 for body text. Never pure black.685- Accent choices: blue-700 (professional), emerald-700 (creative), slate-700 (conservative), amber-700 (warm)686- Sidebar background: muted accent like slate-50, blue-50, or a subtle tint687688### Rules689690- ONE page. No exceptions unless explicitly asked for multi-page CV.691- NO photos unless explicitly asked (photos on resumes are culturally variable).692- NO icons for contact info — they waste space. Just text.693- NO decorative elements. Every pixel should convey information.694- USE consistent date formatting: "Jan 2023 - Present" or "2023 - Present"695- USE real-sounding content, not "Lorem ipsum." Realistic job titles, companies, and bullet points.696697---698699## Flyers (Detailed Design Guide)700701Extends the "Event Posters & Flyers" section above with deeper layout patterns, color psychology, and typographic rules for standalone promotional flyers.702703704### Core Principles705706- **Impact from 3 feet away.** Flyers compete for attention on bulletin boards, in stacks, on screens. The headline must PUNCH.707- **Essential info only.** WHAT + WHEN + WHERE + HOW (to attend/buy/register). Everything else is noise.708- **Bold visual hierarchy.** Three tiers: (1) Headline/event name — massive, (2) Key details — medium, (3) Fine print — small.709- **Energetic composition.** Flyers should feel dynamic — angled text, color blocks, overlapping elements, strong contrast.710711### Artboard Setup712713- Standard flyer: 816x1056 (US Letter) or 794x1123 (A4)714- Half-page: 816x528 or compact 540x720715- Social/digital flyer: 1080x1080 (square) or 1080x1350 (4:5)716717### Layout Patterns718719- **Stacked bold**: Giant headline top, image/graphic middle, details bottom. Reads top-to-bottom.720- **Full-bleed image + overlay**: Photo fills the card, semi-transparent overlay for text readability. Dramatic.721- **Split composition**: Color block top (headline) + white/dark bottom (details). Clean separation.722- **Diagonal energy**: Angled divider between image and text zones. Feels active and dynamic.723- **Centered stack**: Everything centered, stacked vertically. Works for elegant/minimal events.724- **Typographic**: No image — pure type. Giant headline, details in contrasting weight/size. Bold and editorial.725726### Typography727728- Headline: text-5xl to text-9xl, font-extrabold or font-black, tracking-tight. ALL CAPS is encouraged.729- Date: text-xl to text-2xl, font-bold. Consider uppercase tracking-widest for emphasis.730- Details: text-sm to text-base, font-normal. Quiet but readable.731- MAX 2 text sizes for details (date + location should be similar). Headline is the outlier.732733### Color Psychology for Events734735- **Concert/party**: Neon on black (emerald-400, fuchsia-500, cyan-400 on zinc-950). High energy.736- **Conference/professional**: Dark blue or slate on white. Clean authority.737- **Community/cultural**: Warm tones (amber, orange, rose) on cream or dark backgrounds.738- **Sale/promotion**: Red + yellow/white. Urgency colors. bg-red-600 text-white.739- **Art/gallery**: Monochromatic or black + one accent. Minimalist sophistication.740741### Rules742743- NO tiny text. If the date isn't readable at arm's length, it's too small.744- NO walls of text. A flyer is NOT a brochure. Max 3-4 short text blocks.745- ALWAYS include date, time, location, and how to attend. Missing info = useless flyer.746- CONTRAST is mandatory. Text must be instantly readable over any background.747748---749750## Restaurant / Cafe Menus751752A functional document that must be beautiful, scannable, and make food sound irresistible.753754### Core Principles755756- **Scannability first.** Customers scan menus in an F-pattern or Z-pattern. Category headers must be instantly visible.757- **Make food the hero.** The item names and descriptions should dominate — not the decoration.758- **Price alignment.** Prices must be easy to find but not dominant. Right-aligned, consistent formatting.759- **Atmosphere through design.** The menu IS the restaurant's brand. Its style should match the dining experience.760761### Artboard Setup762763- Single page menu: 816x1056 (letter) or 794x1123 (A4)764- Folded menu (each panel): 408x528 or similar half-page765- Compact/table tent: 540x720 or 480x640766- For multi-page: create multiple artboards side-by-side767768### Layout Patterns769770- **Single column**: Category by category, top to bottom. Best for short menus (< 20 items).771- **Two column**: Left column + right column. Maximizes items per page. Use for larger menus.772- **Centered elegant**: Everything centered, generous spacing. Perfect for fine dining with fewer items.773- **Grid cards**: Items in card-style blocks with image placeholders. Modern, casual restaurants.774- **Asymmetric**: One wide feature column + one narrow specials/drinks column.775776### Section Structure777778```779STARTERS <- Category header: text-lg to text-xl, font-bold, uppercase tracking-widest780781Bruschetta ............... $12 <- Item name: text-sm font-semibold, price right-aligned782 Tomato, basil, balsamic <- Description: text-xs text-muted-foreground783784Burrata Salad ............ $16785 Heirloom tomato, arugula, olive oil786```787788### Typography789790- Restaurant name: text-3xl to text-5xl, distinctive. This sets the tone.791- Category headers: text-lg to text-xl, font-bold, uppercase, tracking-wide. Clear dividers.792- Item names: text-sm to text-base, font-semibold. The star of each line.793- Descriptions: text-xs to text-sm, font-normal, text-muted-foreground. Appetizing but compact.794- Prices: text-sm, font-medium, right-aligned or after dot leaders.795796### Style by Restaurant Type797798- **Fine dining**: Minimal, serif-feeling (use font-light + tracking-wide). Lots of whitespace. Dark bg or ivory.799- **Casual/bistro**: Warm tones, slightly playful. Rounded corners on sections. bg-amber-50 or bg-stone-50.800- **Modern/trendy**: Clean sans-serif, dark theme (bg-zinc-950), accent color for specials. Minimal ornament.801- **Cafe**: Light, airy. bg-white or bg-stone-50. Small illustrations encouraged.802- **Bar/cocktail**: Dark and moody. bg-zinc-950 or bg-slate-900. Gold or amber accents. Atmospheric.803804### Rules805806- NO prices hidden or hard to find. Price transparency builds trust.807- NO more than 7-9 items per category. Too many choices paralyze diners.808- ALWAYS include: restaurant name, categories, item names, descriptions, prices.809- USE appetizing language: "house-made", "slow-roasted", "seasonal", "fresh" — not "good" or "tasty."810- Dietary markers (V, VG, GF) should be subtle: text-xs, after the item name, muted color.811812---813814## Infographics / Data Visualization815816A visual narrative that makes data compelling, memorable, and shareable.817818### Core Principles819820- **Story first, data second.** An infographic tells a story. The data supports it. Lead with the narrative arc, not the raw numbers.821- **One key insight.** Every infographic should have ONE takeaway the viewer remembers. Everything else supports that insight.822- **Visual encoding.** Numbers become shapes, sizes, colors, positions. Never just text + numbers — translate data into visual patterns.823- **Top-to-bottom flow.** Infographics read like a scroll. Clear sections with clear transitions.824825### Artboard Setup826827- Standard: 800x2400 to 1080x3200 (tall, scrollable)828- Social-friendly: 1080x1920 (9:16) or 1080x1350 (4:5)829- Presentation: 1920x1080 (landscape, one key chart)830- Use one tall artboard, NOT multiple. Infographics are single continuous pieces.831832### Section Flow8338341. **Title banner** — Bold headline that frames the story. "The State of...", "How X Changed Y", "By the Numbers: Z"8352. **Key stat** — One massive number (text-7xl to text-9xl) that hooks attention. "73% of..." or "$4.2 Trillion"8363. **Context section** — 2-3 sentences explaining why this matters. text-base, max-w-xl.8374. **Data sections** (2-4) — Each visualizing one aspect of the data. Different visual encoding per section.8385. **Comparison** — Side-by-side or before/after. Shows contrast clearly.8396. **Conclusion/CTA** — Key takeaway restated, source credits.840841### Data Visualization Patterns (Using Efecto Nodes)842843Since Efecto doesn't have native chart components, represent data visually with layout:844845- **Bar chart**: Horizontal frames with width proportional to value. Label left, bar right.846- **Stat cards**: Large number (text-6xl font-bold) + label (text-xs uppercase). Grid of 3-4.847- **Comparison columns**: Two columns side-by-side, each with stacked items. Color-coded.848- **Timeline**: Vertical line (w-0.5 bg-border) with alternating left/right content nodes.849- **Icon array**: Grid of small icons (w-4 h-4) where colored vs muted represent proportions.850- **Ranked list**: Numbered items with bars showing magnitude. 1-5 items.851852### Typography853854- Title: text-3xl to text-5xl, font-extrabold, tracking-tight. Sets the topic.855- Key stat: text-7xl to text-9xl, font-black. The eye-catcher.856- Section headers: text-xl font-bold. Separates data sections.857- Labels: text-xs uppercase tracking-widest font-medium. Data annotations.858- Body text: text-sm, max 2-3 lines per section. Support, not bulk.859- Source: text-xs text-muted-foreground, bottom of infographic.860861### Color Strategy862863- **One primary data color** + 864865…(truncated)