Update: 将子项目从 submodule 转为完整内容
- 移除 GovAI, nomifun-tauri, 算力盒子 的 submodule 引用 - 添加所有子项目的完整源代码 - 保留原始 .git 为 .git.bak 备份
This commit is contained in:
+502
@@ -0,0 +1,502 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
OUTPUT="$SCRIPT_DIR/vivid__candy_stripe.pptx"
|
||||
|
||||
echo "Building: vivid--candy-stripe (Rainbow Candy Stripes)"
|
||||
rm -f "$OUTPUT"
|
||||
officecli create "$OUTPUT"
|
||||
|
||||
# Colors
|
||||
BG=FFFFFF
|
||||
RED=FF5252
|
||||
ORANGE=FF7B39
|
||||
YELLOW=FFD740
|
||||
GREEN=69F0AE
|
||||
BLUE=40C4FF
|
||||
PURPLE=7C4DFF
|
||||
BLACK=1A1A1A
|
||||
GRAY=555555
|
||||
|
||||
# ============================================
|
||||
# SLIDE 1 - HERO
|
||||
# ============================================
|
||||
echo "Building Slide 1: Hero..."
|
||||
|
||||
officecli add "$OUTPUT" '/' --type slide --prop layout=blank --prop background=$BG
|
||||
|
||||
# Scene actors: 6 rainbow stripes (evenly distributed)
|
||||
officecli add "$OUTPUT" '/slide[1]' --type shape \
|
||||
--prop 'name=!!stripe-red' \
|
||||
--prop preset=rect \
|
||||
--prop fill=$RED \
|
||||
--prop opacity=0.85 \
|
||||
--prop x=0cm --prop y=0cm --prop width=34cm --prop height=2cm
|
||||
|
||||
officecli add "$OUTPUT" '/slide[1]' --type shape \
|
||||
--prop 'name=!!stripe-orange' \
|
||||
--prop preset=rect \
|
||||
--prop fill=$ORANGE \
|
||||
--prop opacity=0.85 \
|
||||
--prop x=0cm --prop y=3.4cm --prop width=34cm --prop height=2cm
|
||||
|
||||
officecli add "$OUTPUT" '/slide[1]' --type shape \
|
||||
--prop 'name=!!stripe-yellow' \
|
||||
--prop preset=rect \
|
||||
--prop fill=$YELLOW \
|
||||
--prop opacity=0.85 \
|
||||
--prop x=0cm --prop y=6.8cm --prop width=34cm --prop height=2cm
|
||||
|
||||
officecli add "$OUTPUT" '/slide[1]' --type shape \
|
||||
--prop 'name=!!stripe-green' \
|
||||
--prop preset=rect \
|
||||
--prop fill=$GREEN \
|
||||
--prop opacity=0.85 \
|
||||
--prop x=0cm --prop y=10.2cm --prop width=34cm --prop height=2cm
|
||||
|
||||
officecli add "$OUTPUT" '/slide[1]' --type shape \
|
||||
--prop 'name=!!stripe-blue' \
|
||||
--prop preset=rect \
|
||||
--prop fill=$BLUE \
|
||||
--prop opacity=0.85 \
|
||||
--prop x=0cm --prop y=13.6cm --prop width=34cm --prop height=2cm
|
||||
|
||||
officecli add "$OUTPUT" '/slide[1]' --type shape \
|
||||
--prop 'name=!!stripe-purple' \
|
||||
--prop preset=rect \
|
||||
--prop fill=$PURPLE \
|
||||
--prop opacity=0.85 \
|
||||
--prop x=0cm --prop y=17cm --prop width=34cm --prop height=2cm
|
||||
|
||||
# Content: hero text
|
||||
officecli add "$OUTPUT" '/slide[1]' --type shape \
|
||||
--prop 'name=#s1-title' \
|
||||
--prop text="Color Your World" \
|
||||
--prop font="Segoe UI Black" \
|
||||
--prop size=64 \
|
||||
--prop bold=true \
|
||||
--prop color=$BLACK \
|
||||
--prop align=center \
|
||||
--prop fill=none \
|
||||
--prop x=3cm --prop y=5.5cm --prop width=28cm --prop height=4.5cm
|
||||
|
||||
officecli add "$OUTPUT" '/slide[1]' --type shape \
|
||||
--prop 'name=#s1-subtitle' \
|
||||
--prop text="Creative Festival 2026" \
|
||||
--prop font="Segoe UI" \
|
||||
--prop size=28 \
|
||||
--prop color=$GRAY \
|
||||
--prop align=center \
|
||||
--prop fill=none \
|
||||
--prop x=3cm --prop y=10.5cm --prop width=28cm --prop height=2.5cm
|
||||
|
||||
# ============================================
|
||||
# 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
|
||||
|
||||
# Compress all stripes to top (thin header bar)
|
||||
officecli add "$OUTPUT" '/slide[2]' --type shape \
|
||||
--prop 'name=!!stripe-red' \
|
||||
--prop preset=rect \
|
||||
--prop fill=$RED \
|
||||
--prop opacity=1 \
|
||||
--prop x=0cm --prop y=0cm --prop width=34cm --prop height=0.5cm
|
||||
|
||||
officecli add "$OUTPUT" '/slide[2]' --type shape \
|
||||
--prop 'name=!!stripe-orange' \
|
||||
--prop preset=rect \
|
||||
--prop fill=$ORANGE \
|
||||
--prop opacity=1 \
|
||||
--prop x=0cm --prop y=0.5cm --prop width=34cm --prop height=0.5cm
|
||||
|
||||
officecli add "$OUTPUT" '/slide[2]' --type shape \
|
||||
--prop 'name=!!stripe-yellow' \
|
||||
--prop preset=rect \
|
||||
--prop fill=$YELLOW \
|
||||
--prop opacity=1 \
|
||||
--prop x=0cm --prop y=1cm --prop width=34cm --prop height=0.5cm
|
||||
|
||||
officecli add "$OUTPUT" '/slide[2]' --type shape \
|
||||
--prop 'name=!!stripe-green' \
|
||||
--prop preset=rect \
|
||||
--prop fill=$GREEN \
|
||||
--prop opacity=1 \
|
||||
--prop x=0cm --prop y=1.5cm --prop width=34cm --prop height=0.5cm
|
||||
|
||||
officecli add "$OUTPUT" '/slide[2]' --type shape \
|
||||
--prop 'name=!!stripe-blue' \
|
||||
--prop preset=rect \
|
||||
--prop fill=$BLUE \
|
||||
--prop opacity=1 \
|
||||
--prop x=0cm --prop y=2cm --prop width=34cm --prop height=0.5cm
|
||||
|
||||
officecli add "$OUTPUT" '/slide[2]' --type shape \
|
||||
--prop 'name=!!stripe-purple' \
|
||||
--prop preset=rect \
|
||||
--prop fill=$PURPLE \
|
||||
--prop opacity=1 \
|
||||
--prop x=0cm --prop y=2.5cm --prop width=34cm --prop height=0.5cm
|
||||
|
||||
# Content
|
||||
officecli add "$OUTPUT" '/slide[2]' --type shape \
|
||||
--prop 'name=#s2-statement' \
|
||||
--prop text="6 Days of Inspiration" \
|
||||
--prop font="Segoe UI Black" \
|
||||
--prop size=54 \
|
||||
--prop bold=true \
|
||||
--prop color=$BLACK \
|
||||
--prop align=center \
|
||||
--prop fill=none \
|
||||
--prop x=3cm --prop y=7cm --prop width=28cm --prop height=3.5cm
|
||||
|
||||
officecli add "$OUTPUT" '/slide[2]' --type shape \
|
||||
--prop 'name=#s2-desc' \
|
||||
--prop text="Join artists, designers, and creators from around the world\nto celebrate the power of color and imagination." \
|
||||
--prop font="Segoe UI" \
|
||||
--prop size=20 \
|
||||
--prop color=$GRAY \
|
||||
--prop align=center \
|
||||
--prop fill=none \
|
||||
--prop x=3cm --prop y=11.5cm --prop width=28cm --prop height=3cm
|
||||
|
||||
# ============================================
|
||||
# SLIDE 3 - PILLARS (3 columns)
|
||||
# ============================================
|
||||
echo "Building Slide 3: Pillars..."
|
||||
|
||||
officecli add "$OUTPUT" '/' --type slide --prop layout=blank --prop background=$BG
|
||||
officecli set "$OUTPUT" '/slide[3]' --prop transition=morph
|
||||
|
||||
# Stripes become card backgrounds (paired: red+orange, yellow+green, blue+purple)
|
||||
officecli add "$OUTPUT" '/slide[3]' --type shape \
|
||||
--prop 'name=!!stripe-red' \
|
||||
--prop preset=rect \
|
||||
--prop fill=$RED \
|
||||
--prop opacity=0.12 \
|
||||
--prop x=2cm --prop y=5cm --prop width=9cm --prop height=10cm
|
||||
|
||||
officecli add "$OUTPUT" '/slide[3]' --type shape \
|
||||
--prop 'name=!!stripe-orange' \
|
||||
--prop preset=rect \
|
||||
--prop fill=$ORANGE \
|
||||
--prop opacity=0.12 \
|
||||
--prop x=2cm --prop y=5cm --prop width=9cm --prop height=10cm
|
||||
|
||||
officecli add "$OUTPUT" '/slide[3]' --type shape \
|
||||
--prop 'name=!!stripe-yellow' \
|
||||
--prop preset=rect \
|
||||
--prop fill=$YELLOW \
|
||||
--prop opacity=0.12 \
|
||||
--prop x=12.5cm --prop y=5cm --prop width=9cm --prop height=10cm
|
||||
|
||||
officecli add "$OUTPUT" '/slide[3]' --type shape \
|
||||
--prop 'name=!!stripe-green' \
|
||||
--prop preset=rect \
|
||||
--prop fill=$GREEN \
|
||||
--prop opacity=0.12 \
|
||||
--prop x=12.5cm --prop y=5cm --prop width=9cm --prop height=10cm
|
||||
|
||||
officecli add "$OUTPUT" '/slide[3]' --type shape \
|
||||
--prop 'name=!!stripe-blue' \
|
||||
--prop preset=rect \
|
||||
--prop fill=$BLUE \
|
||||
--prop opacity=0.12 \
|
||||
--prop x=23cm --prop y=5cm --prop width=9cm --prop height=10cm
|
||||
|
||||
officecli add "$OUTPUT" '/slide[3]' --type shape \
|
||||
--prop 'name=!!stripe-purple' \
|
||||
--prop preset=rect \
|
||||
--prop fill=$PURPLE \
|
||||
--prop opacity=0.12 \
|
||||
--prop x=23cm --prop y=5cm --prop width=9cm --prop height=10cm
|
||||
|
||||
# Content: title
|
||||
officecli add "$OUTPUT" '/slide[3]' --type shape \
|
||||
--prop 'name=#s3-title' \
|
||||
--prop text="Three Themes" \
|
||||
--prop font="Segoe UI Black" \
|
||||
--prop size=48 \
|
||||
--prop bold=true \
|
||||
--prop color=$BLACK \
|
||||
--prop align=center \
|
||||
--prop fill=none \
|
||||
--prop x=3cm --prop y=1.5cm --prop width=28cm --prop height=2.5cm
|
||||
|
||||
# Column 1
|
||||
officecli add "$OUTPUT" '/slide[3]' --type shape \
|
||||
--prop 'name=#s3-col1-num' \
|
||||
--prop text="01" \
|
||||
--prop font="Segoe UI Black" \
|
||||
--prop size=40 \
|
||||
--prop bold=true \
|
||||
--prop color=$RED \
|
||||
--prop align=center \
|
||||
--prop fill=none \
|
||||
--prop x=3cm --prop y=6cm --prop width=7cm --prop height=2cm
|
||||
|
||||
officecli add "$OUTPUT" '/slide[3]' --type shape \
|
||||
--prop 'name=#s3-col1-title' \
|
||||
--prop text="Color Theory" \
|
||||
--prop font="Segoe UI Black" \
|
||||
--prop size=24 \
|
||||
--prop bold=true \
|
||||
--prop color=$BLACK \
|
||||
--prop align=center \
|
||||
--prop fill=none \
|
||||
--prop x=3cm --prop y=8.5cm --prop width=7cm --prop height=1.5cm
|
||||
|
||||
officecli add "$OUTPUT" '/slide[3]' --type shape \
|
||||
--prop 'name=#s3-col1-desc' \
|
||||
--prop text="Understanding harmony, contrast, and emotional impact of color combinations." \
|
||||
--prop font="Segoe UI" \
|
||||
--prop size=16 \
|
||||
--prop color=$GRAY \
|
||||
--prop align=center \
|
||||
--prop fill=none \
|
||||
--prop x=3cm --prop y=10.5cm --prop width=7cm --prop height=3cm
|
||||
|
||||
# Column 2
|
||||
officecli add "$OUTPUT" '/slide[3]' --type shape \
|
||||
--prop 'name=#s3-col2-num' \
|
||||
--prop text="02" \
|
||||
--prop font="Segoe UI Black" \
|
||||
--prop size=40 \
|
||||
--prop bold=true \
|
||||
--prop color=$YELLOW \
|
||||
--prop align=center \
|
||||
--prop fill=none \
|
||||
--prop x=13.5cm --prop y=6cm --prop width=7cm --prop height=2cm
|
||||
|
||||
officecli add "$OUTPUT" '/slide[3]' --type shape \
|
||||
--prop 'name=#s3-col2-title' \
|
||||
--prop text="Digital Art" \
|
||||
--prop font="Segoe UI Black" \
|
||||
--prop size=24 \
|
||||
--prop bold=true \
|
||||
--prop color=$BLACK \
|
||||
--prop align=center \
|
||||
--prop fill=none \
|
||||
--prop x=13.5cm --prop y=8.5cm --prop width=7cm --prop height=1.5cm
|
||||
|
||||
officecli add "$OUTPUT" '/slide[3]' --type shape \
|
||||
--prop 'name=#s3-col2-desc' \
|
||||
--prop text="Exploring vibrant palettes in modern digital design and illustration." \
|
||||
--prop font="Segoe UI" \
|
||||
--prop size=16 \
|
||||
--prop color=$GRAY \
|
||||
--prop align=center \
|
||||
--prop fill=none \
|
||||
--prop x=13.5cm --prop y=10.5cm --prop width=7cm --prop height=3cm
|
||||
|
||||
# Column 3
|
||||
officecli add "$OUTPUT" '/slide[3]' --type shape \
|
||||
--prop 'name=#s3-col3-num' \
|
||||
--prop text="03" \
|
||||
--prop font="Segoe UI Black" \
|
||||
--prop size=40 \
|
||||
--prop bold=true \
|
||||
--prop color=$BLUE \
|
||||
--prop align=center \
|
||||
--prop fill=none \
|
||||
--prop x=24cm --prop y=6cm --prop width=7cm --prop height=2cm
|
||||
|
||||
officecli add "$OUTPUT" '/slide[3]' --type shape \
|
||||
--prop 'name=#s3-col3-title' \
|
||||
--prop text="Brand Identity" \
|
||||
--prop font="Segoe UI Black" \
|
||||
--prop size=24 \
|
||||
--prop bold=true \
|
||||
--prop color=$BLACK \
|
||||
--prop align=center \
|
||||
--prop fill=none \
|
||||
--prop x=24cm --prop y=8.5cm --prop width=7cm --prop height=1.5cm
|
||||
|
||||
officecli add "$OUTPUT" '/slide[3]' --type shape \
|
||||
--prop 'name=#s3-col3-desc' \
|
||||
--prop text="Creating memorable brands through strategic color selection." \
|
||||
--prop font="Segoe UI" \
|
||||
--prop size=16 \
|
||||
--prop color=$GRAY \
|
||||
--prop align=center \
|
||||
--prop fill=none \
|
||||
--prop x=24cm --prop y=10.5cm --prop width=7cm --prop height=3cm
|
||||
|
||||
# ============================================
|
||||
# SLIDE 4 - EVIDENCE (data with blue background)
|
||||
# ============================================
|
||||
echo "Building Slide 4: Evidence..."
|
||||
|
||||
officecli add "$OUTPUT" '/' --type slide --prop layout=blank --prop background=$BG
|
||||
officecli set "$OUTPUT" '/slide[4]' --prop transition=morph
|
||||
|
||||
# Blue stripe expands as large background, others retreat to edges
|
||||
officecli add "$OUTPUT" '/slide[4]' --type shape \
|
||||
--prop 'name=!!stripe-red' \
|
||||
--prop preset=rect \
|
||||
--prop fill=$RED \
|
||||
--prop opacity=1 \
|
||||
--prop x=0cm --prop y=0cm --prop width=34cm --prop height=0.3cm
|
||||
|
||||
officecli add "$OUTPUT" '/slide[4]' --type shape \
|
||||
--prop 'name=!!stripe-orange' \
|
||||
--prop preset=rect \
|
||||
--prop fill=$ORANGE \
|
||||
--prop opacity=1 \
|
||||
--prop x=0cm --prop y=0.3cm --prop width=34cm --prop height=0.3cm
|
||||
|
||||
officecli add "$OUTPUT" '/slide[4]' --type shape \
|
||||
--prop 'name=!!stripe-yellow' \
|
||||
--prop preset=rect \
|
||||
--prop fill=$YELLOW \
|
||||
--prop opacity=1 \
|
||||
--prop x=0cm --prop y=0.6cm --prop width=34cm --prop height=0.3cm
|
||||
|
||||
officecli add "$OUTPUT" '/slide[4]' --type shape \
|
||||
--prop 'name=!!stripe-green' \
|
||||
--prop preset=rect \
|
||||
--prop fill=$GREEN \
|
||||
--prop opacity=0.3 \
|
||||
--prop x=0cm --prop y=5cm --prop width=34cm --prop height=8cm
|
||||
|
||||
officecli add "$OUTPUT" '/slide[4]' --type shape \
|
||||
--prop 'name=!!stripe-blue' \
|
||||
--prop preset=rect \
|
||||
--prop fill=$BLUE \
|
||||
--prop opacity=0.3 \
|
||||
--prop x=0cm --prop y=5cm --prop width=34cm --prop height=8cm
|
||||
|
||||
officecli add "$OUTPUT" '/slide[4]' --type shape \
|
||||
--prop 'name=!!stripe-purple' \
|
||||
--prop preset=rect \
|
||||
--prop fill=$PURPLE \
|
||||
--prop opacity=1 \
|
||||
--prop x=0cm --prop y=18.5cm --prop width=34cm --prop height=0.3cm
|
||||
|
||||
# Content
|
||||
officecli add "$OUTPUT" '/slide[4]' --type shape \
|
||||
--prop 'name=#s4-title' \
|
||||
--prop text="By The Numbers" \
|
||||
--prop font="Segoe UI Black" \
|
||||
--prop size=48 \
|
||||
--prop bold=true \
|
||||
--prop color=$BLACK \
|
||||
--prop align=center \
|
||||
--prop fill=none \
|
||||
--prop x=3cm --prop y=1.5cm --prop width=28cm --prop height=2.5cm
|
||||
|
||||
officecli add "$OUTPUT" '/slide[4]' --type shape \
|
||||
--prop 'name=#s4-num' \
|
||||
--prop text="12,000+" \
|
||||
--prop font="Segoe UI Black" \
|
||||
--prop size=72 \
|
||||
--prop bold=true \
|
||||
--prop color=$BLACK \
|
||||
--prop align=center \
|
||||
--prop fill=none \
|
||||
--prop x=3cm --prop y=7cm --prop width=28cm --prop height=4cm
|
||||
|
||||
officecli add "$OUTPUT" '/slide[4]' --type shape \
|
||||
--prop 'name=#s4-label' \
|
||||
--prop text="Creative Professionals Expected to Attend" \
|
||||
--prop font="Segoe UI" \
|
||||
--prop size=24 \
|
||||
--prop color=$GRAY \
|
||||
--prop align=center \
|
||||
--prop fill=none \
|
||||
--prop x=3cm --prop y=12cm --prop width=28cm --prop height=2cm
|
||||
|
||||
# ============================================
|
||||
# SLIDE 5 - CTA (bottom rainbow footer)
|
||||
# ============================================
|
||||
echo "Building Slide 5: CTA..."
|
||||
|
||||
officecli add "$OUTPUT" '/' --type slide --prop layout=blank --prop background=$BG
|
||||
officecli set "$OUTPUT" '/slide[5]' --prop transition=morph
|
||||
|
||||
# All stripes gather at bottom (inverted rainbow footer)
|
||||
officecli add "$OUTPUT" '/slide[5]' --type shape \
|
||||
--prop 'name=!!stripe-red' \
|
||||
--prop preset=rect \
|
||||
--prop fill=$RED \
|
||||
--prop opacity=0.85 \
|
||||
--prop x=0cm --prop y=12cm --prop width=34cm --prop height=1.2cm
|
||||
|
||||
officecli add "$OUTPUT" '/slide[5]' --type shape \
|
||||
--prop 'name=!!stripe-orange' \
|
||||
--prop preset=rect \
|
||||
--prop fill=$ORANGE \
|
||||
--prop opacity=0.85 \
|
||||
--prop x=0cm --prop y=13.2cm --prop width=34cm --prop height=1.2cm
|
||||
|
||||
officecli add "$OUTPUT" '/slide[5]' --type shape \
|
||||
--prop 'name=!!stripe-yellow' \
|
||||
--prop preset=rect \
|
||||
--prop fill=$YELLOW \
|
||||
--prop opacity=0.85 \
|
||||
--prop x=0cm --prop y=14.4cm --prop width=34cm --prop height=1.2cm
|
||||
|
||||
officecli add "$OUTPUT" '/slide[5]' --type shape \
|
||||
--prop 'name=!!stripe-green' \
|
||||
--prop preset=rect \
|
||||
--prop fill=$GREEN \
|
||||
--prop opacity=0.85 \
|
||||
--prop x=0cm --prop y=15.6cm --prop width=34cm --prop height=1.2cm
|
||||
|
||||
officecli add "$OUTPUT" '/slide[5]' --type shape \
|
||||
--prop 'name=!!stripe-blue' \
|
||||
--prop preset=rect \
|
||||
--prop fill=$BLUE \
|
||||
--prop opacity=0.85 \
|
||||
--prop x=0cm --prop y=16.8cm --prop width=34cm --prop height=1.2cm
|
||||
|
||||
officecli add "$OUTPUT" '/slide[5]' --type shape \
|
||||
--prop 'name=!!stripe-purple' \
|
||||
--prop preset=rect \
|
||||
--prop fill=$PURPLE \
|
||||
--prop opacity=0.85 \
|
||||
--prop x=0cm --prop y=18cm --prop width=34cm --prop height=1.05cm
|
||||
|
||||
# Content
|
||||
officecli add "$OUTPUT" '/slide[5]' --type shape \
|
||||
--prop 'name=#s5-title' \
|
||||
--prop text="Join Us This Summer" \
|
||||
--prop font="Segoe UI Black" \
|
||||
--prop size=54 \
|
||||
--prop bold=true \
|
||||
--prop color=$BLACK \
|
||||
--prop align=center \
|
||||
--prop fill=none \
|
||||
--prop x=3cm --prop y=3cm --prop width=28cm --prop height=3.5cm
|
||||
|
||||
officecli add "$OUTPUT" '/slide[5]' --type shape \
|
||||
--prop 'name=#s5-date' \
|
||||
--prop text="June 15-20, 2026" \
|
||||
--prop font="Segoe UI" \
|
||||
--prop size=28 \
|
||||
--prop color=$GRAY \
|
||||
--prop align=center \
|
||||
--prop fill=none \
|
||||
--prop x=3cm --prop y=7.5cm --prop width=28cm --prop height=2cm
|
||||
|
||||
officecli add "$OUTPUT" '/slide[5]' --type shape \
|
||||
--prop 'name=#s5-web' \
|
||||
--prop text="creativefestival.com" \
|
||||
--prop font="Segoe UI" \
|
||||
--prop size=24 \
|
||||
--prop color=$GRAY \
|
||||
--prop align=center \
|
||||
--prop fill=none \
|
||||
--prop x=3cm --prop y=10cm --prop width=28cm --prop height=1.5cm
|
||||
|
||||
# ============================================
|
||||
# FINAL VALIDATION
|
||||
# ============================================
|
||||
officecli validate "$OUTPUT"
|
||||
officecli view "$OUTPUT" outline
|
||||
|
||||
echo "✅ Build complete: $OUTPUT"
|
||||
+73
@@ -0,0 +1,73 @@
|
||||
# 10 Candy Stripe — Rainbow Candy Stripes
|
||||
|
||||
## Style Overview
|
||||
|
||||
Six full-width rainbow stripes slide, stretch, and gather across pages on white background, creating festive joyful atmosphere.
|
||||
|
||||
- **Scene**: Celebrations, festivals, children's education, creative marketing
|
||||
- **Mood**: Joyful, lively, festive, rainbow
|
||||
- **Tone**: White base, six-color rainbow accents
|
||||
|
||||
## Color Palette
|
||||
|
||||
| Name | Hex | Usage |
|
||||
| ------------ | ------- | ---------------- |
|
||||
| Pure White | #FFFFFF | Page background |
|
||||
| Candy Red | #FF5252 | Rainbow stripe 1 |
|
||||
| Orange | #FF7B39 | Rainbow stripe 2 |
|
||||
| Lemon Yellow | #FFD740 | Rainbow stripe 3 |
|
||||
| Mint Green | #69F0AE | Rainbow stripe 4 |
|
||||
| Sky Blue | #40C4FF | Rainbow stripe 5 |
|
||||
| Violet | #7C4DFF | Rainbow stripe 6 |
|
||||
| Title Black | #1A1A1A | Title text |
|
||||
| Body Gray | #555555 | Body text |
|
||||
|
||||
## Typography
|
||||
|
||||
| Element | Font | Size |
|
||||
| ------------- | -------------- | ------- |
|
||||
| Main Title | Segoe UI Black | 54-64pt |
|
||||
| Data Numbers | Segoe UI Black | 48-72pt |
|
||||
| Column Title | Segoe UI Black | 28-40pt |
|
||||
| Body/Subtitle | Segoe UI | 16-28pt |
|
||||
|
||||
## Design Techniques
|
||||
|
||||
- **Full-width rainbow stripes**: 6 full-width rect (width=34cm), creating visual rhythm through y position and height changes only
|
||||
- **Vertical sliding**: Stripes slide up and down between pages, morph produces smooth vertical movement
|
||||
- **Stretch variation**: Stripe height changes from 2cm (evenly spread) to 0.3cm (compressed into thin lines) to 8cm (expanded into large color block backgrounds)
|
||||
- **Opacity adjustment**: 0.12 (faded as card background) to 0.85 (normal display) to 1.0 (deepened when compressed)
|
||||
- **Functional transformation**: S1 evenly distributed → S2 compressed into top color bar → S3 becomes three-column card backgrounds → S4 blue expands as data background → S5 gathers into bottom gradient color bar
|
||||
|
||||
## Scene Elements
|
||||
|
||||
| Name | Type | Description |
|
||||
| ----------------- | ---- | -------------------------------- |
|
||||
| `!!stripe-red` | rect | Red full-width rainbow stripe |
|
||||
| `!!stripe-orange` | rect | Orange full-width rainbow stripe |
|
||||
| `!!stripe-yellow` | rect | Yellow full-width rainbow stripe |
|
||||
| `!!stripe-green` | rect | Green full-width rainbow stripe |
|
||||
| `!!stripe-blue` | rect | Blue full-width rainbow stripe |
|
||||
| `!!stripe-purple` | rect | Purple full-width rainbow stripe |
|
||||
|
||||
## Page Structure (5 pages)
|
||||
|
||||
| Slide | Type | Elements | Description |
|
||||
| ----- | --------- | -------------------------------------------------------------------------------------------------------- | ----------- |
|
||||
| S1 | hero | Cover — 6 rainbow stripes evenly distributed (3.4cm spacing), centered title |
|
||||
| S2 | statement | Statement — 6 stripes compressed to top 4cm forming color title bar, white space below for text |
|
||||
| S3 | pillars | Three-column — stripes paired into three column card backgrounds (red+orange, yellow+green, blue+purple) |
|
||||
| S4 | evidence | Data — blue stripe expands to 8cm high data background, other stripes retreat to top and bottom edges |
|
||||
| S5 | cta | Closing — stripes gather at bottom forming inverted rainbow gradient footer |
|
||||
|
||||
## Reference Script
|
||||
|
||||
Complete build script available in `build.sh`.
|
||||
|
||||
**Recommended slides to read for understanding core design techniques**:
|
||||
|
||||
- **Slide 1 (hero)** — Initial even layout of 6 rainbow stripes
|
||||
- **Slide 2 (statement)** — Stripe compression effect, understanding height and y position change logic
|
||||
- **Slide 4 (evidence)** — Technique for expanding single stripe into large area background
|
||||
|
||||
No need to read all — skim 2-3 representative slides.
|
||||
Reference in New Issue
Block a user