4.8 KiB
Shape-Mask Transitions
This demo consists of three files that work together:
- transitions-shapes.sh — Shell script that generates a 12-slide deck covering all shape-mask transition tokens.
- transitions-shapes.pptx — The generated deck (1 cover + 4 direction-less + 4 in/out + 5 wheel spokes = 14 slides).
- transitions-shapes.md — This file. Documents the three sub-families and their constraints.
Regenerate
cd examples/ppt/transitions
bash transitions-shapes.sh
# → transitions-shapes.pptx
Slides
Slide 1 — Cover (no transition)
officecli add transitions-shapes.pptx / --type slide
officecli add transitions-shapes.pptx /slide[1] --type shape \
--prop x=0 --prop y=0 --prop width=33.87cm --prop height=19.05cm \
--prop fill=1F3864
officecli add transitions-shapes.pptx /slide[1] --type shape \
--prop text="Shape Transitions" --prop size=44 --prop bold=true \
--prop color=FFFFFF --prop align=center \
--prop x=2cm --prop y=7cm --prop width=29.87cm --prop height=4cm
Slides 2–5 — Direction-less geometric masks
The new slide reveals through a growing geometric shape. No in/out modifier is accepted.
for t in circle diamond plus wedge; do
officecli add transitions-shapes.pptx / --type slide
officecli add transitions-shapes.pptx "/slide[N]" --type shape \
--prop x=0 --prop y=0 --prop width=33.87cm --prop height=19.05cm \
--prop fill=C00000
officecli add transitions-shapes.pptx "/slide[N]" --type shape \
--prop text="$t" --prop size=44 --prop bold=true \
--prop color=FFFFFF --prop align=center \
--prop x=2cm --prop y=7cm --prop width=29.87cm --prop height=4cm
officecli set transitions-shapes.pptx "/slide[N]" --prop transition="$t"
done
Passing -in/-out on a direction-less token is rejected:
Error: Transition 'circle' does not accept a direction modifier (got '-in').
Use plain 'transition=circle'.
Features: transition=circle, transition=diamond, transition=plus, transition=wedge
Slides 6–9 — In/Out direction masks
for combo in zoom-in zoom-out box-in box-out; do
officecli add transitions-shapes.pptx / --type slide
officecli add transitions-shapes.pptx "/slide[N]" --type shape \
--prop x=0 --prop y=0 --prop width=33.87cm --prop height=19.05cm \
--prop fill=2E75B6
officecli add transitions-shapes.pptx "/slide[N]" --type shape \
--prop text="$combo" --prop size=44 --prop bold=true \
--prop color=FFFFFF --prop align=center \
--prop x=2cm --prop y=7cm --prop width=29.87cm --prop height=4cm
officecli set transitions-shapes.pptx "/slide[N]" --prop transition="$combo"
done
The default is -in; bare zoom/box round-trip as zoom/box. zoom-out/box-out round-trip with the suffix intact.
Note: box is a PowerPoint 2013+ "modern" transition. officecli writes it with an inline fade fallback so pre-2013 PowerPoint plays a graceful fade instead of nothing.
Features: transition=zoom-in, zoom-out, box-in, box-out
Slides 10–14 — Wheel spoke counts
The same rotating-spoke wipe animation with different spoke counts.
for n_spokes in 1 2 3 4 8; do
officecli add transitions-shapes.pptx / --type slide
officecli add transitions-shapes.pptx "/slide[N]" --type shape \
--prop x=0 --prop y=0 --prop width=33.87cm --prop height=19.05cm \
--prop fill=7030A0
officecli add transitions-shapes.pptx "/slide[N]" --type shape \
--prop text="wheel-$n_spokes ($n_spokes spokes)" --prop size=44 --prop bold=true \
--prop color=FFFFFF --prop align=center \
--prop x=2cm --prop y=7cm --prop width=29.87cm --prop height=4cm
officecli set transitions-shapes.pptx "/slide[N]" --prop transition="wheel-$n_spokes"
done
The integer suffix (1–32) is the spoke count, not a duration. To set both: wheel-8-1500 (8 spokes + 1500 ms duration). wheel-4 collapses to bare wheel on readback.
Features: transition=wheel-1, wheel-2, wheel-3, wheel-4 (=bare wheel), wheel-8
Complete Feature Coverage
| Sub-family | Tokens | Direction modifier |
|---|---|---|
| Direction-less geometric | circle, diamond, plus, wedge |
None (error if provided) |
| In/Out direction | zoom-in, zoom-out, box-in, box-out |
-in (default) / -out |
| Spoke count | wheel-1 .. wheel-8 (any 1–32) |
Integer suffix = spoke count |
Inspect the Generated File
officecli query transitions-shapes.pptx slide
officecli get transitions-shapes.pptx /slide[2]
officecli get transitions-shapes.pptx /slide[7]
officecli get transitions-shapes.pptx /slide[12]
Related
- transitions-bands.md — split-vertical-in / split-horizontal-out (similar in/out modifier)
- transitions-basic.md — cut/fade/dissolve baseline