#!/bin/bash # Basic slide transitions — cut, fade, dissolve, flash, and the 'none' clear. # These five tokens form the everyday transition vocabulary: cut = instant, # fade = pixel cross-fade, dissolve = pixel-noise dissolve, flash = white # flash-through, none = remove an existing transition. # # Each demo slide carries the transition that triggers AS THE SLIDE ENTERS # (replacing the previous one). To experience them, open the .pptx and step # through Slide Show mode — most differences only show in playback. # 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. DIR="$(dirname "$0")" PPTX="$DIR/transitions-basic.pptx" rm -f "$PPTX" officecli create "$PPTX" officecli open "$PPTX" # add_demo_slide N transition title-text bg-hex add_demo_slide() { local n=$1 trans=$2 title=$3 bg=$4 officecli add "$PPTX" / --type slide officecli add "$PPTX" "/slide[$n]" --type shape \ --prop x=0 --prop y=0 --prop width=33.87cm --prop height=19.05cm \ --prop fill="$bg" officecli add "$PPTX" "/slide[$n]" --type shape \ --prop text="$title" --prop size=54 --prop bold=true --prop color=FFFFFF \ --prop align=center \ --prop x=2cm --prop y=7cm --prop width=29.87cm --prop height=4cm if [ -n "$trans" ]; then officecli set "$PPTX" "/slide[$n]" --prop transition="$trans" fi } add_demo_slide 1 "" "Basic Transitions" "1F3864" add_demo_slide 2 "cut" "cut — instant swap" "C00000" add_demo_slide 3 "fade" "fade — pixel cross-fade" "2E75B6" add_demo_slide 4 "dissolve" "dissolve — speckle blend" "7030A0" add_demo_slide 5 "flash" "flash — white flash-thru" "BF8F00" # Demonstrate the 'none' clear: slide 6 first gets fade, then we wipe it. # Final readback on slide 6 should NOT have a transition key at all. add_demo_slide 6 "fade" "none — fade cleared" "404040" officecli set "$PPTX" "/slide[6]" --prop transition=none officecli close "$PPTX" officecli validate "$PPTX" echo "Created: $PPTX"