Generates gallery-quality branded presentations and carousels from canvas philosophy and style constraints. Outputs PDF first, then converts to editable PPTX for visual content creation.
From brand-content-designnpx claudepluginhub camoa/claude-skills --plugin brand-content-designThis skill is limited to using the following tools:
references/technical-implementation.mdProvides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.
Guides Payload CMS config (payload.config.ts), collections, fields, hooks, access control, APIs. Debugs validation errors, security, relationships, queries, transactions, hook behavior.
Create gallery-quality branded presentations and carousels through artistic design philosophy.
Visual content creation is an act of artistic expression, not template filling. Every slide or card should appear as if crafted by a designer at the absolute top of their field—meticulous, intentional, worthy of display.
What you receive: A canvas philosophy and brand DNA—use these as foundation, not constraint. What you create: Visual artifacts that are 90% design, 10% essential text. The standard: Work that looks like it took countless hours, labored over with painstaking care.
A canvas philosophy is not a layout specification—it's an aesthetic movement, a manifesto for how ideas become visual form.
When you receive a canvas-philosophy.md, internalize its spirit:
Read it as an artist reads a creative brief—absorb the worldview, then express it.
These illustrate the language and depth expected in a canvas philosophy:
"Concrete Poetry" Communication through monumental form and bold geometry. Massive color blocks, sculptural typography (huge single words, tiny labels), Brutalist spatial divisions. Ideas expressed through visual weight and spatial tension, not explanation. Text as rare, powerful gesture—never paragraphs, only essential words integrated into visual architecture. Every element placed with the precision of a master craftsman who has labored over each decision.
"Chromatic Language" Color as the primary information system. Geometric precision where color zones create meaning. Typography minimal—small sans-serif labels letting chromatic fields communicate. Information encoded spatially and chromatically. Words only anchor what color already shows. The result of painstaking chromatic calibration by someone at the top of their field.
"Analog Meditation" Quiet visual contemplation through texture and breathing room. Paper grain, ink bleeds, vast negative space. Photography and illustration dominate. Typography whispered (small, restrained, serving the visual). Images breathe across pages. Text appears sparingly—short phrases, never explanatory blocks. Each composition balanced with the care of a meditation practice, meticulously crafted over countless hours.
"Geometric Silence" Pure order and restraint. Grid-based precision, bold photography or stark graphics, dramatic negative space. Typography precise but minimal—small essential text, large quiet zones. Swiss formalism meets Brutalist material honesty. Structure communicates, not words. Every alignment the work of countless refinements by an expert hand.
CRITICAL STEP: Before creating visuals, identify the conceptual thread from the content.
The topic becomes a subtle, niche reference embedded within the design itself—not literal, always sophisticated. Someone familiar with the subject should feel it intuitively, while others simply experience a masterful composition.
Think like a jazz musician quoting another song—only those who know will catch it, but everyone appreciates the music.
The canvas philosophy provides the aesthetic language. The content provides the soul—the quiet conceptual DNA woven invisibly into form, color, and composition.
Before creating visuals, check brand-philosophy.md for ## Brand Depth > ### Personality (Aaker Framework):
If present and populated: Read the Aaker scores and primary/secondary dimensions. Store in working context — these inform component decisions (Part 7), color intensity (Part 4), and spatial choices throughout.
If not present: Read voice traits from ## Verbal Identity > ### Voice Personality. Map to Aaker dimensions using proximity:
Also check for ### Spatial & Surface Profile — if present, use its values (spacing rhythm, border radius, shadow style, layout density) to inform element placement and styling decisions.
With philosophy internalized and conceptual thread identified, create the visual artifacts.
Before laying out ANY slide, follow this structural process:
references/slide-composition-rules.md if missing)Fallback: If the canvas-philosophy.md does not include a Composition Rules section (legacy templates), use the defaults from references/slide-composition-rules.md with the style's modifiers applied.
CRITICAL: To achieve human-crafted quality (not AI-generated), create work that looks like it took countless hours. Make it appear as though someone at the absolute top of their field labored over every detail with painstaking care.
Ensure the composition, spacing, color choices, typography—everything screams expert-level craftsmanship. This is non-negotiable.
Repeat this mantra:
The slide is a canvas, not a document. Information lives in design choices: scale, position, color, whitespace. Words are visual accents, not content delivery.
The card is a poster glimpsed while scrolling. It must arrest attention instantly through visual impact, not dense information.
Each piece must respect its style's hard constraints:
| Constraint | Purpose |
|---|---|
| Whitespace % | Defines the breathing room—the silence between notes |
| Word limit | Forces economy—every word must earn its place |
| Element count | Prevents visual noise—simplicity is sophistication |
| Layout rules | Establishes spatial grammar—centered, asymmetric, grid |
| Typography weight | Sets the voice—whispered, conversational, commanding |
If content exceeds constraints, reduce. Never violate the style. The constraints ARE the style.
1. Single focal point per slide/card—the eye knows where to land
2. Clear reading order (F-pattern or Z-pattern)—the journey is intuitive
3. Contrast guides attention—importance is visible
4. Nothing competes with the message—supporting elements support
- Headlines: Bold, commanding, minimal—a single powerful statement
- Body: Avoid entirely when possible—if you must, keep it whispered
- Numbers: Large, prominent, contextualized—let data be visual
- Labels: Small, quiet, supportive—they annotate, not explain
Text is always minimal and visual-first. Let context guide whether that means whisper-quiet labels or bold typographic gestures. A pitch deck might have larger, more aggressive type than a meditation app. Regardless of approach, sophistication is non-negotiable.
- Use brand palette or selected alternative palette exclusively
- Primary: 60% of color usage—the dominant voice
- Secondary: 30% of color usage—the supporting harmony
- Accent: 10% for emphasis only—the punctuation
- Never introduce off-brand colors—consistency builds trust
Personality-informed intensity (from Part 2b):
- Whitespace is not empty—it's active, meaningful silence
- Placement carries meaning—center = importance, edges = supporting
- Proportion creates rhythm—vary scale intentionally
- Margins are sacred—nothing touches edges, nothing overlaps
IMPORTANT: Before declaring done, assume the user already said: "It isn't perfect enough. It must be pristine, a masterpiece of craftsmanship, as if it were about to be displayed in a museum."
CRITICAL: To refine the work, avoid adding more elements. Instead, refine what exists and make it extremely crisp. Rather than adding a new graphic or changing a font, ask: "How can I make what's already here more of a piece of art?"
Take a second pass:
These checks are NON-NEGOTIABLE before any output is finalized.
| Requirement | Value |
|---|---|
| Minimum contrast ratio | 4.5:1 for all text |
| Large text (24px+) | 3:1 acceptable |
| Standard | WCAG 2.1 AA |
Before rendering ANY text:
See references/technical-implementation.md → "Accessibility & Safety Checks" for validate_contrast() code.
Text elements MUST NEVER overlap. This includes:
Before placing ANY element:
| Format | Margin | Safe Area |
|---|---|---|
| Presentation (1920×1080) | 50px | 1820×980 usable |
| Carousel (1080×1350) | 54px (5%) | 972×1242 usable |
Nothing may cross these boundaries:
When text appears on gradients:
□ All text passes 4.5:1 contrast check
□ No elements overlap
□ All elements within safe zone
□ Word count within style limit
□ Element count within style limit
□ Gradient text readable at both ends (if applicable)
If ANY check fails, DO NOT render. Fix the issue first.
Some styles support visual components that enhance the design. Components are opt-in (user enables during template creation) but should be used intelligently based on content—not on every slide just because they're enabled.
Before using ANY visual component on a slide, pass through these gates IN ORDER:
Gate 1: Style Permission Does the selected style allow this component? (Check style-constraints.md or enforcement block)
Gate 2: Content + Personality Justification Does the slide's content warrant this component? Also consider the brand's primary Aaker dimension (from Part 2b):
Gate 3: Frequency Budget Is this component within its presentation-wide budget?
Gate 4: Density Check Will adding this component exceed 3 visual layers on this slide?
When a component fails a gate, use these alternatives:
Before using components, verify the style supports them (see style-constraints.md):
| Component | Supported Styles | Not Allowed |
|---|---|---|
| Cards | Dramatic, Organic, Hygge, Lagom, Swiss, Memphis, Feng Shui, Iki, Tech-Modern, Data-Forward, Corporate-Confident, Pitch-Velocity, Narrative-Clean (subtle) | Ma, Yeo-baek |
| Icons | Dramatic, Organic, Hygge, Lagom, Swiss, Memphis, Feng Shui, Iki, Tech-Modern, Pitch-Velocity, Data-Forward (trend only) | Minimal, Wabi-Sabi, Shibui, Ma, Yeo-baek, Corporate-Confident, Narrative-Clean |
| Gradients | Dramatic, Organic, Hygge, Memphis, Feng Shui, Pitch-Velocity, Tech-Modern (subtle only) | Minimal, Swiss, Ma, Yeo-baek, Lagom, Data-Forward, Corporate-Confident, Narrative-Clean |
Draw rounded containers for content grouping. See references/technical-implementation.md for:
draw_content_card() - Basic rounded containerdraw_icon_card() - Square card with centered icondraw_feature_card() - Card with icon, title, descriptionLucide icons available via the icon helper. The plugin sets BRAND_CONTENT_DESIGN_DIR via SessionStart hook.
import os
import sys
from pathlib import Path
# Plugin sets BRAND_CONTENT_DESIGN_DIR automatically
plugin_dir = os.environ.get('BRAND_CONTENT_DESIGN_DIR')
if plugin_dir:
sys.path.insert(0, str(Path(plugin_dir) / "scripts"))
from icons import get_icon_png, search_icons, ICON_CATEGORIES
icon_path = get_icon_png('lightbulb', color='#3B82F6', size=48)
canvas.drawImage(icon_path, x, y, width=48, height=48, mask='auto')
See references/technical-implementation.md for full icon usage patterns.
Background transitions for depth:
# See references/technical-implementation.md for draw_gradient_background
| Slide Type | Cards | Icons | Gradient |
|---|---|---|---|
| Hook/Opening | ✗ | ✗ | ✓ |
| Features/Steps | ✓ | ✓ | ✗ |
| Data/Stats | ◐ | ✗ | ✗ |
| Quote | ◐ | ✗ | ✗ |
| CTA/Closing | ✗ | ✗ | ✓ |
Legend: ✓ = Use | ◐ = If content warrants | ✗ = Avoid
Remember: Visual components must serve the message. When in doubt, use fewer.
For PDF generation code patterns, see references/technical-implementation.md:
| Task | Action |
|---|---|
| Logo format | PNG or JPG only - SVG not supported by reportlab |
| SVG logo | Convert to PNG with cairosvg (/brand-extract does this automatically) |
| Custom fonts | Load from {PROJECT_PATH}/assets/fonts/ |
| Presentations | 1920x1080, 50px safe zones |
| Carousels | 1080x1350 (LinkedIn), 5% margins |
| Colors | Parse from brand-philosophy.md color table |
pdf skill with reportlabpptx skill for editabilityThis skill is called by:
/template-presentation - Generate sample.pdf + sample.pptx/template-carousel - Generate sample.pdf/presentation - Generate final presentation/presentation-quick - Generate final presentation (fast path)/carousel - Generate final carousel/carousel-quick - Generate final carousel (fast path)When invoking this skill, provide:
If brand-philosophy.md is not found OR contains no ## Color Palette section:
/brand-extract first to analyze your brand."Before finalizing any presentation or carousel:
□ All colors derived from brand-philosophy.md color table
□ All fonts loaded from project assets/fonts/ or brand-philosophy.md
□ Colors traced to brand-philosophy.md (not copied from reference docs or runtime fallbacks)
□ No generic font defaults (unless brand actually uses them)
□ Text colors WCAG-validated against actual background
Before finalizing, ask:
Would this work hang in a design museum? Would a creative director approve this for a premium client? Does every pixel serve the message? Does it look like someone labored over it with painstaking care?
If yes to all four, the work is ready.
If no to any, return to Part 6 and polish until it gleams.