Files
MyClub/DOCS/ELEMENTOR_CONTEXTUAL_EDITOR.md
Tomáš Dvořák 12cba639b9 upload
2025-10-16 13:32:05 +02:00

338 lines
11 KiB
Markdown

# 🎨 Elementor-Style Contextual Editor
## Revolutionary New Approach
The editor now works **exactly like WordPress Elementor** - you stay on the frontpage with a semi-transparent overlay, click any element, and immediately see all available styles in a contextual popup!
## ✨ How It Works
### The Experience
```
1. Click "Edit" button (bottom-left)
2. Page gets semi-transparent overlay
3. Hover over any section → it highlights
4. Click the section → contextual panel appears
5. See all style options in a grid
6. Click a style → it changes instantly!
7. Click "Save" → page reloads with changes
```
### Visual Layout
```
┌────────────────────────────────────────────────────┐
│ ⚠️ 2 Unsaved Changes [top-right badge] │
├────────────────────────────────────────────────────┤
│ │
│ ┌──────────────────────────────────┐ │
│ │ HEADER [X] │ ← Popup │
│ ├──────────────────────────────────┤ │
│ │ Choose Style │ │
│ │ │ │
│ │ ┌──────────┐ ┌──────────┐ │ │
│ │ │ Unified │ │ Edge │ │ │
│ │ │ Classic │ │ Gradient │ │ │
│ │ └──────────┘ └──────────┘ │ │
│ │ │ │
│ │ ┌──────────┐ ┌──────────┐ │ │
│ │ │ Minimal │ │ Modern │ │ │
│ │ │ Clean │ │ Bold │ │ │
│ │ └──────────┘ └──────────┘ │ │
│ │ │ │
│ │ 4 styles available [Modified] │ │
│ └──────────────────────────────────┘ │
│ │
│ Header Section (highlighted) │
│ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ │
│ │
├────────────────────────────────────────────────────┤
│ │
└────────────────────────────────────────────────────┘
[Edit button] [Save button if changes]
```
## 🚀 Quick Start
### 1. Enter Edit Mode
- Click the **purple edit button** (bottom-left corner)
- Page gets a subtle overlay
- All editable elements show on hover
### 2. Select Element
- **Hover** over any section (header, hero, news, matches, sponsors)
- Element lights up with **blue dashed border**
- Element name badge appears
- **Click anywhere** on the element
### 3. Choose Style
- **Contextual popup** appears near the element
- See **2x2 grid** of all available styles
- Each style shows:
- **Name** (e.g., "Unified", "Edge")
- **Description** (e.g., "Classic layout")
- **Active badge** if currently selected
- Click any style to switch
### 4. Save Changes
- Orange **"X Unsaved Changes"** badge appears (top-right)
- **Green save button** appears in bottom-left control
- Click **save** → page reloads with new styles
## 🎯 Key Features
### Contextual Popup
- **Smart Positioning**: Appears below element or adjusts if near screen edge
- **Visual Grid**: 2x2 layout showing all styles at once
- **Active Indicator**: Green "ACTIVE" badge on current style
- **Instant Feedback**: Click to switch styles immediately
- **Smooth Animation**: Slides in from top with fade effect
### Element Highlighting
- **Hover State**: Blue dashed border + subtle background
- **Selected State**: Solid blue border + darker background
- **Element Badge**: Name appears in top-left corner
- **Smart Cursor**: Pointer shows it's clickable
### Minimal Controls
- **One Button**: Edit mode toggle (bottom-left)
- **Auto-Save Button**: Appears only when you have changes
- **Changes Counter**: Shows how many elements modified (top-right)
- **No Clutter**: No complex panels or sidebars
### Help System
- **First-Time Hint**: Central popup with instructions
- **"Click Any Element"** message with pointer emoji
- **Quick Start**: Button to jump to header immediately
- **Disappears**: Once you click an element
## 📋 User Flow Example
**Scenario**: Change header from Unified to Modern
1. **Start**: Click purple edit button
2. **See**: "👆 Click Any Element" hint appears
3. **Hover**: Move mouse over header area
4. **Highlight**: Header shows blue border + "HEADER" badge
5. **Click**: Anywhere on header section
6. **Popup**: Contextual panel appears showing 4 styles
7. **Current**: "Unified" has green "ACTIVE" badge
8. **Choose**: Click "Modern" box
9. **Change**: Header style updates instantly
10. **See**: Orange "⚠️ 1 Unsaved Changes" badge (top-right)
11. **Save**: Green save button appears (bottom-left)
12. **Click**: Save button
13. **Done**: Page reloads with modern header!
## 🎨 Style Cards
Each style option is a **clickable card** with:
```
┌─────────────────────┐
│ ACTIVE [badge if current]
│ │
│ Modern │ ← Style name
│ │
│ Bold with accent │ ← Description
│ colors │
└─────────────────────┘
```
**Hover Effect**:
- Border changes to blue
- Card lifts up (translateY -2px)
- Box shadow appears
- Smooth 0.2s transition
## ⌨️ Keyboard Shortcuts
| Key | Action |
|-----|--------|
| `ESC` | Close contextual popup or exit edit mode |
| Click outside | Close contextual popup |
## 💡 Pro Tips
### Workflow Tips
1. **Batch Edit**: Change multiple elements before saving
2. **Preview First**: See changes instantly, save when happy
3. **Quick Access**: Click hint's "start with Header" button
4. **ESC to Close**: Quick way to dismiss popup
### Visual Tips
1. **Look for Badge**: Element name shows on hover
2. **Active State**: Green badge shows current selection
3. **Count Changes**: Top-right shows unsaved count
4. **Blue = Clickable**: Highlighted elements are interactive
### Best Practices
1. **One Element at Time**: Focus on styling each section
2. **See All Options**: Grid shows everything at once
3. **Save Regularly**: Don't lose work - save often
4. **Test on Live**: Changes apply immediately for preview
## 🆚 Comparison: Before vs Now
### Before (Drawer Approach)
❌ Had to open right drawer
❌ Search/browse element list
❌ Select from dropdown
❌ Couldn't see element while choosing
❌ Multiple steps to change one thing
### Now (Contextual Approach)
✅ Click directly on element
✅ Popup appears right there
✅ See all styles in visual grid
✅ Element stays highlighted
✅ One click to change style
## 🎭 Interface Elements
### Control Panel (Bottom-Left)
- **Round button** with edit/close icon
- **Borderchanges** to blue when editing
- **Save button appears** below when changes made
- **Minimal footprint** - doesn't block content
### Contextual Popup
- **Header Bar**: Element name + close button (blue background)
- **Style Grid**: 2x2 layout of clickable cards
- **Footer Info**: Style count + modified/saved badge
- **Close Button**: X in top-right of popup
- **Auto-positioned**: Never goes off-screen
### Change Indicator (Top-Right)
- **Orange badge** with warning icon
- **Shows count**: "⚠️ 2 Unsaved Changes"
- **Prominent**: Can't miss it
- **Disappears** after save
### Help Hint (Center)
- **Only shows once**: When entering edit mode
- **Large pointer emoji**: 👆 draws attention
- **Clear instructions**: "Click Any Element"
- **Quick action**: "Or start with Header" button
## 🔧 Technical Details
### Element Detection
- Elements wrapped with `<EditableElement elementName="...">`
- Attribute `data-element` added to DOM
- JavaScript finds all `[data-element]` elements
- Dynamic overlay creation for each
### Popup Positioning
- Calculates element position: `getBoundingClientRect()`
- Places below element: `top + height + 10px`
- Checks screen bounds: `Math.min(pos, window.innerHeight - 400)`
- Adjusts horizontal: `Math.min(left, window.innerWidth - 380)`
- **Result**: Always visible, never cut off
### State Management
- `selectedElement`: Current element being edited
- `elementPosition`: Where to show popup
- `localChanges`: All modifications before save
- `hasChanges`: Triggers save button + badge
### Styling
- Uses **Chakra UI** components
- **Custom animations**: Slide-in, fade-in
- **Portal rendering**: Popup outside normal flow
- **Z-index layers**:
- Overlay: 9997
- Hint: 9999
- Control: 10000
- Popup: 10001
## 📱 Responsive Behavior
### Popup Adaptation
- **Desktop**: Full 360px width
- **Tablet**: May adjust position
- **Mobile**: Still 360px but repositions smartly
### Element Highlighting
- **All devices**: Blue borders work everywhere
- **Touch**: Click works on mobile too
- **Hover**: Optional on mobile (click to select)
## 🐛 Troubleshooting
### Popup Doesn't Appear
**Check**:
- Element has `data-element` attribute?
- Element is wrapped with `EditableElement`?
- Click inside the highlighted area?
### Wrong Position
**Cause**: Element near screen edge
**Solution**: Popup auto-adjusts to stay visible
### Can't Close Popup
**Solutions**:
- Click X button in popup header
- Press ESC key
- Click outside popup area
- Turn off edit mode
### Changes Don't Save
**Check**:
- Click the save button?
- Wait for toast notification?
- Check browser console for errors?
## 🎓 Learning Path
### Beginner (2 Minutes)
1. Click edit button
2. Click header
3. Choose different style
4. Click save
5. **Done!**
### Intermediate (5 Minutes)
1. Edit all 5 elements
2. See them change live
3. Save once for all
4. **Master the workflow!**
### Advanced (10 Minutes)
1. Understand element types
2. Test different combinations
3. Learn keyboard shortcuts
4. **Become power user!**
## 🎉 Why This is Better
### Like Real Elementor
- ✅ Click element directly
- ✅ Contextual popup appears
- ✅ Visual style chooser
- ✅ Instant preview
- ✅ Minimal UI
### Better Than Elementor
- ✅ Simpler (fewer options = less confusion)
- ✅ Faster (no loading complex editor)
- ✅ Focused (one task: choose styles)
- ✅ Lightweight (no heavy dependencies)
## 📚 Related Docs
- `ELEMENTOR_QUICK_START.md` - Quick start guide
- `VISUAL_ELEMENT_EDITOR.md` - Technical details
- `QUICK_START_VISUAL_EDITOR.md` - Original docs
---
**The Elementor experience you requested is now LIVE!** 🎊
Click. Choose. Save. That's it!