Sprint 2: attempt cards, file import button, question layout, radio/check, sticky save

- Replace attempts table with attempts-card-list cards
- Custom import: sr-only file input + btn-styled label
- question-editor-block: stack header on mobile, row from 520px
- option marks: radio for single correct, checkbox for multiple
- Fixed bottom actions on max-width 640px with draft status; hide in-flow panel
- Update СПРИНТЫ_МОБИЛЬНЫЙ_ДИЗАЙН.md and DOC/ШАГИ/ШАГ_2026-04-27_003.md

Made-with: Cursor
This commit is contained in:
Константин Лебединский
2026-04-27 19:38:42 +05:00
parent 1db3653e66
commit 3e70f4322d
4 changed files with 268 additions and 77 deletions
@@ -1,10 +1,8 @@
# Спринты: мобильный UI кабинета тестов
Рядом с: [`ПРЕДЛОЖЕНИЕ_ДИЗАЙН_СОЗДАНИЕ_ТЕСТА.md`](./ПРЕДЛОЖЕНИЕ_ДИЗАЙН_СОЗДАНИЕ_ТЕСТА.md).
---
## Спринт 1 — быстрые исправления (текущий)
## Спринт 1 — быстрые исправления
**Цель:** выровнять кнопки, мета-строку списка, историю версий, назначение и safe-area; без смены контентной модели страниц.
@@ -21,13 +19,15 @@
---
## Спринт 2 — бэклог (следующий)
## Спринт 2 — карточки, импорт, вопрос, радио/чек, фикс-футер
- [ ] **2.1** «Прогоны и разбор»: на мобилке заменить таблицу на карточки или гориз. скролл с фиксированными колонками
- [ ] **2.2** «Импорт из файла»: кастомная кнопка (скрытый `input` + стилизованный `label` под `.btn`)
- [ ] **2.3** «Вопрос 1» + «Сгенерировать вопрос (ИИ)» — не в одной строке на узком экране; явная иерархия primary/secondary
- [ ] **2.4** Радио vs чекбокс у вариантов ответа при «несколько верных» — визуальная метафора (квадраты vs круги)
- [ ] **2.5** Закреплённый футер с действиями «Сохранить» (опционально)
- [x] **2.1** «Прогоны и разбор»: таблица заменена на список карточек (`.attempts-card-list`)
- [x] **2.2** «Импорт из файла»: скрытый `input` + `label` с `.btn` (`.import-file-input` / `.import-file-label`)
- [x] **2.3** «Вопрос N» + «Сгенерировать вопрос (ИИ)»: колонка на мобилке, ряд от `min-width: 520px` (`.question-editor-block__header`)
- [x] **2.4** Варианты: `type="radio"` при одном верном, `checkbox` при нескольких
- [x] **2.5** Моб. фикс-футер `≤640px` с «Сохранить» / «К списку» + статус черновика; панель в потоке скрыта
**Файлы:** `frontend/src/styles/cabinet-theme.css`, `frontend/src/pages/TestDetail.jsx`.
---