Files
MyClub/MYUIBRIX_IMPROVEMENTS_2025.md
T
Tomas Dvorak 77213f4e83 dev day #65
2025-10-19 17:16:57 +02:00

248 lines
6.1 KiB
Markdown

# MyUIbrix Vylepšení - Říjen 2025
## Přehled změn
Kompletní přepracování MyUIbrix editoru s novými funkcemi, opravami chyb a českým překladem.
---
## 🎯 Nové Funkce
### 1. **Interaktivní Ovládání na Stránce**
- **Tlačítka na hover**: Při najetí myší se zobrazí akční tlačítka:
- ⚙️ **Upravit styl** - Otevře panel se styly
- ⬆️ **Přesunout nahoru** - Posune element výš
- ⬇️ **Přesunout dolů** - Posune element níž
- 🗑️ **Odstranit** - Smaže element (s potvrzením)
### 2. **Drag & Drop na Stránce**
- Přetáhněte element přímo na stránce pro změnu pozice
- Vizuální indikátory při přetahování (žlutý okraj)
- Automatické přeuspořádání v DOM
### 3. **Responzivní Viewport Switcher**
- **Nyní funkční!** Přepínání mezi zařízeními:
- 🖥️ Počítač (100% šířka)
- 📱 Tablet (768px)
- 📱 Telefon (375px)
- Šedé pozadí kolem viewportu pro lepší viditelnost
- Modrý okraj pro non-desktop zobrazení
- Indikátor aktuální šířky pod tlačítky
### 4. **Český Překlad**
Všechna uživatelská rozhraní nyní v češtině:
- Tlačítka a popisky
- Nápověda a instrukce
- Chybové zprávy
- Tooltips
---
## 🐛 Opravené Chyby
### 1. **Přesouvání Elementů**
**Problém**: Elementy se přesouvaly na divné pozice
**Řešení**:
- Opravena funkce `applyVisualReorder()` pro správnou detekci kontejneru
- Nyní funguje s viewport wrapperem
- Používá `container.contains()` místo přímé kontroly parent
### 2. **Změna Stylů**
**Problém**: Pouze jeden styl fungoval, elementy mizely
**Řešení**:
- Aktualizace `configs` state při změně varianty
- Vynucení re-renderu elementu pomocí `data-variant` atributu
- Dispatch `variant-change` eventu pro posluchače
- Timeout 50ms pro zajištění správného pořadí operací
### 3. **Responzivní Viewport**
**Problém**: Viewport switcher neměnil šířku stránky
**Řešení**:
- Implementace `.myuibrix-viewport-wrapper` kontejneru
- Dynamické aplikování šířky při změně viewport
- Zachování fixed/absolute elementů mimo wrapper
- Vizuální feedback (border, shadow)
---
## 🎨 Vylepšené UX
### Hover Efekty
```typescript
- Modrý tečkovaný okraj při najetí
- Průhledné modré pozadí
- Badge s názvem elementu
- Akční tlačítka (opacity 0 1)
```
### Drag & Drop Indikátory
```typescript
- Kurzor: move
- Při dragování: opacity 0.5
- Drop target: žlutý okraj (3px solid)
- Smooth transitions
```
### Viewport Visual Feedback
```typescript
Desktop: šedé pozadí, žádný okraj
Tablet: šedé pozadí, modrý okraj 3px
Mobile: šedé pozadí, modrý okraj 3px
```
---
## 📝 Technické Detaily
### Viewport Wrapper
```typescript
// Vytvoření při aktivaci edit mode
const wrapper = document.createElement('div');
wrapper.className = 'myuibrix-viewport-wrapper';
wrapper.style.cssText = `
margin: 0 auto;
transition: all 0.3s ease;
background: white;
box-shadow: 0 0 0 9999px rgba(0,0,0,0.15);
min-height: calc(100vh - 60px);
`;
```
### Variant Change Handler
```typescript
// Nyní správně aktualizuje configs a vynutí re-render
setConfigs(prevConfigs => {
const updated = [...prevConfigs];
updated[configIndex] = { ...updated[configIndex], variant };
return updated;
});
// Force element update
element.setAttribute('data-variant', variant);
element.dispatchEvent(new CustomEvent('variant-change', {
detail: { variant }
}));
```
### Visual Reorder Fix
```typescript
// Detekce správného kontejneru
const viewport = document.querySelector('.myuibrix-viewport-wrapper');
const container = viewport || document.querySelector('.container');
// Bezpečná kontrola
if (element && container.contains(element)) {
container.appendChild(element);
}
```
---
## 🎓 Klávesové Zkratky
| Zkratka | Akce |
|---------|------|
| `ESC` | Zavřít panel / Ukončit edit mode |
| `Ctrl+S` / `⌘+S` | Uložit změny |
| `L` | Toggle vrstvy panelu |
| `A` | Přidat element |
| `↑` | Přesunout vybraný element nahoru |
| `↓` | Přesunout vybraný element dolů |
| `Del` / `Backspace` | Odstranit vybraný element |
---
## 🚀 Použití
### Aktivace Edit Mode
1. Klikněte na plovoucí tlačítko vlevo dole
2. Nebo přidejte `?myuibrix=edit` do URL
### Úprava Elementu
1. Najeďte myší na element (zobrazí se akční tlačítka)
2. Klikněte na ⚙️ pro změnu stylu
3. Vyberte styl z panelu
4. Změny se zobrazí okamžitě (preview)
### Přesunutí Elementu
**Možnost 1**: Tlačítka
- Klikněte ⬆️ nebo ⬇️
**Možnost 2**: Drag & Drop
- Přetáhněte element na novou pozici
- Pustě na cílové místo
**Možnost 3**: Layers Panel
- Otevřete panel vrstev (L)
- Přetáhněte v seznamu
### Odstranění Elementu
- Klikněte 🗑️ (potvrdí se dialogem)
- Nebo `Del` na vybraném elementu
### Uložení Změn
1. Klikněte "Publikovat" v top baru
2. Nebo stiskněte `Ctrl+S`
3. Stránka se obnoví s uloženými změnami
---
## 🔍 Testování
### Checklist
- [✅] Změna stylu elementu
- [✅] Přesun elementu nahoru/dolů
- [✅] Drag & Drop přesunutí
- [✅] Odstranění elementu
- [✅] Přidání nového elementu
- [✅] Viewport switcher (desktop/tablet/mobile)
- [✅] Uložení a reload
- [✅] Klávesové zkratky
- [✅] Layers panel
- [✅] Hover efekty
---
## 📦 Soubory
**Upravené soubory:**
```
frontend/src/components/editor/MyUIbrixEditor.tsx
```
**Nové funkce:**
- Interaktivní tlačítka na hover
- Drag & Drop na stránce
- Viewport wrapper implementace
- Lepší detekce kontejnerů
- Force re-render při změně varianty
---
## 🎯 Budoucí Vylepšení
- [ ] Undo/Redo funkce
- [ ] Copy/Paste elementů
- [ ] Keyboard navigation mezi elementy
- [ ] Custom breakpoints pro responsive
- [ ] Export/Import konfigurace
- [ ] Element templates
- [ ] Pokročilé CSS úpravy (padding, margin, colors)
- [ ] Live CSS editor
- [ ] Mobile touch gestures pro přesunutí
---
## 📚 Dokumentace
Pro více informací viz:
- `DOCS/MYUIBRIX_QUICK_START.md`
- `DOCS/MYUIBRIX_ELEMENTOR_FEATURES.md`
- `DOCS/MYUIBRIX_PREVIEW_MODE.md`
---
**Datum:** 18. října 2025
**Verze:** 2.0
**Status:** ✅ Kompletní a otestováno