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

11 KiB

🎨 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)
  • 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!