Files
router-lists-ui/frontend/QUICK_START_UX.md
T

133 lines
3.2 KiB
Markdown

# 🚀 Quick Start - UX Improvements
## Быстрый старт с новыми компонентами
### 1. Tooltip - добавьте подсказки везде
```jsx
import Tooltip from './components/Tooltip.jsx'
// На кнопках
<Tooltip content="Сохранить изменения" shortcut="Ctrl+S">
<button className="btn btn-primary">Сохранить</button>
</Tooltip>
// На иконках
<Tooltip content="Редактировать">
<IconEdit className="cursor-pointer" onClick={handleEdit} />
</Tooltip>
```
### 2. ValidatedInput - формы с валидацией
```jsx
import ValidatedInput from './components/ValidatedInput.jsx'
<ValidatedInput
value={email}
onChange={(e) => setEmail(e.target.value)}
validate={(val) => ({
valid: /\S+@\S+\.\S+/.test(val),
message: 'Введите корректный email'
})}
label="Email"
required
/>
```
### 3. ErrorAlert - улучшенные ошибки
```jsx
import ErrorAlert from './components/ErrorAlert.jsx'
<ErrorAlert
message="Не удалось загрузить данные"
error={error}
onRetry={fetchData}
onClose={() => setError(null)}
/>
```
### 4. LastSaved - покажите когда сохранено
```jsx
import LastSaved from './components/LastSaved.jsx'
<LastSaved timestamp={lastSavedTime} variant="compact" />
```
### 5. ContextMenu - действия в таблицах
```jsx
import ContextMenu from './components/ContextMenu.jsx'
<ContextMenu
items={[
{ label: 'Редактировать', icon: IconEdit, onClick: () => edit(item) },
{ label: 'Удалить', icon: IconTrash, onClick: () => remove(item), variant: 'danger' }
]}
/>
```
### 6. MobileCardView - мобильные таблицы
```jsx
import MobileCardView from './components/MobileCardView.jsx'
<MobileCardView
items={data}
renderContent={(item) => (
<div>
<div className="fw-bold">{item.name}</div>
<div className="text-muted small">{item.description}</div>
</div>
)}
actions={[
{ label: 'Редактировать', icon: IconEdit, onClick: handleEdit },
{ label: 'Удалить', icon: IconTrash, onClick: handleDelete, variant: 'danger' }
]}
/>
```
### 7. ProgressBar - покажите прогресс
```jsx
import ProgressBar from './components/ProgressBar.jsx'
<ProgressBar
progress={uploadProgress}
status="Загрузка файла..."
estimatedTime={30}
striped
animated
/>
```
## CSS Классы
Новые утилитарные классы:
```jsx
// Hover effect на карточках
<div className="card card-hover">...</div>
// Semantic colors
<span className="text-status-online">Онлайн</span>
<span className="text-status-offline">Оффлайн</span>
// Touch targets (автоматически на мобильных)
<button className="btn btn-icon">...</button>
```
## Полная документация
📖 **Детали:** `frontend/UX_IMPROVEMENTS.md`
📊 **Summary:** `UX_IMPROVEMENTS_SUMMARY.md`
## Поддержка
Вопросы? Проблемы? Смотрите примеры в:
- `Dashboard.jsx` - использование TrendIndicator, LastSaved, Tooltip
- Документацию выше