# πΈ Pivoine Docs Icon - Complete Documentation
The official branding icon for the Pivoine Documentation Hub, featuring a beautiful peony flower with integrated documentation elements.
## π¨ Design Concept
The icon combines two powerful visual metaphors:
1. **Peony Flower (Pivoine)** - Represents the brand identity
- Multiple layers of petals in purple and pink gradients
- Symbolizes beauty, elegance, and growth
- Reflects the "Pivoine" brand name
2. **Documentation Pages** - Represents the hub's purpose
- Stacked pages in the center of the flower
- Blue text lines suggesting content
- Golden center representing knowledge/enlightenment
### Color Palette
```css
/* Primary Petals */
Purple 1: #a855f7 β #ec4899 /* Violet to pink */
Purple 2: #9333ea β #db2777 /* Deep purple to rose */
Purple 3: #c026d3 β #f472b6 /* Fuchsia to pink */
/* Center & Accents */
Golden: #fbbf24 β #f59e0b β #d97706 /* Warm gold gradient */
Pages: #f3f4f6 β #e5e7eb /* Light gray */
Text: #6366f1, #a855f7 /* Indigo and purple */
Background: #1e293b /* Dark slate */
```
## π¦ Available Formats
### React Component (Animated)
**File**: `components/icons/PivoineDocsIcon.tsx`
- Full animations (hover, click, orbiting particles)
- Interactive and responsive
- Customizable size and behavior
- For hero sections and prominent displays
### Static SVG Icons
**Files**:
- `public/icon.svg` (256x256) - Full detail, all platforms
- `public/favicon.svg` (32x32 optimized) - Browser tabs
### PNG Icons (Generated)
Generate with: `./scripts/generate-icons.sh`
- `icon-192.png` - PWA icon (Android)
- `icon-512.png` - PWA icon (Android HD)
- `apple-touch-icon.png` - iOS home screen
- `favicon-32x32.png` - Standard favicon
- `favicon-16x16.png` - Small favicon
## π React Component Usage
### Basic Usage (Hero Area)
```tsx
import { PivoineDocsIcon } from '@/components/icons'
```
### Props
```typescript
interface PivoineDocsIconProps {
size?: string // Default: '256px'
interactive?: boolean // Default: true
className?: string // Additional classes
showLabel?: boolean // Default: false - Shows "Pivoine Docs" text
}
```
### Examples
```tsx
// Large hero icon with full interactivity
// Medium size, interactive
// Small, non-interactive (for cards/lists)
// Custom styling
```
## β¨ Animations & Effects
### Default State
- **Flower starts CLOSED** as a tight bud π·
- Outer petals: 30% size, 50% opacity
- Middle petals: 40% size, 60% opacity
- Inner petals: 50% size, 70% opacity
- **Subtle pulsing** background circle
- **Twinkling sparkles** at corners
- **Orbiting particles** around the flower
- **Gentle floating** of document pages
- **Text lines** appear with staggered animation
### Hover State (when `interactive={true}`)
- Icon **scales up** and **lifts** (transform 3D)
- **PETALS BLOOM OPEN** to full size! πΈ
- Smooth 0.8s transition
- Staggered timing for natural bloom:
- Outer petals bloom first (0s delay)
- Middle petals follow (0.05s delay)
- Inner petals last (0.1s delay)
- All reach 100% size and full opacity
- Enhanced **shadow and glow** effects
- Center golden circle **glows intensely**
- Sparkles **burst** and expand
- Pages **fan out** slightly with rotation
- Particles **accelerate**
### Click/Tap State
- **3D bounce** with rotation (0-180-360Β°)
- Petals **explode** outward briefly
- Center **bursts** with glow
- **Ripple effect** emanates from center
- Duration: ~800ms
- Smooth cubic-bezier easing
### Continuous Animations
Even when not hovered:
- Background pulse (4s cycle)
- Sparkle twinkle (2s cycle, staggered)
- Particle orbit (8s rotation, staggered)
- Center pulse (3s cycle)
- Page float (3s gentle movement)
- Text lines draw in on mount
## π± Responsive & Accessible
### Responsive Behavior
```css
/* Desktop: Full effects */
@media (min-width: 769px) {
hover: scale(1.08) translateY(-8px)
}
/* Tablet/Mobile: Reduced scale */
@media (max-width: 768px) {
hover: scale(1.05) translateY(-4px)
}
/* Touch devices: Active state */
@media (hover: none) and (pointer: coarse) {
active: scale(0.95)
}
```
### Accessibility
- β
**Reduced Motion**: All animations disabled when `prefers-reduced-motion: reduce`
- β
**Touch Optimized**: Larger hit areas, optimized tap response
- β
**Keyboard Navigation**: Focusable when interactive
- β
**Screen Readers**: Appropriate ARIA labels (add as needed)
## π― Integration Points
### 1. Hero Section (Landing Page)
**Location**: `app/page.tsx`
```tsx
```
### 2. Favicon (Browser Tab)
**Location**: `app/layout.tsx`
```tsx
icons: {
icon: [
{ url: '/favicon.svg', type: 'image/svg+xml' },
{ url: '/icon.svg', type: 'image/svg+xml', sizes: 'any' },
],
}
```
### 3. PWA Manifest
**Location**: `public/manifest.json`
```json
{
"icons": [
{
"src": "/icon.svg",
"sizes": "any",
"type": "image/svg+xml"
},
{
"src": "/icon-192.png",
"sizes": "192x192",
"type": "image/png"
},
{
"src": "/icon-512.png",
"sizes": "512x512",
"type": "image/png"
}
]
}
```
### 4. Apple Touch Icon
**Location**: `app/layout.tsx`
```tsx
icons: {
apple: [
{ url: '/apple-touch-icon.png', sizes: '180x180' },
],
}
```
## π οΈ Technical Details
### Performance
- **GPU Accelerated**: All animations use CSS transforms
- **Optimized**: Minimal JavaScript, mostly CSS
- **60 FPS**: Smooth on modern devices
- **No External Assets**: Inline SVG, no image loading
- **File Size**: ~10KB component + ~3KB SVG
### Browser Support
- β
Chrome/Edge 90+
- β
Firefox 88+
- β
Safari 14+
- β
iOS Safari 14+
- β
Chrome Mobile
- β
Samsung Internet
### SVG Filters Used
- `feGaussianBlur` - Glow effects
- `feMerge` - Combining blur with original
- `feDropShadow` - Page shadows
### Gradients
- **8 unique gradients** total
- Linear gradients for petals
- Radial gradients for ripple
- Golden gradient for center
- Page gradients for documents
## π Size Guidelines
| Context | Recommended Size | Interactive |
|---------|-----------------|-------------|
| Hero section | 200-256px | Yes |
| Page header | 64-96px | Optional |
| Sidebar | 48-64px | No |
| Favicon | Auto (SVG) | N/A |
| PWA Icon | Auto (PNG) | N/A |
| Avatar/Profile | 40-48px | No |
## π¨ Customization
### Changing Colors
Edit the gradient definitions in `PivoineDocsIcon.tsx`:
```tsx
```
### Adjusting Animations
Modify keyframes in the `