Update: 将子项目从 submodule 转为完整内容
- 移除 GovAI, nomifun-tauri, 算力盒子 的 submodule 引用 - 添加所有子项目的完整源代码 - 保留原始 .git 为 .git.bak 备份
This commit is contained in:
+385
@@ -0,0 +1,385 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
OUTPUT="$SCRIPT_DIR/dark__cosmic_neon.pptx"
|
||||
|
||||
echo "Building: dark--cosmic-neon (Cosmic Neon Sci-Fi)"
|
||||
rm -f "$OUTPUT"
|
||||
officecli create "$OUTPUT"
|
||||
|
||||
# Colors
|
||||
BG=050510
|
||||
PURPLE=8A2BE2
|
||||
CYAN=00FFFF
|
||||
CARD=111122
|
||||
WHITE=FFFFFF
|
||||
GRAY1=AAAAAA
|
||||
GRAY2=CCCCCC
|
||||
|
||||
# Off-canvas position for hidden elements
|
||||
OFFSCREEN=36cm
|
||||
|
||||
# ============================================
|
||||
# SLIDE 1 - HERO
|
||||
# ============================================
|
||||
echo "Building Slide 1: Hero..."
|
||||
|
||||
officecli add "$OUTPUT" '/' --type slide --prop layout=blank --prop background=$BG
|
||||
|
||||
# Scene actors: neon glows
|
||||
officecli add "$OUTPUT" '/slide[1]' --type shape \
|
||||
--prop 'name=!!bg-glow1' \
|
||||
--prop preset=ellipse \
|
||||
--prop fill=$PURPLE \
|
||||
--prop opacity=0.15 \
|
||||
--prop x=0cm --prop y=0cm --prop width=15cm --prop height=15cm
|
||||
|
||||
officecli add "$OUTPUT" '/slide[1]' --type shape \
|
||||
--prop 'name=!!bg-glow2' \
|
||||
--prop preset=ellipse \
|
||||
--prop fill=$CYAN \
|
||||
--prop opacity=0.15 \
|
||||
--prop x=18cm --prop y=4cm --prop width=15cm --prop height=15cm
|
||||
|
||||
# Scene actors: decorative elements
|
||||
officecli add "$OUTPUT" '/slide[1]' --type shape \
|
||||
--prop 'name=!!ring' \
|
||||
--prop preset=donut \
|
||||
--prop fill=none \
|
||||
--prop line=$CYAN \
|
||||
--prop lineWidth=2 \
|
||||
--prop x=25cm --prop y=2cm --prop width=5cm --prop height=5cm
|
||||
|
||||
officecli add "$OUTPUT" '/slide[1]' --type shape \
|
||||
--prop 'name=!!line-top' \
|
||||
--prop preset=rect \
|
||||
--prop fill=$PURPLE \
|
||||
--prop x=4cm --prop y=2cm --prop width=8cm --prop height=0.1cm
|
||||
|
||||
officecli add "$OUTPUT" '/slide[1]' --type shape \
|
||||
--prop 'name=!!star1' \
|
||||
--prop preset=star5 \
|
||||
--prop fill=$CYAN \
|
||||
--prop opacity=0.5 \
|
||||
--prop x=3cm --prop y=15cm --prop width=1cm --prop height=1cm
|
||||
|
||||
officecli add "$OUTPUT" '/slide[1]' --type shape \
|
||||
--prop 'name=!!star2' \
|
||||
--prop preset=star5 \
|
||||
--prop fill=$PURPLE \
|
||||
--prop opacity=0.5 \
|
||||
--prop x=30cm --prop y=12cm --prop width=1.5cm --prop height=1.5cm
|
||||
|
||||
# Content: hero title (visible on slide 1)
|
||||
officecli add "$OUTPUT" '/slide[1]' --type shape \
|
||||
--prop 'name=#s1-title' \
|
||||
--prop text="穿越时空:科学还是幻想?" \
|
||||
--prop font="Arial" \
|
||||
--prop size=56 \
|
||||
--prop bold=true \
|
||||
--prop color=$WHITE \
|
||||
--prop align=center \
|
||||
--prop fill=none \
|
||||
--prop x=4cm --prop y=7cm --prop width=26cm --prop height=3cm
|
||||
|
||||
officecli add "$OUTPUT" '/slide[1]' --type shape \
|
||||
--prop 'name=#s1-subtitle' \
|
||||
--prop text="从爱因斯坦的相对论到现代量子物理的探索之旅" \
|
||||
--prop font="Arial" \
|
||||
--prop size=24 \
|
||||
--prop color=$GRAY1 \
|
||||
--prop align=center \
|
||||
--prop fill=none \
|
||||
--prop x=4cm --prop y=10.5cm --prop width=26cm --prop height=2cm
|
||||
|
||||
# Pre-create hidden content for other slides
|
||||
# Statement text (for slide 2)
|
||||
officecli add "$OUTPUT" '/slide[1]' --type shape \
|
||||
--prop 'name=!!statement-text' \
|
||||
--prop text="时间并非绝对的流逝,\n而是一种可以被弯曲的维度。" \
|
||||
--prop font="Arial" \
|
||||
--prop size=44 \
|
||||
--prop bold=true \
|
||||
--prop color=$WHITE \
|
||||
--prop align=center \
|
||||
--prop lineSpacing=1.5 \
|
||||
--prop fill=none \
|
||||
--prop x=${OFFSCREEN} --prop y=0cm --prop width=30cm --prop height=6cm
|
||||
|
||||
officecli add "$OUTPUT" '/slide[1]' --type shape \
|
||||
--prop 'name=!!statement-sub' \
|
||||
--prop text="根据广义相对论,引力越强,时间流逝越慢。我们每个人都已经是时间旅行者,只不过只能以每秒一秒的速度走向未来。" \
|
||||
--prop font="Arial" \
|
||||
--prop size=20 \
|
||||
--prop color=$GRAY1 \
|
||||
--prop align=center \
|
||||
--prop fill=none \
|
||||
--prop x=${OFFSCREEN} --prop y=1cm --prop width=26cm --prop height=4cm
|
||||
|
||||
# Pillar elements (for slide 3)
|
||||
officecli add "$OUTPUT" '/slide[1]' --type shape \
|
||||
--prop 'name=!!pillar-title' \
|
||||
--prop text="物理学中的三种时间旅行可能" \
|
||||
--prop font="Arial" \
|
||||
--prop size=36 \
|
||||
--prop bold=true \
|
||||
--prop color=$WHITE \
|
||||
--prop fill=none \
|
||||
--prop x=${OFFSCREEN} --prop y=2cm --prop width=20cm --prop height=2cm
|
||||
|
||||
officecli add "$OUTPUT" '/slide[1]' --type shape \
|
||||
--prop 'name=!!pillar-1-bg' \
|
||||
--prop preset=roundRect \
|
||||
--prop fill=$CARD \
|
||||
--prop opacity=0.6 \
|
||||
--prop x=${OFFSCREEN} --prop y=3cm --prop width=9cm --prop height=11cm
|
||||
|
||||
officecli add "$OUTPUT" '/slide[1]' --type shape \
|
||||
--prop 'name=!!pillar-1-title' \
|
||||
--prop text="虫洞理论" \
|
||||
--prop font="Arial" \
|
||||
--prop size=28 \
|
||||
--prop bold=true \
|
||||
--prop color=$CYAN \
|
||||
--prop fill=none \
|
||||
--prop x=${OFFSCREEN} --prop y=4cm --prop width=7cm --prop height=1.5cm
|
||||
|
||||
officecli add "$OUTPUT" '/slide[1]' --type shape \
|
||||
--prop 'name=!!pillar-1-desc' \
|
||||
--prop text="连接宇宙中两个遥远时空点的捷径,理论上可以实现瞬间跨越,如爱因斯坦-罗森桥。" \
|
||||
--prop font="Arial" \
|
||||
--prop size=18 \
|
||||
--prop color=$GRAY2 \
|
||||
--prop lineSpacing=1.3 \
|
||||
--prop fill=none \
|
||||
--prop x=${OFFSCREEN} --prop y=5cm --prop width=7cm --prop height=6cm
|
||||
|
||||
officecli add "$OUTPUT" '/slide[1]' --type shape \
|
||||
--prop 'name=!!pillar-2-bg' \
|
||||
--prop preset=roundRect \
|
||||
--prop fill=$CARD \
|
||||
--prop opacity=0.6 \
|
||||
--prop x=${OFFSCREEN} --prop y=6cm --prop width=9cm --prop height=11cm
|
||||
|
||||
officecli add "$OUTPUT" '/slide[1]' --type shape \
|
||||
--prop 'name=!!pillar-2-title' \
|
||||
--prop text="光速飞行" \
|
||||
--prop font="Arial" \
|
||||
--prop size=28 \
|
||||
--prop bold=true \
|
||||
--prop color=$CYAN \
|
||||
--prop fill=none \
|
||||
--prop x=${OFFSCREEN} --prop y=7cm --prop width=7cm --prop height=1.5cm
|
||||
|
||||
officecli add "$OUTPUT" '/slide[1]' --type shape \
|
||||
--prop 'name=!!pillar-2-desc' \
|
||||
--prop text="当物体运动速度接近光速时,自身时间会显著变慢,从而穿越到相对的未来(双生子佯谬)。" \
|
||||
--prop font="Arial" \
|
||||
--prop size=18 \
|
||||
--prop color=$GRAY2 \
|
||||
--prop lineSpacing=1.3 \
|
||||
--prop fill=none \
|
||||
--prop x=${OFFSCREEN} --prop y=8cm --prop width=7cm --prop height=6cm
|
||||
|
||||
officecli add "$OUTPUT" '/slide[1]' --type shape \
|
||||
--prop 'name=!!pillar-3-bg' \
|
||||
--prop preset=roundRect \
|
||||
--prop fill=$CARD \
|
||||
--prop opacity=0.6 \
|
||||
--prop x=${OFFSCREEN} --prop y=9cm --prop width=9cm --prop height=11cm
|
||||
|
||||
officecli add "$OUTPUT" '/slide[1]' --type shape \
|
||||
--prop 'name=!!pillar-3-title' \
|
||||
--prop text="宇宙弦" \
|
||||
--prop font="Arial" \
|
||||
--prop size=28 \
|
||||
--prop bold=true \
|
||||
--prop color=$CYAN \
|
||||
--prop fill=none \
|
||||
--prop x=${OFFSCREEN} --prop y=10cm --prop width=7cm --prop height=1.5cm
|
||||
|
||||
officecli add "$OUTPUT" '/slide[1]' --type shape \
|
||||
--prop 'name=!!pillar-3-desc' \
|
||||
--prop text="假设存在的高密度能量细丝,其强大的引力场可能导致时空闭合,形成时间循环。" \
|
||||
--prop font="Arial" \
|
||||
--prop size=18 \
|
||||
--prop color=$GRAY2 \
|
||||
--prop lineSpacing=1.3 \
|
||||
--prop fill=none \
|
||||
--prop x=${OFFSCREEN} --prop y=11cm --prop width=7cm --prop height=6cm
|
||||
|
||||
# Evidence elements (for slide 4)
|
||||
officecli add "$OUTPUT" '/slide[1]' --type shape \
|
||||
--prop 'name=!!evi-title' \
|
||||
--prop text="时间膨胀的真实观测数据" \
|
||||
--prop font="Arial" \
|
||||
--prop size=36 \
|
||||
--prop bold=true \
|
||||
--prop color=$WHITE \
|
||||
--prop fill=none \
|
||||
--prop x=${OFFSCREEN} --prop y=12cm --prop width=20cm --prop height=2cm
|
||||
|
||||
officecli add "$OUTPUT" '/slide[1]' --type shape \
|
||||
--prop 'name=!!evi-data' \
|
||||
--prop text="38 微秒" \
|
||||
--prop font="Montserrat" \
|
||||
--prop size=80 \
|
||||
--prop bold=true \
|
||||
--prop color=$CYAN \
|
||||
--prop fill=none \
|
||||
--prop x=${OFFSCREEN} --prop y=13cm --prop width=12cm --prop height=4cm
|
||||
|
||||
officecli add "$OUTPUT" '/slide[1]' --type shape \
|
||||
--prop 'name=!!evi-desc' \
|
||||
--prop text="GPS卫星每天必须调整38微秒的时钟误差。由于卫星在太空中受到的引力较小且运动速度快,其时间流逝速度与地面不同。如果不修正,GPS定位每天会产生10公里的误差。" \
|
||||
--prop font="Arial" \
|
||||
--prop size=22 \
|
||||
--prop color=$GRAY2 \
|
||||
--prop lineSpacing=1.5 \
|
||||
--prop fill=none \
|
||||
--prop x=${OFFSCREEN} --prop y=14cm --prop width=15cm --prop height=8cm
|
||||
|
||||
# CTA elements (for slide 5)
|
||||
officecli add "$OUTPUT" '/slide[1]' --type shape \
|
||||
--prop 'name=!!cta-title' \
|
||||
--prop text="未来,我们会在过去相遇吗?" \
|
||||
--prop font="Arial" \
|
||||
--prop size=52 \
|
||||
--prop bold=true \
|
||||
--prop color=$WHITE \
|
||||
--prop align=center \
|
||||
--prop fill=none \
|
||||
--prop x=${OFFSCREEN} --prop y=15cm --prop width=26cm --prop height=3cm
|
||||
|
||||
officecli add "$OUTPUT" '/slide[1]' --type shape \
|
||||
--prop 'name=!!cta-sub' \
|
||||
--prop text="保持对宇宙的敬畏与好奇" \
|
||||
--prop font="Arial" \
|
||||
--prop size=24 \
|
||||
--prop color=$CYAN \
|
||||
--prop align=center \
|
||||
--prop fill=none \
|
||||
--prop x=${OFFSCREEN} --prop y=16cm --prop width=26cm --prop height=2cm
|
||||
|
||||
# ============================================
|
||||
# SLIDE 2 - STATEMENT
|
||||
# ============================================
|
||||
echo "Building Slide 2: Statement..."
|
||||
|
||||
officecli add "$OUTPUT" '/' --from '/slide[1]'
|
||||
officecli set "$OUTPUT" '/slide[2]' --prop transition=morph
|
||||
|
||||
# Move scene actors
|
||||
officecli set "$OUTPUT" '/slide[2]/shape[1]' --prop x=10cm --prop y=2cm --prop width=14cm --prop height=14cm
|
||||
officecli set "$OUTPUT" '/slide[2]/shape[2]' --prop x=5cm --prop y=5cm --prop width=10cm --prop height=10cm
|
||||
officecli set "$OUTPUT" '/slide[2]/shape[3]' --prop x=15cm --prop y=10cm --prop width=8cm --prop height=8cm
|
||||
officecli set "$OUTPUT" '/slide[2]/shape[4]' --prop x=12cm --prop y=15cm --prop width=10cm --prop height=0.1cm
|
||||
officecli set "$OUTPUT" '/slide[2]/shape[5]' --prop x=28cm --prop y=4cm
|
||||
officecli set "$OUTPUT" '/slide[2]/shape[6]' --prop x=5cm --prop y=10cm
|
||||
|
||||
# Hide hero content
|
||||
officecli set "$OUTPUT" '/slide[2]/shape[7]' --prop x=${OFFSCREEN} --prop y=0cm
|
||||
officecli set "$OUTPUT" '/slide[2]/shape[8]' --prop x=${OFFSCREEN} --prop y=1cm
|
||||
|
||||
# Show statement content
|
||||
officecli set "$OUTPUT" '/slide[2]/shape[9]' --prop x=2cm --prop y=6cm
|
||||
officecli set "$OUTPUT" '/slide[2]/shape[10]' --prop x=4cm --prop y=13cm
|
||||
|
||||
# ============================================
|
||||
# SLIDE 3 - PILLARS
|
||||
# ============================================
|
||||
echo "Building Slide 3: Pillars..."
|
||||
|
||||
officecli add "$OUTPUT" '/' --from '/slide[2]'
|
||||
officecli set "$OUTPUT" '/slide[3]' --prop transition=morph
|
||||
|
||||
# Move scene actors
|
||||
officecli set "$OUTPUT" '/slide[3]/shape[1]' --prop x=0cm --prop y=12cm --prop width=10cm --prop height=10cm
|
||||
officecli set "$OUTPUT" '/slide[3]/shape[2]' --prop x=23cm --prop y=0cm --prop width=12cm --prop height=12cm
|
||||
officecli set "$OUTPUT" '/slide[3]/shape[3]' --prop x=30cm --prop y=15cm --prop width=3cm --prop height=3cm
|
||||
officecli set "$OUTPUT" '/slide[3]/shape[4]' --prop x=2cm --prop y=2cm --prop width=5cm --prop height=0.1cm
|
||||
officecli set "$OUTPUT" '/slide[3]/shape[5]' --prop x=20cm --prop y=2cm
|
||||
officecli set "$OUTPUT" '/slide[3]/shape[6]' --prop x=10cm --prop y=17cm
|
||||
|
||||
# Hide statement content
|
||||
officecli set "$OUTPUT" '/slide[3]/shape[9]' --prop x=${OFFSCREEN} --prop y=0cm
|
||||
officecli set "$OUTPUT" '/slide[3]/shape[10]' --prop x=${OFFSCREEN} --prop y=1cm
|
||||
|
||||
# Show pillar content
|
||||
officecli set "$OUTPUT" '/slide[3]/shape[11]' --prop x=2cm --prop y=1.5cm
|
||||
officecli set "$OUTPUT" '/slide[3]/shape[12]' --prop x=2cm --prop y=5cm
|
||||
officecli set "$OUTPUT" '/slide[3]/shape[13]' --prop x=3cm --prop y=6cm
|
||||
officecli set "$OUTPUT" '/slide[3]/shape[14]' --prop x=3cm --prop y=8cm
|
||||
officecli set "$OUTPUT" '/slide[3]/shape[15]' --prop x=12.5cm --prop y=5cm
|
||||
officecli set "$OUTPUT" '/slide[3]/shape[16]' --prop x=13.5cm --prop y=6cm
|
||||
officecli set "$OUTPUT" '/slide[3]/shape[17]' --prop x=13.5cm --prop y=8cm
|
||||
officecli set "$OUTPUT" '/slide[3]/shape[18]' --prop x=23cm --prop y=5cm
|
||||
officecli set "$OUTPUT" '/slide[3]/shape[19]' --prop x=24cm --prop y=6cm
|
||||
officecli set "$OUTPUT" '/slide[3]/shape[20]' --prop x=24cm --prop y=8cm
|
||||
|
||||
# ============================================
|
||||
# SLIDE 4 - EVIDENCE
|
||||
# ============================================
|
||||
echo "Building Slide 4: Evidence..."
|
||||
|
||||
officecli add "$OUTPUT" '/' --from '/slide[3]'
|
||||
officecli set "$OUTPUT" '/slide[4]' --prop transition=morph
|
||||
|
||||
# Move scene actors
|
||||
officecli set "$OUTPUT" '/slide[4]/shape[1]' --prop x=2cm --prop y=4cm --prop width=12cm --prop height=12cm --prop fill=$CARD --prop opacity=0.6
|
||||
officecli set "$OUTPUT" '/slide[4]/shape[2]' --prop x=16cm --prop y=5cm --prop width=16cm --prop height=10cm --prop opacity=0.1
|
||||
officecli set "$OUTPUT" '/slide[4]/shape[3]' --prop x=5cm --prop y=5cm --prop width=6cm --prop height=6cm
|
||||
officecli set "$OUTPUT" '/slide[4]/shape[4]' --prop x=15cm --prop y=8cm --prop width=15cm --prop height=0.1cm
|
||||
officecli set "$OUTPUT" '/slide[4]/shape[5]' --prop x=30cm --prop y=3cm
|
||||
officecli set "$OUTPUT" '/slide[4]/shape[6]' --prop x=8cm --prop y=16cm
|
||||
|
||||
# Hide pillar content
|
||||
officecli set "$OUTPUT" '/slide[4]/shape[11]' --prop x=${OFFSCREEN} --prop y=0cm
|
||||
officecli set "$OUTPUT" '/slide[4]/shape[12]' --prop x=${OFFSCREEN} --prop y=1cm
|
||||
officecli set "$OUTPUT" '/slide[4]/shape[13]' --prop x=${OFFSCREEN} --prop y=2cm
|
||||
officecli set "$OUTPUT" '/slide[4]/shape[14]' --prop x=${OFFSCREEN} --prop y=3cm
|
||||
officecli set "$OUTPUT" '/slide[4]/shape[15]' --prop x=${OFFSCREEN} --prop y=4cm
|
||||
officecli set "$OUTPUT" '/slide[4]/shape[16]' --prop x=${OFFSCREEN} --prop y=5cm
|
||||
officecli set "$OUTPUT" '/slide[4]/shape[17]' --prop x=${OFFSCREEN} --prop y=6cm
|
||||
officecli set "$OUTPUT" '/slide[4]/shape[18]' --prop x=${OFFSCREEN} --prop y=7cm
|
||||
officecli set "$OUTPUT" '/slide[4]/shape[19]' --prop x=${OFFSCREEN} --prop y=8cm
|
||||
officecli set "$OUTPUT" '/slide[4]/shape[20]' --prop x=${OFFSCREEN} --prop y=9cm
|
||||
|
||||
# Show evidence content
|
||||
officecli set "$OUTPUT" '/slide[4]/shape[21]' --prop x=2cm --prop y=1.5cm
|
||||
officecli set "$OUTPUT" '/slide[4]/shape[22]' --prop x=4cm --prop y=8cm
|
||||
officecli set "$OUTPUT" '/slide[4]/shape[23]' --prop x=16cm --prop y=7cm
|
||||
|
||||
# ============================================
|
||||
# SLIDE 5 - CTA
|
||||
# ============================================
|
||||
echo "Building Slide 5: CTA..."
|
||||
|
||||
officecli add "$OUTPUT" '/' --from '/slide[4]'
|
||||
officecli set "$OUTPUT" '/slide[5]' --prop transition=morph
|
||||
|
||||
# Move scene actors back to original-ish positions
|
||||
officecli set "$OUTPUT" '/slide[5]/shape[1]' --prop x=0cm --prop y=0cm --prop width=15cm --prop height=15cm --prop fill=$PURPLE --prop opacity=0.15
|
||||
officecli set "$OUTPUT" '/slide[5]/shape[2]' --prop x=18cm --prop y=4cm --prop width=15cm --prop height=15cm
|
||||
officecli set "$OUTPUT" '/slide[5]/shape[3]' --prop x=25cm --prop y=2cm --prop width=5cm --prop height=5cm
|
||||
officecli set "$OUTPUT" '/slide[5]/shape[4]' --prop x=13cm --prop y=16cm --prop width=8cm --prop height=0.1cm
|
||||
officecli set "$OUTPUT" '/slide[5]/shape[5]' --prop x=6cm --prop y=5cm
|
||||
officecli set "$OUTPUT" '/slide[5]/shape[6]' --prop x=28cm --prop y=15cm
|
||||
|
||||
# Hide evidence content
|
||||
officecli set "$OUTPUT" '/slide[5]/shape[21]' --prop x=${OFFSCREEN} --prop y=0cm
|
||||
officecli set "$OUTPUT" '/slide[5]/shape[22]' --prop x=${OFFSCREEN} --prop y=1cm
|
||||
officecli set "$OUTPUT" '/slide[5]/shape[23]' --prop x=${OFFSCREEN} --prop y=2cm
|
||||
|
||||
# Show CTA content
|
||||
officecli set "$OUTPUT" '/slide[5]/shape[24]' --prop x=4cm --prop y=7cm
|
||||
officecli set "$OUTPUT" '/slide[5]/shape[25]' --prop x=4cm --prop y=11cm
|
||||
|
||||
# ============================================
|
||||
# FINAL VALIDATION
|
||||
# ============================================
|
||||
officecli validate "$OUTPUT"
|
||||
officecli view "$OUTPUT" outline
|
||||
|
||||
echo "✅ Build complete: $OUTPUT"
|
||||
BIN
Binary file not shown.
+59
@@ -0,0 +1,59 @@
|
||||
# Cosmic Neon — Sci-Fi Time Travel
|
||||
|
||||
## Style Overview
|
||||
|
||||
A futuristic sci-fi design featuring dual neon glow orbs (purple and cyan) on a near-black canvas with star decorations. Creates a mysterious cosmic atmosphere perfect for science and technology presentations.
|
||||
|
||||
- **Scenario**: Science talks, futuristic topics, physics presentations, cosmic themes
|
||||
- **Mood**: Sci-fi, mysterious, futuristic, neon
|
||||
- **Tone**: Near-black with purple and cyan neon
|
||||
|
||||
## Color Palette
|
||||
|
||||
| Name | Hex | Usage |
|
||||
| -------------- | ----------------- | -------------------------------- |
|
||||
| Background | #050510 | Near-black deep space |
|
||||
| Glow Purple | #8A2BE2 | Primary neon glow effect |
|
||||
| Glow Cyan | #00FFFF | Secondary neon glow effect |
|
||||
| Card BG | #111122 | Dark indigo for card backgrounds |
|
||||
| Primary text | #FFFFFF | White for headings |
|
||||
| Secondary text | #AAAAAA / #CCCCCC | Gray variations for body text |
|
||||
| Accent text | #00FFFF | Cyan for highlights |
|
||||
|
||||
## Typography
|
||||
|
||||
| Element | Font |
|
||||
| --------------- | -------------------------- |
|
||||
| Title (English) | Montserrat |
|
||||
| Title (Chinese) | Source Han Sans (思源黑体) |
|
||||
| Body | Source Han Sans |
|
||||
|
||||
## Design Techniques
|
||||
|
||||
- Dual neon glow orbs (purple + cyan) as main decorative elements
|
||||
- Star decorations with varying opacity for depth
|
||||
- Donut ring accent element for cosmic feel
|
||||
- Neon-highlighted card backgrounds for content sections
|
||||
- Large data typography for evidence slides
|
||||
- Generous line spacing for readability on dark backgrounds
|
||||
|
||||
## Page Structure (5 slides)
|
||||
|
||||
| Slide | Type | Elements | Description |
|
||||
| ----- | --------- | -------- | ------------------------------------------------- |
|
||||
| 1 | hero | 25 | Title with dual neon glow orbs |
|
||||
| 2 | statement | 25 | Centered quote with shifted glow positions |
|
||||
| 3 | pillars | 25 | 3-column layout with neon card backgrounds |
|
||||
| 4 | evidence | 25 | Large data number + description with neon accents |
|
||||
| 5 | cta | 25 | Closing with neon accent decoration |
|
||||
|
||||
## Reference Script
|
||||
|
||||
Complete build script available in `build.sh`.
|
||||
|
||||
**Recommended slides to read for understanding core design techniques**:
|
||||
|
||||
- **Slide 1 (hero)** — dual glow orb composition with stars
|
||||
- **Slide 3 (pillars)** — neon card backgrounds with content hierarchy
|
||||
|
||||
No need to read all — skim 2-3 representative slides.
|
||||
Reference in New Issue
Block a user