Files
home/Projects/docs.pivoine.art/components/icons/VISUAL_GUIDE.md

383 lines
11 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Pivoine Docs Icon - Visual Animation Guide
## 🎬 Animation State Visualization
### State 1: NORMAL (Idle Breathing)
```
🌸 · 🌸
🌸 📄 🌸 ← Petals in semi-closed bud
🌸 ⭐ 🌸 Gentle breathing motion
🌸 Soft sparkle twinkling
✨ ✨ Rotating stamens in center
```
**Characteristics:**
- Petals: `scale(0.3-0.35)` - small, closed
- Center: Gentle pulsing (1.0x → 1.08x)
- Animation: 6-second loop
- Effect: Peaceful, living blossom
---
### State 2: HOVER (Full Bloom)
```
✨ · * · ✨
*🌸 * 🌸*
🌸 * ⭐📄⭐ * 🌸 ← Petals fully opened
*🌸 * * 🌸* Bloom particles flying
🌸 * * * 🌸 Enhanced center glow
*🌸 * 🌸* Sparkles bursting
🌸 * 🌸
✨ * ✨
```
**Characteristics:**
- Petals: `scale(1.0-1.1)` - fully extended
- Center: `scale(1.3-1.5)` - enlarged with intense glow
- Particles: 12 bloom particles orbiting
- Effect: Majestic, fully bloomed flower
**Animation Flow:**
```
T=0.0s: Mouse enters
T=0.1s: Outer petals start opening
T=0.2s: Middle petals follow
T=0.3s: Inner petals open + particles appear
T=0.5s: Center begins growing
T=0.8s: Full bloom achieved
T=1.0s+: Continuous pulsing animation
```
---
### State 3: CLICK (Closing)
```
T=0.0s (Start): T=0.6s (Mid): T=1.2s (End):
🌸 🌸 🌸 🌸 🌸 🌸
🌸 ⭐ 🌸 → 🌸 ⭐ 🌸 → ✨
🌸 🌸 🌸 🌸 ⭐ 🌸 🌸 ⭐ 🌸
✨ ✨
Full bloom Closing Closed bud
Particles burst Particles fade Normal state
```
**Characteristics:**
- Duration: 1.2 seconds
- Petals: Smoothly scale down and translate inward
- Particles: Burst outward then disappear
- Center: Contracts with elastic bounce
- Effect: Elegant closing with satisfying feedback
**Animation Curve:**
```
cubic-bezier(0.68, -0.55, 0.27, 1.55)
Scale ^
1.0 | ╱‾‾╲
| ╲___
|
0.3 | ╲___
|─────────────────→ Time
0s 0.6s 1.2s
Elastic bounce-back effect
```
---
## 🎨 Layer Structure (Z-Index)
```
┌─────────────────────────────────────┐
│ Layer 8: Bloom Particles (hover) │ opacity: 0 → 0.7
├─────────────────────────────────────┤
│ Layer 7: Sparkles │ Fixed positions, twinkling
├─────────────────────────────────────┤
│ Layer 6: Center Inner (light) │ r=18, light gradient
├─────────────────────────────────────┤
│ Layer 5: Center Outer (golden) │ r=26, main center
├─────────────────────────────────────┤
│ Layer 4: Center Stamens │ 8 small dots, rotating
├─────────────────────────────────────┤
│ Layer 3: Document Pages │ 3 stacked rectangles
├─────────────────────────────────────┤
│ Layer 2: Petals (3 sub-layers) │
│ - Inner (10 petals) │
│ - Middle (8 petals) │
│ - Outer (8 petals) │
├─────────────────────────────────────┤
│ Layer 1: Background Glow │ Subtle radial gradient
└─────────────────────────────────────┘
```
---
## 💫 Particle Movement Patterns
### Normal State: No Particles
### Hover State: 12 Particles Flying
```
Particle positions at different angles:
P1 (0°)
|
P4 ←--( • )--→ P2 Center
|
P3 (180°)
Each particle:
- Starts at center (opacity: 0)
- Moves outward along its angle
- Reaches max distance (80-100px)
- Fades out at edges
- Duration: 3s loop
```
**Particle Pattern:**
```
Angular distribution (12 particles):
0°, 30°, 60°, 90°, 120°, 150°,
180°, 210°, 240°, 270°, 300°, 330°
Staggered delays:
Each particle offset by 0.08s
Creates smooth orbital effect
```
### Click State: Burst Pattern
```
▪ ← P1 (fast)
▪ ▪
▪ ( • ) ▪ ← Particles explode
▪ ▪ outward 2x speed
▪ ← then fade
Burst sequence:
0.0s: Particles at normal hover positions
0.3s: Particles shoot outward (2x distance)
0.6s: Particles start fading
1.2s: Particles invisible
```
---
## 🎯 Center Animation Detail
### Normal State:
```
╭─────╮
│ ⭐⭐ │ ← Stamens rotating
│ ⭐📄⭐ │ ← Golden outer ring
│ ⭐⭐ │ ← Light inner core
╰─────╯
Outer: r=26, breathing 1.0x → 1.08x
Inner: r=18, breathing 1.0x → 1.12x
Stamens: 20s continuous rotation
```
### Hover State:
```
╭────────╮
│ ⭐ ⭐ │
│ ⭐ 📄 ⭐ │ ← Center expands
│ ⭐ ⭐ │ ← Enhanced glow
│ ✨ ✨ ✨│ ← Intense lighting
╰────────╯
Outer: r=26 → r=39 (1.5x scale)
Inner: r=18 → r=28.8 (1.6x scale)
Stamens: Dance up and down
Glow: intense-glow filter applied
```
### Click State:
```
╭─────╮ → ╭───╮ → ╭─────╮
│ ⭐📄⭐│ │⭐📄⭐│ │ ⭐📄⭐│
╰─────╯ ╰───╯ ╰─────╯
1.3x → 0.8x → 1.0x
(hover) (contract) (normal)
Elastic bounce-back animation
```
---
## 🌈 Color Transition Map
### Petal Gradients (Radial):
```
Gradient 1 (Pink):
#fce7f3 (light pink) → #fbcfe8 → #f9a8d4 → #ec4899 (hot pink)
█████████▓▓▓▓▓▓▓▓▒▒▒▒▒▒░░░░
Gradient 2 (Purple):
#fae8ff (lavender) → #f3e8ff → #e9d5ff → #c084fc (purple)
█████████▓▓▓▓▓▓▓▓▒▒▒▒▒▒░░░░
Gradient 3 (Magenta):
#fdf4ff (near white) → #fae8ff → #f0abfc → #d946ef (magenta)
█████████▓▓▓▓▓▓▓▓▒▒▒▒▒▒░░░░
Gradient 4 (Rose):
#fce7f3 (light pink) → #fda4af → #fb7185 → #f43f5e (rose)
█████████▓▓▓▓▓▓▓▓▒▒▒▒▒▒░░░░
```
### Center Gradients (Radial):
```
Golden Outer:
#fef3c7 (cream) → #fde68a → #fbbf24 → #f59e0b (amber)
████████▓▓▓▓▓▓▒▒▒▒░░░░
Light Inner:
#fffbeb (pale yellow) → #fef3c7 → #fde68a (golden)
████████▓▓▓▓░░░░
Stamens:
#d97706 (dark amber) - solid color
████████
```
---
## ⚡ Performance Characteristics
### Frame Rate Target: 60 FPS
```
Animation Layer CPU Cost GPU Cost
───────────────────────────────────────────
Background Glow █░░░░ ██░░░
Outer Petals (8) ██░░░ ████░
Middle Petals (8) ██░░░ ████░
Inner Petals (10) ██░░░ ████░
Center (2 circles) █░░░░ ███░░
Stamens (8) █░░░░ ██░░░
Sparkles (8) █░░░░ ██░░░
Particles (12) ██░░░ ████░
Glow Filters █░░░░ █████
───────────────────────────────────────────
Total (Hover) ███░░ ████░
█ = 20% utilization
```
### Optimization Strategies:
1. **Transform & Opacity Only**
- No layout-triggering properties
- Hardware accelerated
2. **Will-Change Applied**
- `will-change: transform, opacity`
- GPU layer creation
3. **Staggered Animation**
- Spreads CPU load over time
- Smoother visual perception
---
## 📐 Geometric Calculations
### Petal Position Formula:
```javascript
For petal at angle θ:
x = centerX + cos(θ) * distance
y = centerY + sin(θ) * distance
Outer petals: distance = 38px (hover)
Middle petals: distance = 26px (hover)
Inner petals: distance = 16px (hover)
```
### Particle Trajectory:
```javascript
// Hover animation
translate(
cos(angle) * maxDistance,
sin(angle) * maxDistance
)
// Click burst
translate(
cos(angle) * maxDistance * 2,
sin(angle) * maxDistance * 2
)
```
---
## 🎭 State Transition Diagram
```
┌──────────────┐
│ NORMAL │
│ (Breathing) │
└───────┬──────┘
Mouse Enter │ Mouse Leave
│ ↓
┌───────▼──────┐
│ HOVER │
┌────▶│ (Full Bloom) │◀────┐
│ └───────┬──────┘ │
│ │ │
Click ends│ Click│ │ Hover maintains
│ │ │
│ ┌───────▼──────┐ │
└─────│ CLICK │─────┘
│ (Closing) │
└──────────────┘
After 1.2s
Return to NORMAL
```
---
## 💡 Design Philosophy
### Visual Hierarchy:
1. **Center (Focal Point)**: Documentation pages = purpose
2. **Petals (Beauty)**: Organic, natural flower form
3. **Particles (Magic)**: Dynamic, alive feeling
4. **Sparkles (Polish)**: Finishing touch of elegance
### Animation Principles:
- **Anticipation**: Slight scale-down before bloom
- **Follow-through**: Elastic bounce on close
- **Staging**: Staggered petal animation
- **Timing**: Slower start, faster middle, slower end
- **Secondary Motion**: Particles enhance main animation
### Color Psychology:
- **Pink/Purple**: Creative, artistic, documentation
- **Golden Center**: Knowledge, enlightenment
- **Gradient Flow**: Natural, organic, alive
---
**Visual Guide Version**: 1.0
**Last Updated**: October 2025
For implementation details, see `REFACTORING_SUMMARY.md`
For usage examples, see `README.md`