# Presentation Showcase This demo consists of three files that work together: - **presentation.sh** — Shell script that calls `officecli raw-set` to build all slides. Raw XML is injected per-element for full design control. - **presentation.pptx** — The generated 6-slide deck: title, pillars, data, quote, process, closing. - **presentation.md** — This file. Maps each slide to the techniques it demonstrates. ## Regenerate ```bash cd examples/ppt bash presentation.sh # → presentation.pptx ``` ## Slides ### Slide 1 — Title Slide Full-bleed 3-stop dark gradient background, two decorative semi-transparent circles, a gradient accent line, main title, two-paragraph subtitle, and a tiny rotated diamond. ```bash officecli add presentation.pptx /presentation --type slide # 3-stop vertical gradient background (dark navy) officecli raw-set presentation.pptx /slide[1] \ --xpath "//p:cSld" --action prepend --xml ' ' # Decorative teal ellipse, top-right (alpha=8000 ≈ 31% opacity) officecli raw-set presentation.pptx /slide[1] \ --xpath "//p:cSld/p:spTree" --action append --xml ' ' # Gradient accent line (teal → lavender, horizontal) officecli raw-set presentation.pptx /slide[1] \ --xpath "//p:cSld/p:spTree" --action append --xml ' ' # Main title: sz=5400 bold white, Segoe UI, anchor=b officecli raw-set presentation.pptx /slide[1] \ --xpath "//p:cSld/p:spTree" --action append --xml ' The Art of Design ' # Subtitle: paragraph 1 = sz=2000 cyan; paragraph 2 = sz=1400 grey, spc=600 officecli raw-set presentation.pptx /slide[1] \ --xpath "//p:cSld/p:spTree" --action append --xml ' Crafting Beautiful Experiences SIMPLICITY · ELEGANCE · FUNCTION ' # Diamond accent: rot=2700000 (45°) tiny rect, teal fill officecli raw-set presentation.pptx /slide[1] \ --xpath "//p:cSld/p:spTree" --action append --xml ' ' ``` **Features:** `raw-set --action prepend` (background), `raw-set --action append` (shapes), 3-stop `gradFill` background, `solidFill` with `alpha`, gradient line stroke (`a:ln/a:gradFill`), `prstGeom prst="ellipse"/"line"/"rect"`, `txBox="1"`, `bodyPr anchor="b"/"t"`, `sz` (hundredths of a point), `b="1"` bold, `spc` letter-spacing, `rot` rotation, `a:latin typeface=` ### Slide 2 — Three Pillars Dark solid background with three rounded-rectangle cards side by side, each containing a Unicode symbol icon, bold title, and body text. ```bash officecli add presentation.pptx /presentation --type slide # Solid background officecli raw-set presentation.pptx /slide[2] \ --xpath "//p:cSld" --action prepend --xml ' ' # Section title: sz=3200 bold white centered # Sub-line: sz=1400 grey centered officecli raw-set presentation.pptx /slide[2] \ --xpath "//p:cSld/p:spTree" --action append --xml '...' # Card 1 — Simplicity: roundRect adj=8000, solidFill 152238, ln 1E3A5F # Icon: sz=4800 teal ○; Title: sz=2400 bold white; Body: sz=1200 grey officecli raw-set presentation.pptx /slide[2] \ --xpath "//p:cSld/p:spTree" --action append --xml ' ' # Card 2 — Hierarchy: same structure, lavender △ icon # Card 3 — Harmony: same structure, amber ◇ icon ``` **Features:** `solidFill` background, `prstGeom prst="roundRect"` with `a:gd name="adj" fmla="val 8000"` (corner rounding ≈8%), `a:ln w=` border thickness, `bodyPr lIns/tIns/rIns/bIns` padding, `anchor="t"`, mixed `sz` paragraphs, Unicode in `a:t` (`○` ○, `△` △, `◇` ◇), `algn="ctr"` paragraph alignment ### Slide 3 — Data Showcase Left-to-right gradient background, title, thin gradient accent bar, three stat cards with gradient borders. ```bash officecli add presentation.pptx /presentation --type slide # 2-stop diagonal gradient background officecli raw-set presentation.pptx /slide[3] \ --xpath "//p:cSld" --action prepend --xml ' ' # Thin gradient accent bar (rect, no text, gradFill fill) officecli raw-set presentation.pptx /slide[3] \ --xpath "//p:cSld/p:spTree" --action append --xml ' ' # Stat card 1 — "98%": roundRect solidFill 0E2540, gradient border stroke officecli raw-set presentation.pptx /slide[3] \ --xpath "//p:cSld/p:spTree" --action append --xml ' ' ``` **Features:** 2-stop `gradFill` at 270° (`ang="2700000"`), thin decorative rect (height `cy=50000`), gradient line/border (`a:ln/a:gradFill`), `anchor="ctr"` vertical centering, mixed font sizes in single `txBody` ### Slide 4 — Quote Slide 3-stop gradient background, very large low-alpha quote-mark glyph, italic Georgia quote text, teal attribution, and a fade-center accent line. ```bash officecli add presentation.pptx /presentation --type slide # 3-stop gradient background # Large quote mark: sz=12000, solidFill alpha=20000 (very transparent) officecli raw-set presentation.pptx /slide[4] \ --xpath "//p:cSld/p:spTree" --action append --xml ' ' # Quote text: sz=2800 italic Georgia, 2 paragraphs officecli raw-set presentation.pptx /slide[4] \ --xpath "//p:cSld/p:spTree" --action append --xml ' ' # Attribution line: sz=1600 teal 00B4D8, en-dash prefix # Fading accent line: 3-stop gradFill (alpha=0 at ends, full at 50%) officecli raw-set presentation.pptx /slide[4] \ --xpath "//p:cSld/p:spTree" --action append --xml ' ' ``` **Features:** `sz=12000` giant glyph, `a:alpha val="20000"` (low opacity ≈8%), `i="1"` italic, `a:latin typeface="Georgia"`, 3-stop gradient line fading at both ends (creating a center-glow effect), `“` left double quote, `—` em-dash ### Slide 5 — Process / Timeline Dark solid background, title, 4-stop rainbow horizontal connector line, four numbered ellipse steps (semi-transparent fill + colored border), and four text labels below. ```bash officecli add presentation.pptx /presentation --type slide # Title: sz=3200 bold white centered # 4-stop rainbow gradient connector line (horizontal) officecli raw-set presentation.pptx /slide[5] \ --xpath "//p:cSld/p:spTree" --action append --xml ' ' # Loop: 4 step circles (ellipse, fill alpha=15000, border solid color) LABELS=("Research" "Ideate" "Design" "Validate") COLORS=("00B4D8" "E0AAFF" "FFD166" "06D6A0") XPOS=(1400000 3600000 5800000 8000000) for i in 0 1 2 3; do officecli raw-set presentation.pptx "/slide[5]" \ --xpath "//p:cSld/p:spTree" --action append --xml " 0$((i+1)) " done ``` **Features:** 4-stop rainbow gradient line stroke, `prstGeom prst="ellipse"`, very low fill alpha (`val="15000"` ≈ 6%), thick border `a:ln w="38100"`, `anchor="ctr"` for centered number label, bash loop for repeated shape generation ### Slide 6 — Closing Gradient ring (ellipse with gradient stroke, no fill), large "Thank You" heading, closing subtitle, three tiny diamond accent shapes. ```bash officecli add presentation.pptx /presentation --type slide # 3-stop diagonal gradient background # Gradient ring: large ellipse, noFill, ln w=12700 gradFill 3-stop with alpha officecli raw-set presentation.pptx /slide[6] \ --xpath "//p:cSld/p:spTree" --action append --xml ' ' # "Thank You": sz=4800 bold white centered # Closing subtitle: sz=1600 light-teal 90E0EF # Three tiny diamonds: rot=2700000 rects, cx=cy=120000, teal/lavender/amber officecli raw-set presentation.pptx /slide[6] \ --xpath "//p:cSld/p:spTree" --action append --xml ' ' ``` **Features:** `a:noFill` (transparent shape body), gradient stroke ring effect (`a:ln/a:gradFill` with alpha), tiny rotated rect (`cx=cy=120000` EMU, `rot=2700000`), three-color accent trio (teal/lavender/amber) ## Complete Feature Coverage | Feature | Slides | |---------|--------| | **Backgrounds:** solid, 2-stop gradient, 3-stop gradient | 2, 3, 1/4/6 | | **Gradient angles:** 0° horizontal, 270° vertical, 90° inverted | 1, 3, 5 | | **Alpha / transparency on fills** (`a:alpha val=`) | 1, 4, 5 | | **Alpha / transparency on stroke** | 6 | | **Gradient fill stroke** (`a:ln/a:gradFill`) | 1, 5, 6 | | **Gradient fill as shape body** | 3 (accent bar) | | **prstGeom:** ellipse, line, rect, roundRect | all | | **roundRect adj corner radius** (`a:gd name="adj"`) | 2, 3 | | **noFill** (transparent shape body) | 1, 4, 6 | | **txBox="1"** text-only box | 1, 4 | | **bodyPr anchor:** t / b / ctr | all | | **bodyPr padding:** lIns/tIns/rIns/bIns | 2 | | **Font sizes** 1200–12000 hundredths-of-point range | all | | **Bold** (`b="1"`), **italic** (`i="1"`) | 1, 4 | | **Letter-spacing** (`spc=`) | 1 | | **Typefaces:** Segoe UI, Georgia | 1, 4, 5 | | **Per-run solidFill** | all | | **Multi-paragraph txBody with mixed sizes** | 1, 2, 3, 4 | | **Paragraph alignment** (`algn="l"/"ctr"`) | all | | **Rotation** (`a:xfrm rot=2700000`) | 1, 6 | | **Unicode glyphs in a:t** | 1, 2, 4 | | **Bash loop for repeated shapes** | 5, 6 | | **raw-set --action prepend** (background injection) | all | | **raw-set --action append** (shape injection) | all | | **Decorative non-text shapes** (accent bars, rings, diamonds) | 1, 3, 4, 6 | ## Inspect the Generated File ```bash officecli query presentation.pptx slide officecli get presentation.pptx /slide[1] officecli get presentation.pptx "/slide[2]/shape[3]" officecli get presentation.pptx "/slide[5]/shape[2]" ```