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

5.4 KiB

🎯 Elementor: Reorder & Move Elements

New Feature: Element Reordering

You can now move elements up and down to customize the order they appear on your homepage!

🚀 How to Reorder Elements

Method 1: Using Move Buttons in Popup

  1. Click any element in edit mode
  2. See position indicator: "Position X of Y"
  3. Click ↑ button to move element up
  4. Click ↓ button to move element down
  5. Element moves instantly (live preview!)
  6. Click Save to persist order

Method 2: Using Header Controls

  1. Click any element
  2. Look at popup header (blue bar)
  3. Click ↑ or ↓ arrows next to trash icon
  4. Element position updates
  5. Save to persist

📍 Position Indicator

┌────────────────────────────────┐
│ 🔧 GALLERY          ↑ ↓ 🗑️ [X]│
├────────────────────────────────┤
│ 📍 Position 3 of 8      ↑ ↓   │ ← New!
├────────────────────────────────┤
│ Choose Style                   │
│ ...                            │

💡 Example Workflow

Current Order:

  1. Header
  2. Hero
  3. News
  4. Gallery ← Want this higher
  5. Matches

Steps:

  1. Click "Gallery" element
  2. See "Position 4 of 5"
  3. Click ↑ button
  4. Gallery now at position 3
  5. Click ↑ again
  6. Gallery now at position 2
  7. Click Save
  8. Done!

New Order:

  1. Header
  2. Gallery ← Moved up!
  3. Hero
  4. News
  5. Matches

🎨 Visual Improvements

Enhanced Animations

  • Smoother transitions: Cubic-bezier easing
  • Scale effects: Buttons scale on hover/click
  • Better shadows: Depth perception
  • Slide-in popup: Smoother entry animation

Better Button Feedback

  • Hover: Lift + scale effect
  • Click: Press down effect
  • Disabled: Grayed out when can't move
  • Tooltips: Clear action labels

Position Awareness

  • Up button disabled at position 1
  • Down button disabled at last position
  • Position counter shows current placement
  • Total count shows how many elements

🔧 Technical Details

Display Order

// Elements stored with display_order field
interface PageElementConfig {
  ...
  display_order: number  // 0, 1, 2, 3, etc.
}

// Loaded in order
const sorted = configs.sort((a, b) => a.display_order - b.display_order);

Move Functions

// Move up: Swap with previous
const handleMoveUp = (elementName) => {
  const index = order.indexOf(elementName);
  [order[index-1], order[index]] = [order[index], order[index-1]];
  setOrder(order);
};

// Move down: Swap with next
const handleMoveDown = (elementName) => {
  const index = order.indexOf(elementName);
  [order[index], order[index+1]] = [order[index+1], order[index]];
  setOrder(order);
};

Live Preview

// Dispatch reorder event
window.dispatchEvent(new CustomEvent('elementor-reorder', {
  detail: { order: newOrder }
}));

// Components listen and re-render in new order
useEffect(() => {
  window.addEventListener('elementor-reorder', handleReorder);
}, []);

📊 UI Enhancements

Before

┌──────────────────┐
│ 🔧 GALLERY  [X]  │
├──────────────────┤
│ Choose Style     │
│ [Grid] [Masonry] │

After

┌──────────────────────┐
│ 🔧 GALLERY  ↑↓🗑️[X] │ ← Move controls
├──────────────────────┤
│ 📍 Position 3/8  ↑↓  │ ← Position info
├──────────────────────┤
│ Choose Style         │
│ [Grid] [Masonry]     │ ← Better animations

🎁 Benefits

For Users

  • Full control over element order
  • See position changes instantly
  • Clear visual feedback
  • Can't make mistakes (disabled buttons)
  • Undo-friendly (just move back)

For Developers

  • Clean state management
  • Event-driven reordering
  • Database-persisted order
  • Live preview support
  • Easy to extend

🎨 Animation Improvements

Popup Entry

/* Before: Simple fade */
from { opacity: 0 }
to { opacity: 1 }

/* After: Slide + scale */
from { 
  opacity: 0;
  transform: translateY(-20px) scale(0.95);
}
to { 
  opacity: 1;
  transform: translateY(0) scale(1);
}

Button Hover

/* Before: Simple lift */
transform: translateY(-2px)

/* After: Lift + scale */
transform: translateY(-4px) scale(1.02)
box-shadow: lg

Button Click

/* New: Press down effect */
transform: translateY(-2px) scale(0.98)

🔥 Pro Tips

Quick Reordering

  1. Open element popup
  2. Use ↑↓ buttons repeatedly
  3. Watch position counter
  4. Save when happy

Planning Layout

  1. Sketch desired order on paper
  2. Open each element
  3. Move to correct position
  4. Save once at end

Common Patterns

  • Hero first: Eye-catching start
  • News early: Fresh content up top
  • Gallery middle: Visual break
  • Sponsors end: Footer area

Summary

You can now:

  • ↑ Move elements up
  • ↓ Move elements down
  • 📍 See current position
  • 👁️ Preview changes live
  • 💾 Save new order
  • 🎨 Enjoy smoother animations

Complete control over your homepage layout! 🎨🚀