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

3.2 KiB

🚀 Quick Start - UX Improvements

Быстрый старт с новыми компонентами

1. Tooltip - добавьте подсказки везде

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 - формы с валидацией

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 - улучшенные ошибки

import ErrorAlert from './components/ErrorAlert.jsx'

<ErrorAlert 
  message="Не удалось загрузить данные"
  error={error}
  onRetry={fetchData}
  onClose={() => setError(null)}
/>

4. LastSaved - покажите когда сохранено

import LastSaved from './components/LastSaved.jsx'

<LastSaved timestamp={lastSavedTime} variant="compact" />

5. ContextMenu - действия в таблицах

import ContextMenu from './components/ContextMenu.jsx'

<ContextMenu 
  items={[
    { label: 'Редактировать', icon: IconEdit, onClick: () => edit(item) },
    { label: 'Удалить', icon: IconTrash, onClick: () => remove(item), variant: 'danger' }
  ]}
/>

6. MobileCardView - мобильные таблицы

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 - покажите прогресс

import ProgressBar from './components/ProgressBar.jsx'

<ProgressBar 
  progress={uploadProgress} 
  status="Загрузка файла..."
  estimatedTime={30}
  striped
  animated
/>

CSS Классы

Новые утилитарные классы:

// 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
  • Документацию выше