8cb1f9f479
Publish SDK (PyPI) / publish (push) Has been cancelled
Publish SDK (npm) / publish (@aionui/officecli-sdk) (push) Has been cancelled
SDK smoke / smoke (windows-latest) (push) Has been cancelled
Publish SDK (npm) / publish (@officecli/officecli-sdk) (push) Has been cancelled
Publish SDK (npm) / publish (@officecli/sdk) (push) Has been cancelled
Publish SDK (npm) / publish (officecli-sdk) (push) Has been cancelled
SDK smoke / smoke (macos-latest) (push) Has been cancelled
SDK smoke / smoke (ubuntu-latest) (push) Has been cancelled
Skill parity / diff (push) Has been cancelled
708 lines
21 KiB
Bash
Executable File
708 lines
21 KiB
Bash
Executable File
#!/bin/bash
|
|
set -e
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
OUTPUT="$SCRIPT_DIR/dark__liquid_flow.pptx"
|
|
|
|
echo "Building: dark--liquid-flow (LUXE Brand Visual Upgrade)"
|
|
rm -f "$OUTPUT"
|
|
officecli create "$OUTPUT"
|
|
|
|
# Colors
|
|
BG=0F0F2D
|
|
VIOLET=6C63FF
|
|
MINT=48E5C2
|
|
CORAL=FF6B8A
|
|
EBLUE=3D5AFE
|
|
AMBER=F5AF19
|
|
TITLE=F5F5FF
|
|
BODY=C8C8FF
|
|
MUTED=8888CC
|
|
|
|
# Off-canvas position
|
|
OFFSCREEN=36cm
|
|
|
|
# ============================================
|
|
# SLIDE 1 - HERO
|
|
# ============================================
|
|
echo "Building Slide 1: Hero..."
|
|
|
|
officecli add "$OUTPUT" '/' --type slide --prop layout=blank --prop background=$BG
|
|
|
|
# Scene actors: large fluid blobs (4 main blobs)
|
|
officecli add "$OUTPUT" '/slide[1]' --type shape \
|
|
--prop 'name=!!blob-1' \
|
|
--prop preset=ellipse \
|
|
--prop fill=$VIOLET \
|
|
--prop opacity=0.35 \
|
|
--prop rotation=15 \
|
|
--prop x=2cm --prop y=3cm --prop width=12cm --prop height=8cm
|
|
|
|
officecli add "$OUTPUT" '/slide[1]' --type shape \
|
|
--prop 'name=!!blob-2' \
|
|
--prop preset=ellipse \
|
|
--prop fill=$MINT \
|
|
--prop opacity=0.28 \
|
|
--prop rotation=25 \
|
|
--prop x=20cm --prop y=2cm --prop width=10cm --prop height=14cm
|
|
|
|
officecli add "$OUTPUT" '/slide[1]' --type shape \
|
|
--prop 'name=!!blob-3' \
|
|
--prop preset=ellipse \
|
|
--prop fill=$CORAL \
|
|
--prop opacity=0.32 \
|
|
--prop rotation=18 \
|
|
--prop x=8cm --prop y=10cm --prop width=13cm --prop height=9cm
|
|
|
|
officecli add "$OUTPUT" '/slide[1]' --type shape \
|
|
--prop 'name=!!blob-4' \
|
|
--prop preset=ellipse \
|
|
--prop fill=$EBLUE \
|
|
--prop opacity=0.38 \
|
|
--prop rotation=22 \
|
|
--prop x=24cm --prop y=11cm --prop width=9cm --prop height=11cm
|
|
|
|
# Scene actors: additional blob (hidden initially, appears in slide 3 & 5)
|
|
officecli add "$OUTPUT" '/slide[1]' --type shape \
|
|
--prop 'name=!!blob-5' \
|
|
--prop preset=ellipse \
|
|
--prop fill=$AMBER \
|
|
--prop opacity=0.01 \
|
|
--prop x=${OFFSCREEN} --prop y=0cm --prop width=8cm --prop height=11cm
|
|
|
|
# Scene actors: small droplets (3 droplets)
|
|
officecli add "$OUTPUT" '/slide[1]' --type shape \
|
|
--prop 'name=!!drop-1' \
|
|
--prop preset=ellipse \
|
|
--prop fill=$AMBER \
|
|
--prop opacity=0.55 \
|
|
--prop rotation=12 \
|
|
--prop x=15cm --prop y=5cm --prop width=3.5cm --prop height=2.8cm
|
|
|
|
officecli add "$OUTPUT" '/slide[1]' --type shape \
|
|
--prop 'name=!!drop-2' \
|
|
--prop preset=ellipse \
|
|
--prop fill=$MINT \
|
|
--prop opacity=0.58 \
|
|
--prop rotation=28 \
|
|
--prop x=18cm --prop y=14cm --prop width=4cm --prop height=3.2cm
|
|
|
|
officecli add "$OUTPUT" '/slide[1]' --type shape \
|
|
--prop 'name=!!drop-3' \
|
|
--prop preset=ellipse \
|
|
--prop fill=$VIOLET \
|
|
--prop opacity=0.52 \
|
|
--prop rotation=35 \
|
|
--prop x=6cm --prop y=16cm --prop width=2.8cm --prop height=3.8cm
|
|
|
|
# Content: title text
|
|
officecli add "$OUTPUT" '/slide[1]' --type shape \
|
|
--prop 'name=#s1-title' \
|
|
--prop text="LUXE" \
|
|
--prop font="Arial" \
|
|
--prop size=72 \
|
|
--prop bold=true \
|
|
--prop color=$TITLE \
|
|
--prop align=center \
|
|
--prop fill=none \
|
|
--prop x=3cm --prop y=6cm --prop width=28cm --prop height=3cm
|
|
|
|
officecli add "$OUTPUT" '/slide[1]' --type shape \
|
|
--prop 'name=#s1-subtitle' \
|
|
--prop text="品牌视觉升级 2025" \
|
|
--prop font="Arial" \
|
|
--prop size=42 \
|
|
--prop color=$BODY \
|
|
--prop align=center \
|
|
--prop fill=none \
|
|
--prop x=3cm --prop y=9.5cm --prop width=28cm --prop height=2cm
|
|
|
|
# ============================================
|
|
# SLIDE 2 - STATEMENT
|
|
# ============================================
|
|
echo "Building Slide 2: Statement..."
|
|
|
|
officecli add "$OUTPUT" '/' --type slide --prop layout=blank --prop background=$BG
|
|
officecli set "$OUTPUT" '/slide[2]' --prop transition=morph
|
|
|
|
# Move blobs (rotated and moved)
|
|
officecli add "$OUTPUT" '/slide[2]' --type shape \
|
|
--prop 'name=!!blob-1' \
|
|
--prop preset=ellipse \
|
|
--prop fill=$VIOLET \
|
|
--prop opacity=0.40 \
|
|
--prop rotation=45 \
|
|
--prop x=4cm --prop y=1cm --prop width=15cm --prop height=10cm
|
|
|
|
officecli add "$OUTPUT" '/slide[2]' --type shape \
|
|
--prop 'name=!!blob-2' \
|
|
--prop preset=ellipse \
|
|
--prop fill=$MINT \
|
|
--prop opacity=0.33 \
|
|
--prop rotation=52 \
|
|
--prop x=18cm --prop y=8cm --prop width=13cm --prop height=9cm
|
|
|
|
officecli add "$OUTPUT" '/slide[2]' --type shape \
|
|
--prop 'name=!!blob-3' \
|
|
--prop preset=ellipse \
|
|
--prop fill=$CORAL \
|
|
--prop opacity=0.36 \
|
|
--prop rotation=48 \
|
|
--prop x=1cm --prop y=9cm --prop width=10cm --prop height=13cm
|
|
|
|
officecli add "$OUTPUT" '/slide[2]' --type shape \
|
|
--prop 'name=!!blob-4' \
|
|
--prop preset=ellipse \
|
|
--prop fill=$EBLUE \
|
|
--prop opacity=0.42 \
|
|
--prop rotation=58 \
|
|
--prop x=22cm --prop y=3cm --prop width=11cm --prop height=8cm
|
|
|
|
officecli add "$OUTPUT" '/slide[2]' --type shape \
|
|
--prop 'name=!!blob-5' \
|
|
--prop preset=ellipse \
|
|
--prop fill=$AMBER \
|
|
--prop opacity=0.01 \
|
|
--prop x=${OFFSCREEN} --prop y=0cm --prop width=8cm --prop height=11cm
|
|
|
|
# Move droplets
|
|
officecli add "$OUTPUT" '/slide[2]' --type shape \
|
|
--prop 'name=!!drop-1' \
|
|
--prop preset=ellipse \
|
|
--prop fill=$AMBER \
|
|
--prop opacity=0.60 \
|
|
--prop rotation=38 \
|
|
--prop x=12cm --prop y=8cm --prop width=4.2cm --prop height=3.5cm
|
|
|
|
officecli add "$OUTPUT" '/slide[2]' --type shape \
|
|
--prop 'name=!!drop-2' \
|
|
--prop preset=ellipse \
|
|
--prop fill=$MINT \
|
|
--prop opacity=0.56 \
|
|
--prop rotation=55 \
|
|
--prop x=25cm --prop y=12cm --prop width=3.2cm --prop height=4.5cm
|
|
|
|
officecli add "$OUTPUT" '/slide[2]' --type shape \
|
|
--prop 'name=!!drop-3' \
|
|
--prop preset=ellipse \
|
|
--prop fill=$VIOLET \
|
|
--prop opacity=0.54 \
|
|
--prop rotation=62 \
|
|
--prop x=8cm --prop y=15cm --prop width=3.8cm --prop height=2.6cm
|
|
|
|
# Content: statement text
|
|
officecli add "$OUTPUT" '/slide[2]' --type shape \
|
|
--prop 'name=#s2-statement1' \
|
|
--prop text="从经典到未来" \
|
|
--prop font="Arial" \
|
|
--prop size=56 \
|
|
--prop bold=true \
|
|
--prop color=$TITLE \
|
|
--prop align=center \
|
|
--prop fill=none \
|
|
--prop x=5cm --prop y=6cm --prop width=24cm --prop height=2.5cm
|
|
|
|
officecli add "$OUTPUT" '/slide[2]' --type shape \
|
|
--prop 'name=#s2-statement2' \
|
|
--prop text="流动不止" \
|
|
--prop font="Arial" \
|
|
--prop size=48 \
|
|
--prop color=$BODY \
|
|
--prop align=center \
|
|
--prop fill=none \
|
|
--prop x=5cm --prop y=9cm --prop width=24cm --prop height=2cm
|
|
|
|
# ============================================
|
|
# SLIDE 3 - PILLARS
|
|
# ============================================
|
|
echo "Building Slide 3: Pillars..."
|
|
|
|
officecli add "$OUTPUT" '/' --type slide --prop layout=blank --prop background=$BG
|
|
officecli set "$OUTPUT" '/slide[3]' --prop transition=morph
|
|
|
|
# Move blobs (further transformed)
|
|
officecli add "$OUTPUT" '/slide[3]' --type shape \
|
|
--prop 'name=!!blob-1' \
|
|
--prop preset=ellipse \
|
|
--prop fill=$VIOLET \
|
|
--prop opacity=0.30 \
|
|
--prop rotation=70 \
|
|
--prop x=1cm --prop y=4cm --prop width=9cm --prop height=12cm
|
|
|
|
officecli add "$OUTPUT" '/slide[3]' --type shape \
|
|
--prop 'name=!!blob-2' \
|
|
--prop preset=ellipse \
|
|
--prop fill=$MINT \
|
|
--prop opacity=0.35 \
|
|
--prop rotation=78 \
|
|
--prop x=10cm --prop y=1cm --prop width=12cm --prop height=8cm
|
|
|
|
officecli add "$OUTPUT" '/slide[3]' --type shape \
|
|
--prop 'name=!!blob-3' \
|
|
--prop preset=ellipse \
|
|
--prop fill=$CORAL \
|
|
--prop opacity=0.28 \
|
|
--prop rotation=65 \
|
|
--prop x=23cm --prop y=2cm --prop width=10cm --prop height=13cm
|
|
|
|
officecli add "$OUTPUT" '/slide[3]' --type shape \
|
|
--prop 'name=!!blob-4' \
|
|
--prop preset=ellipse \
|
|
--prop fill=$EBLUE \
|
|
--prop opacity=0.38 \
|
|
--prop rotation=82 \
|
|
--prop x=15cm --prop y=10cm --prop width=14cm --prop height=9cm
|
|
|
|
# Show blob-5 on slide 3
|
|
officecli add "$OUTPUT" '/slide[3]' --type shape \
|
|
--prop 'name=!!blob-5' \
|
|
--prop preset=ellipse \
|
|
--prop fill=$AMBER \
|
|
--prop opacity=0.32 \
|
|
--prop rotation=72 \
|
|
--prop x=3cm --prop y=14cm --prop width=8cm --prop height=11cm
|
|
|
|
# Move droplets (only 2 visible)
|
|
officecli add "$OUTPUT" '/slide[3]' --type shape \
|
|
--prop 'name=!!drop-1' \
|
|
--prop preset=ellipse \
|
|
--prop fill=$CORAL \
|
|
--prop opacity=0.58 \
|
|
--prop rotation=68 \
|
|
--prop x=20cm --prop y=6cm --prop width=3.8cm --prop height=3cm
|
|
|
|
officecli add "$OUTPUT" '/slide[3]' --type shape \
|
|
--prop 'name=!!drop-2' \
|
|
--prop preset=ellipse \
|
|
--prop fill=$EBLUE \
|
|
--prop opacity=0.56 \
|
|
--prop rotation=85 \
|
|
--prop x=27cm --prop y=14cm --prop width=3.2cm --prop height=4.2cm
|
|
|
|
officecli add "$OUTPUT" '/slide[3]' --type shape \
|
|
--prop 'name=!!drop-3' \
|
|
--prop preset=ellipse \
|
|
--prop fill=$VIOLET \
|
|
--prop opacity=0.01 \
|
|
--prop x=${OFFSCREEN} --prop y=0cm --prop width=3.8cm --prop height=2.6cm
|
|
|
|
# Content: pillars
|
|
officecli add "$OUTPUT" '/slide[3]' --type shape \
|
|
--prop 'name=#s3-title' \
|
|
--prop text="三大升级维度" \
|
|
--prop font="Arial" \
|
|
--prop size=56 \
|
|
--prop bold=true \
|
|
--prop color=$TITLE \
|
|
--prop align=center \
|
|
--prop fill=none \
|
|
--prop x=4cm --prop y=2cm --prop width=26cm --prop height=2cm
|
|
|
|
officecli add "$OUTPUT" '/slide[3]' --type shape \
|
|
--prop 'name=#s3-p1-title' \
|
|
--prop text="色彩体系" \
|
|
--prop font="Arial" \
|
|
--prop size=24 \
|
|
--prop color=$BODY \
|
|
--prop align=center \
|
|
--prop fill=none \
|
|
--prop x=5cm --prop y=7cm --prop width=8cm --prop height=1.5cm
|
|
|
|
officecli add "$OUTPUT" '/slide[3]' --type shape \
|
|
--prop 'name=#s3-p2-title' \
|
|
--prop text="字体系统" \
|
|
--prop font="Arial" \
|
|
--prop size=24 \
|
|
--prop color=$BODY \
|
|
--prop align=center \
|
|
--prop fill=none \
|
|
--prop x=13cm --prop y=7cm --prop width=8cm --prop height=1.5cm
|
|
|
|
officecli add "$OUTPUT" '/slide[3]' --type shape \
|
|
--prop 'name=#s3-p3-title' \
|
|
--prop text="动态标识" \
|
|
--prop font="Arial" \
|
|
--prop size=24 \
|
|
--prop color=$BODY \
|
|
--prop align=center \
|
|
--prop fill=none \
|
|
--prop x=21cm --prop y=7cm --prop width=8cm --prop height=1.5cm
|
|
|
|
officecli add "$OUTPUT" '/slide[3]' --type shape \
|
|
--prop 'name=#s3-p1-desc' \
|
|
--prop text="现代渐变与流动配色" \
|
|
--prop font="Arial" \
|
|
--prop size=18 \
|
|
--prop color=$MUTED \
|
|
--prop align=center \
|
|
--prop fill=none \
|
|
--prop x=5cm --prop y=9cm --prop width=8cm --prop height=1.2cm
|
|
|
|
officecli add "$OUTPUT" '/slide[3]' --type shape \
|
|
--prop 'name=#s3-p2-desc' \
|
|
--prop text="优雅衬线与几何无衬线" \
|
|
--prop font="Arial" \
|
|
--prop size=18 \
|
|
--prop color=$MUTED \
|
|
--prop align=center \
|
|
--prop fill=none \
|
|
--prop x=13cm --prop y=9cm --prop width=8cm --prop height=1.2cm
|
|
|
|
officecli add "$OUTPUT" '/slide[3]' --type shape \
|
|
--prop 'name=#s3-p3-desc' \
|
|
--prop text="响应式动效标志" \
|
|
--prop font="Arial" \
|
|
--prop size=18 \
|
|
--prop color=$MUTED \
|
|
--prop align=center \
|
|
--prop fill=none \
|
|
--prop x=21cm --prop y=9cm --prop width=8cm --prop height=1.2cm
|
|
|
|
# ============================================
|
|
# SLIDE 4 - SHOWCASE
|
|
# ============================================
|
|
echo "Building Slide 4: Showcase..."
|
|
|
|
officecli add "$OUTPUT" '/' --type slide --prop layout=blank --prop background=$BG
|
|
officecli set "$OUTPUT" '/slide[4]' --prop transition=morph
|
|
|
|
# Move blobs (new positions)
|
|
officecli add "$OUTPUT" '/slide[4]' --type shape \
|
|
--prop 'name=!!blob-1' \
|
|
--prop preset=ellipse \
|
|
--prop fill=$VIOLET \
|
|
--prop opacity=0.35 \
|
|
--prop rotation=95 \
|
|
--prop x=22cm --prop y=1cm --prop width=11cm --prop height=9cm
|
|
|
|
officecli add "$OUTPUT" '/slide[4]' --type shape \
|
|
--prop 'name=!!blob-2' \
|
|
--prop preset=ellipse \
|
|
--prop fill=$MINT \
|
|
--prop opacity=0.30 \
|
|
--prop rotation=105 \
|
|
--prop x=2cm --prop y=2cm --prop width=13cm --prop height=10cm
|
|
|
|
officecli add "$OUTPUT" '/slide[4]' --type shape \
|
|
--prop 'name=!!blob-3' \
|
|
--prop preset=ellipse \
|
|
--prop fill=$CORAL \
|
|
--prop opacity=0.40 \
|
|
--prop rotation=92 \
|
|
--prop x=12cm --prop y=9cm --prop width=9cm --prop height=12cm
|
|
|
|
officecli add "$OUTPUT" '/slide[4]' --type shape \
|
|
--prop 'name=!!blob-4' \
|
|
--prop preset=ellipse \
|
|
--prop fill=$EBLUE \
|
|
--prop opacity=0.33 \
|
|
--prop rotation=110 \
|
|
--prop x=24cm --prop y=10cm --prop width=10cm --prop height=8cm
|
|
|
|
# Hide blob-5 on slide 4
|
|
officecli add "$OUTPUT" '/slide[4]' --type shape \
|
|
--prop 'name=!!blob-5' \
|
|
--prop preset=ellipse \
|
|
--prop fill=$AMBER \
|
|
--prop opacity=0.01 \
|
|
--prop x=${OFFSCREEN} --prop y=0cm --prop width=8cm --prop height=11cm
|
|
|
|
# Move droplets (all 3 visible again)
|
|
officecli add "$OUTPUT" '/slide[4]' --type shape \
|
|
--prop 'name=!!drop-1' \
|
|
--prop preset=ellipse \
|
|
--prop fill=$AMBER \
|
|
--prop opacity=0.58 \
|
|
--prop rotation=100 \
|
|
--prop x=17cm --prop y=4cm --prop width=3.5cm --prop height=4.3cm
|
|
|
|
officecli add "$OUTPUT" '/slide[4]' --type shape \
|
|
--prop 'name=!!drop-2' \
|
|
--prop preset=ellipse \
|
|
--prop fill=$MINT \
|
|
--prop opacity=0.60 \
|
|
--prop rotation=88 \
|
|
--prop x=8cm --prop y=13cm --prop width=4.2cm --prop height=3cm
|
|
|
|
officecli add "$OUTPUT" '/slide[4]' --type shape \
|
|
--prop 'name=!!drop-3' \
|
|
--prop preset=ellipse \
|
|
--prop fill=$CORAL \
|
|
--prop opacity=0.55 \
|
|
--prop rotation=115 \
|
|
--prop x=20cm --prop y=15cm --prop width=2.8cm --prop height=3.6cm
|
|
|
|
# Content: showcase
|
|
officecli add "$OUTPUT" '/slide[4]' --type shape \
|
|
--prop 'name=#s4-title' \
|
|
--prop text="产品应用展示" \
|
|
--prop font="Arial" \
|
|
--prop size=56 \
|
|
--prop bold=true \
|
|
--prop color=$TITLE \
|
|
--prop align=center \
|
|
--prop fill=none \
|
|
--prop x=4cm --prop y=3cm --prop width=26cm --prop height=2cm
|
|
|
|
officecli add "$OUTPUT" '/slide[4]' --type shape \
|
|
--prop 'name=#s4-subtitle' \
|
|
--prop text="包装设计 | 数字界面 | 空间体验" \
|
|
--prop font="Arial" \
|
|
--prop size=24 \
|
|
--prop color=$BODY \
|
|
--prop align=center \
|
|
--prop fill=none \
|
|
--prop x=5cm --prop y=8cm --prop width=24cm --prop height=2cm
|
|
|
|
officecli add "$OUTPUT" '/slide[4]' --type shape \
|
|
--prop 'name=#s4-desc1' \
|
|
--prop text="全新视觉系统已应用于产品包装、移动应用、" \
|
|
--prop font="Arial" \
|
|
--prop size=20 \
|
|
--prop color=$MUTED \
|
|
--prop align=center \
|
|
--prop fill=none \
|
|
--prop x=6cm --prop y=11cm --prop width=22cm --prop height=1.2cm
|
|
|
|
officecli add "$OUTPUT" '/slide[4]' --type shape \
|
|
--prop 'name=#s4-desc2' \
|
|
--prop text="线下门店及品牌传播的各个触点" \
|
|
--prop font="Arial" \
|
|
--prop size=20 \
|
|
--prop color=$MUTED \
|
|
--prop align=center \
|
|
--prop fill=none \
|
|
--prop x=6cm --prop y=12.5cm --prop width=22cm --prop height=1.2cm
|
|
|
|
# ============================================
|
|
# SLIDE 5 - EVIDENCE
|
|
# ============================================
|
|
echo "Building Slide 5: Evidence..."
|
|
|
|
officecli add "$OUTPUT" '/' --type slide --prop layout=blank --prop background=$BG
|
|
officecli set "$OUTPUT" '/slide[5]' --prop transition=morph
|
|
|
|
# Move blobs (data visualization feel)
|
|
officecli add "$OUTPUT" '/slide[5]' --type shape \
|
|
--prop 'name=!!blob-1' \
|
|
--prop preset=ellipse \
|
|
--prop fill=$VIOLET \
|
|
--prop opacity=0.32 \
|
|
--prop rotation=135 \
|
|
--prop x=12cm --prop y=3cm --prop width=10cm --prop height=13cm
|
|
|
|
officecli add "$OUTPUT" '/slide[5]' --type shape \
|
|
--prop 'name=!!blob-2' \
|
|
--prop preset=ellipse \
|
|
--prop fill=$MINT \
|
|
--prop opacity=0.38 \
|
|
--prop rotation=125 \
|
|
--prop x=3cm --prop y=8cm --prop width=8cm --prop height=11cm
|
|
|
|
officecli add "$OUTPUT" '/slide[5]' --type shape \
|
|
--prop 'name=!!blob-3' \
|
|
--prop preset=ellipse \
|
|
--prop fill=$CORAL \
|
|
--prop opacity=0.35 \
|
|
--prop rotation=118 \
|
|
--prop x=23cm --prop y=7cm --prop width=9cm --prop height=12cm
|
|
|
|
officecli add "$OUTPUT" '/slide[5]' --type shape \
|
|
--prop 'name=!!blob-4' \
|
|
--prop preset=ellipse \
|
|
--prop fill=$EBLUE \
|
|
--prop opacity=0.28 \
|
|
--prop rotation=142 \
|
|
--prop x=1cm --prop y=1cm --prop width=12cm --prop height=9cm
|
|
|
|
# Show blob-5 again on slide 5
|
|
officecli add "$OUTPUT" '/slide[5]' --type shape \
|
|
--prop 'name=!!blob-5' \
|
|
--prop preset=ellipse \
|
|
--prop fill=$AMBER \
|
|
--prop opacity=0.40 \
|
|
--prop rotation=130 \
|
|
--prop x=20cm --prop y=1cm --prop width=11cm --prop height=8cm
|
|
|
|
# Move droplets (only 2 visible)
|
|
officecli add "$OUTPUT" '/slide[5]' --type shape \
|
|
--prop 'name=!!drop-1' \
|
|
--prop preset=ellipse \
|
|
--prop fill=$VIOLET \
|
|
--prop opacity=0.58 \
|
|
--prop rotation=138 \
|
|
--prop x=16cm --prop y=10cm --prop width=3.6cm --prop height=2.9cm
|
|
|
|
officecli add "$OUTPUT" '/slide[5]' --type shape \
|
|
--prop 'name=!!drop-2' \
|
|
--prop preset=ellipse \
|
|
--prop fill=$MINT \
|
|
--prop opacity=0.56 \
|
|
--prop rotation=122 \
|
|
--prop x=6cm --prop y=15cm --prop width=4cm --prop height=3.4cm
|
|
|
|
officecli add "$OUTPUT" '/slide[5]' --type shape \
|
|
--prop 'name=!!drop-3' \
|
|
--prop preset=ellipse \
|
|
--prop fill=$CORAL \
|
|
--prop opacity=0.01 \
|
|
--prop x=${OFFSCREEN} --prop y=0cm --prop width=2.8cm --prop height=3.6cm
|
|
|
|
# Content: evidence
|
|
officecli add "$OUTPUT" '/slide[5]' --type shape \
|
|
--prop 'name=#s5-title' \
|
|
--prop text="市场成果" \
|
|
--prop font="Arial" \
|
|
--prop size=56 \
|
|
--prop bold=true \
|
|
--prop color=$TITLE \
|
|
--prop align=center \
|
|
--prop fill=none \
|
|
--prop x=4cm --prop y=2cm --prop width=26cm --prop height=2cm
|
|
|
|
officecli add "$OUTPUT" '/slide[5]' --type shape \
|
|
--prop 'name=#s5-metric1-num' \
|
|
--prop text="+45%" \
|
|
--prop font="Arial" \
|
|
--prop size=64 \
|
|
--prop bold=true \
|
|
--prop color=$MINT \
|
|
--prop align=center \
|
|
--prop fill=none \
|
|
--prop x=6cm --prop y=7cm --prop width=10cm --prop height=2.5cm
|
|
|
|
officecli add "$OUTPUT" '/slide[5]' --type shape \
|
|
--prop 'name=#s5-metric2-num' \
|
|
--prop text="+120%" \
|
|
--prop font="Arial" \
|
|
--prop size=64 \
|
|
--prop bold=true \
|
|
--prop color=$CORAL \
|
|
--prop align=center \
|
|
--prop fill=none \
|
|
--prop x=18cm --prop y=7cm --prop width=10cm --prop height=2.5cm
|
|
|
|
officecli add "$OUTPUT" '/slide[5]' --type shape \
|
|
--prop 'name=#s5-metric1-label' \
|
|
--prop text="品牌认知度提升" \
|
|
--prop font="Arial" \
|
|
--prop size=20 \
|
|
--prop color=$BODY \
|
|
--prop align=center \
|
|
--prop fill=none \
|
|
--prop x=6cm --prop y=10cm --prop width=10cm --prop height=1.2cm
|
|
|
|
officecli add "$OUTPUT" '/slide[5]' --type shape \
|
|
--prop 'name=#s5-metric2-label' \
|
|
--prop text="社交媒体互动增长" \
|
|
--prop font="Arial" \
|
|
--prop size=20 \
|
|
--prop color=$BODY \
|
|
--prop align=center \
|
|
--prop fill=none \
|
|
--prop x=18cm --prop y=10cm --prop width=10cm --prop height=1.2cm
|
|
|
|
# ============================================
|
|
# SLIDE 6 - CTA
|
|
# ============================================
|
|
echo "Building Slide 6: CTA..."
|
|
|
|
officecli add "$OUTPUT" '/' --type slide --prop layout=blank --prop background=$BG
|
|
officecli set "$OUTPUT" '/slide[6]' --prop transition=morph
|
|
|
|
# Move blobs (return to center, calmer)
|
|
officecli add "$OUTPUT" '/slide[6]' --type shape \
|
|
--prop 'name=!!blob-1' \
|
|
--prop preset=ellipse \
|
|
--prop fill=$VIOLET \
|
|
--prop opacity=0.30 \
|
|
--prop rotation=155 \
|
|
--prop x=5cm --prop y=2cm --prop width=10cm --prop height=14cm
|
|
|
|
officecli add "$OUTPUT" '/slide[6]' --type shape \
|
|
--prop 'name=!!blob-2' \
|
|
--prop preset=ellipse \
|
|
--prop fill=$MINT \
|
|
--prop opacity=0.35 \
|
|
--prop rotation=165 \
|
|
--prop x=18cm --prop y=1cm --prop width=13cm --prop height=10cm
|
|
|
|
officecli add "$OUTPUT" '/slide[6]' --type shape \
|
|
--prop 'name=!!blob-3' \
|
|
--prop preset=ellipse \
|
|
--prop fill=$CORAL \
|
|
--prop opacity=0.28 \
|
|
--prop rotation=148 \
|
|
--prop x=2cm --prop y=11cm --prop width=12cm --prop height=8cm
|
|
|
|
officecli add "$OUTPUT" '/slide[6]' --type shape \
|
|
--prop 'name=!!blob-4' \
|
|
--prop preset=ellipse \
|
|
--prop fill=$EBLUE \
|
|
--prop opacity=0.38 \
|
|
--prop rotation=172 \
|
|
--prop x=22cm --prop y=10cm --prop width=9cm --prop height=11cm
|
|
|
|
# Hide blob-5 on slide 6
|
|
officecli add "$OUTPUT" '/slide[6]' --type shape \
|
|
--prop 'name=!!blob-5' \
|
|
--prop preset=ellipse \
|
|
--prop fill=$AMBER \
|
|
--prop opacity=0.01 \
|
|
--prop x=${OFFSCREEN} --prop y=0cm --prop width=11cm --prop height=8cm
|
|
|
|
# Move droplets (all 3 visible)
|
|
officecli add "$OUTPUT" '/slide[6]' --type shape \
|
|
--prop 'name=!!drop-1' \
|
|
--prop preset=ellipse \
|
|
--prop fill=$AMBER \
|
|
--prop opacity=0.60 \
|
|
--prop rotation=160 \
|
|
--prop x=12cm --prop y=6cm --prop width=3.2cm --prop height=4cm
|
|
|
|
officecli add "$OUTPUT" '/slide[6]' --type shape \
|
|
--prop 'name=!!drop-2' \
|
|
--prop preset=ellipse \
|
|
--prop fill=$MINT \
|
|
--prop opacity=0.55 \
|
|
--prop rotation=150 \
|
|
--prop x=24cm --prop y=7cm --prop width=3.8cm --prop height=3cm
|
|
|
|
officecli add "$OUTPUT" '/slide[6]' --type shape \
|
|
--prop 'name=!!drop-3' \
|
|
--prop preset=ellipse \
|
|
--prop fill=$VIOLET \
|
|
--prop opacity=0.58 \
|
|
--prop rotation=178 \
|
|
--prop x=8cm --prop y=16cm --prop width=2.9cm --prop height=3.5cm
|
|
|
|
# Content: CTA
|
|
officecli add "$OUTPUT" '/slide[6]' --type shape \
|
|
--prop 'name=#s6-title' \
|
|
--prop text="开启品牌新纪元" \
|
|
--prop font="Arial" \
|
|
--prop size=64 \
|
|
--prop bold=true \
|
|
--prop color=$TITLE \
|
|
--prop align=center \
|
|
--prop fill=none \
|
|
--prop x=4cm --prop y=7cm --prop width=26cm --prop height=2.5cm
|
|
|
|
officecli add "$OUTPUT" '/slide[6]' --type shape \
|
|
--prop 'name=#s6-subtitle' \
|
|
--prop text="LUXE — 流动的美学 · 未来的经典" \
|
|
--prop font="Arial" \
|
|
--prop size=22 \
|
|
--prop color=$BODY \
|
|
--prop align=center \
|
|
--prop fill=none \
|
|
--prop x=5cm --prop y=10.5cm --prop width=24cm --prop height=1.5cm
|
|
|
|
# ============================================
|
|
# FINAL VALIDATION
|
|
# ============================================
|
|
officecli validate "$OUTPUT"
|
|
officecli view "$OUTPUT" outline
|
|
|
|
echo "✅ Build complete: $OUTPUT"
|