#!/bin/bash # Generate a visually stunning presentation: "The Art of Design" # Deep gradient backgrounds, geometric accents, clean typography # NOTE: intentionally NO `set -e`. Like the SDK twin's doc.batch, this script # tolerates forward-compat 'UNSUPPORTED props' warnings (officecli exit 2) and # keeps building so the full document is produced. OUT="$(dirname "$0")/presentation.pptx" rm -f "$OUT" officecli create "$OUT" officecli open "$OUT" # Slide dimensions: 12192000 x 6858000 EMU (16:9) ############################################################################### # SLIDE 1 — Title Slide ############################################################################### echo " -> Slide 1: Title" officecli add "$OUT" / --type slide # Full-bleed dark gradient background officecli raw-set "$OUT" /slide[1] --xpath "//p:cSld" --action prepend --xml ' ' # Decorative circle — top right (large, semi-transparent teal) officecli raw-set "$OUT" /slide[1] --xpath "//p:cSld/p:spTree" --action append --xml ' ' # Decorative circle — bottom left (lavender) officecli raw-set "$OUT" /slide[1] --xpath "//p:cSld/p:spTree" --action append --xml ' ' # Gradient accent line officecli raw-set "$OUT" /slide[1] --xpath "//p:cSld/p:spTree" --action append --xml ' ' # Main title officecli raw-set "$OUT" /slide[1] --xpath "//p:cSld/p:spTree" --action append --xml ' The Art of Design ' # Subtitle officecli raw-set "$OUT" /slide[1] --xpath "//p:cSld/p:spTree" --action append --xml ' Crafting Beautiful Experiences SIMPLICITY · ELEGANCE · FUNCTION ' # Diamond accent officecli raw-set "$OUT" /slide[1] --xpath "//p:cSld/p:spTree" --action append --xml ' ' ############################################################################### # SLIDE 2 — Three Pillars ############################################################################### echo " -> Slide 2: Three Pillars" officecli add "$OUT" / --type slide officecli raw-set "$OUT" /slide[2] --xpath "//p:cSld" --action prepend --xml ' ' # Section title officecli raw-set "$OUT" /slide[2] --xpath "//p:cSld/p:spTree" --action append --xml ' Three Pillars of Great Design ' # Subtitle officecli raw-set "$OUT" /slide[2] --xpath "//p:cSld/p:spTree" --action append --xml ' Every exceptional design is built upon these core principles ' # Card 1 — Simplicity officecli raw-set "$OUT" /slide[2] --xpath "//p:cSld/p:spTree" --action append --xml ' Simplicity Less is more. Strip away the unnecessary to let the essential shine through. ' # Card 2 — Hierarchy officecli raw-set "$OUT" /slide[2] --xpath "//p:cSld/p:spTree" --action append --xml ' Hierarchy Guide the eye with size, color, and space. Create a clear visual flow. ' # Card 3 — Harmony officecli raw-set "$OUT" /slide[2] --xpath "//p:cSld/p:spTree" --action append --xml ' Harmony Consistent color, type, and layout create a professional, cohesive experience. ' ############################################################################### # SLIDE 3 — Data Showcase ############################################################################### echo " -> Slide 3: Data Showcase" officecli add "$OUT" / --type slide officecli raw-set "$OUT" /slide[3] --xpath "//p:cSld" --action prepend --xml ' ' # Title officecli raw-set "$OUT" /slide[3] --xpath "//p:cSld/p:spTree" --action append --xml ' Data-Driven Design ' # Gradient accent bar officecli raw-set "$OUT" /slide[3] --xpath "//p:cSld/p:spTree" --action append --xml ' ' # Stat card 1 — 98% officecli raw-set "$OUT" /slide[3] --xpath "//p:cSld/p:spTree" --action append --xml ' 98% User Satisfaction ' # Stat card 2 — 2.5M officecli raw-set "$OUT" /slide[3] --xpath "//p:cSld/p:spTree" --action append --xml ' 2.5M Monthly Active Users ' # Stat card 3 — 47ms officecli raw-set "$OUT" /slide[3] --xpath "//p:cSld/p:spTree" --action append --xml ' 47ms Avg Response Time ' # Bottom description officecli raw-set "$OUT" /slide[3] --xpath "//p:cSld/p:spTree" --action append --xml ' Numbers tell stories. Through thoughtful visual design, every data point communicates its meaning at first glance. ' ############################################################################### # SLIDE 4 — Quote Slide ############################################################################### echo " -> Slide 4: Quote" officecli add "$OUT" / --type slide officecli raw-set "$OUT" /slide[4] --xpath "//p:cSld" --action prepend --xml ' ' # Large quote mark officecli raw-set "$OUT" /slide[4] --xpath "//p:cSld/p:spTree" --action append --xml ' ' # Quote text officecli raw-set "$OUT" /slide[4] --xpath "//p:cSld/p:spTree" --action append --xml ' Good design is obvious. Great design is transparent. ' # Attribution officecli raw-set "$OUT" /slide[4] --xpath "//p:cSld/p:spTree" --action append --xml ' — Joe Sparano ' # Decorative line under quote officecli raw-set "$OUT" /slide[4] --xpath "//p:cSld/p:spTree" --action append --xml ' ' ############################################################################### # SLIDE 5 — Process / Timeline ############################################################################### echo " -> Slide 5: Process" officecli add "$OUT" / --type slide officecli raw-set "$OUT" /slide[5] --xpath "//p:cSld" --action prepend --xml ' ' # Title officecli raw-set "$OUT" /slide[5] --xpath "//p:cSld/p:spTree" --action append --xml ' Design Process ' # Horizontal rainbow connector officecli raw-set "$OUT" /slide[5] --xpath "//p:cSld/p:spTree" --action append --xml ' ' # Step circles + labels LABELS=("Research" "Ideate" "Design" "Validate") COLORS=("00B4D8" "E0AAFF" "FFD166" "06D6A0") XPOS=(1400000 3600000 5800000 8000000) for i in 0 1 2 3; do X=${XPOS[$i]} C=${COLORS[$i]} L=${LABELS[$i]} N=$((i+1)) ID=$((510 + i*2)) ID2=$((511 + i*2)) officecli raw-set "$OUT" /slide[5] --xpath "//p:cSld/p:spTree" --action append --xml " 0${N} " officecli raw-set "$OUT" /slide[5] --xpath "//p:cSld/p:spTree" --action append --xml " ${L} " done # Bottom text officecli raw-set "$OUT" /slide[5] --xpath "//p:cSld/p:spTree" --action append --xml ' Every step is iterative. From research to validation, we refine until perfection. ' ############################################################################### # SLIDE 6 — Closing ############################################################################### echo " -> Slide 6: Closing" officecli add "$OUT" / --type slide officecli raw-set "$OUT" /slide[6] --xpath "//p:cSld" --action prepend --xml ' ' # Gradient ring officecli raw-set "$OUT" /slide[6] --xpath "//p:cSld/p:spTree" --action append --xml ' ' # Thank You officecli raw-set "$OUT" /slide[6] --xpath "//p:cSld/p:spTree" --action append --xml ' Thank You ' # Closing subtitle officecli raw-set "$OUT" /slide[6] --xpath "//p:cSld/p:spTree" --action append --xml ' Design is not just what it looks like — it’s how it works. ' # Three accent diamonds officecli raw-set "$OUT" /slide[6] --xpath "//p:cSld/p:spTree" --action append --xml ' ' officecli raw-set "$OUT" /slide[6] --xpath "//p:cSld/p:spTree" --action append --xml ' ' officecli raw-set "$OUT" /slide[6] --xpath "//p:cSld/p:spTree" --action append --xml ' ' officecli close "$OUT" echo "" echo "==========================================" echo "Beautiful presentation generated: $OUT" echo "==========================================" officecli view "$OUT" outline