18 KiB
PRD — Семейные игры (каталог для всей семьи)
Версия: 3.0 Дата: 26 июня 2026 Платформа: статический лендинг (HTML + CSS + JS) URL: https://pages.git.vibe42.kz/Yuliya/family-games-v3/ Репозиторий: https://git.vibe42.kz/Yuliya/family-games-v3
1. Описание продукта
«Семейные игры» — одностраничный каталог игр и активностей для семейного времяпрепровождения. Помогает семье быстро найти, во что поиграть вместе: по сезону, по категории, по возрасту ребёнка. Включает готовые загадки, шарады и сценарии для больших компаний (праздники, дни рождения).
Продукт решает проблему «не знаем, чем заняться всей семьёй» и подбирает активности так, чтобы было интересно одновременно и трёхлетнему ребёнку, и родителям, и взрослому ребёнку, и даже кошкам.
2. Цели и задачи
Цели
- G1. Дать семье единый источник идей для совместного досуга — без поиска в интернете каждый раз.
- G2. Подобрать игры, которые развивают ребёнка 3 лет и одновременно интересны взрослым (43, 44, 22 года).
- G3. Покрыть все сезоны и типы активности (улица, настольные, развивающие, компьютерные, прочие).
- G4. Обеспечить мгновенный доступ с любого устройства, в первую очередь с телефона.
Задачи (внутри продукта)
- Каталог игр с фильтрами и поиском.
- Группировка игр по сезонам года.
- Подборка игр, доступных 3-летнему ребёнку.
- Раздел «шарады и загадки» для устных игр без подготовки.
- Раздел для больших компаний (торжества, дни рождения).
- Функция «Сюрприз» — случайная игра, когда не могут выбрать.
3. Целевая аудитория
Основная семья (пользователи продукта)
| Член семьи | Возраст | Роль в играх |
|---|---|---|
| Папа | 43 года | Ведущий, организатор, партнёр в настольных и компьютерных |
| Мама | 44 года | Наставник малыша, кулинарные и развивающие активности |
| Взрослый ребёнок | 22 года | Партнёр в компьютерных и сложных настольных, помощь с малышом |
| Малыш | 3 года | Главный участник развивающих и подвижных игр |
| 2 кошки | молодые, игривые | Участники «кошачьих» активностей 🐱 |
Дополнительная аудитория
- Гости на праздниках и днях рождения (6+ человек) — для раздела «Большая компания».
Ключевые потребности
- Игры должны быть доступны 3-летке (упрощённые правила, помощь взрослых).
- Игры должны быть не скучны взрослым (есть слой стратегии/юмора).
- Минимум подготовки — играть «здесь и сейчас».
4. Пользовательские сценарии
Сценарий 1 — «Вечер пятницы, не знаем чем заняться». Пользователь открывает сайт на телефоне → нажимает «🎲 Сюрприз» → получает случайную игру с описанием → семья играет.
Сценарий 2 — «Зима, хочется на улицу». Пользователь открывает «📅 По сезонам» → раздел «❄️ Зима» → выбирает игру (например, «Снежинки под лупой») → читает «как играть» и «что развивает».
Сценарий 3 — «Чем занять 3-летку». В каталоге включается фильтр «👶 Для 3-летки» → остаются только игры 2+/3+ → родитель выбирает подходящую.
Сценарий 4 — «День рождения, пришли гости». Открывается раздел «🎂 Для большой компании» → выбирается сценарий (квест по станциям, квиз, фотобудка) для 6–20 человек.
Сценарий 5 — «Устная игра без подготовки». Открывается «🤔 Шарады и загадки» → семья по очереди открывает карточки и угадывает ответы.
5. Структура продукта
Одна страница, прокрутка вниз. Секции:
- Header (липкий) — лого «🎲 Семейные игры» + кнопка «🎲 Сюрприз».
- Hero — заголовок, описание, бейджи состава семьи, кнопки навигации по разделам.
- Каталог игр (
#catalog) — фильтры + сетка карточек игр. - Игры по сезонам (
#seasons) — игры, сгруппированные по 5 временам года. - Шарады и загадки (
#riddles) — интерактивные карточки с ответами. - Для большой компании (
#big) — витрина игр для 6+ человек. - Footer.
6. Функциональные требования
6.1. Каталог игр
- Фильтр по категории: Все / 🌳 На улице / ♟️ Настольные / 🧠 Развивающие / 💻 Компьютерные / ✨ Прочие.
- Фильтр по сезону: В любое время / 🌸 Весна / ☀️ Лето / 🍂 Осень / ❄️ Зима.
- Фильтр по возрасту: Все возраста / 👶 Для 3-летки (показывает только игры с возрастом 2+ или 3+).
- Текстовый поиск по названию игры.
- Кнопка «Сбросить» — обнуляет все фильтры.
- Счётчик «Найдено игр: N» — обновляется при фильтрации.
- Пустое состояние — если ничего не найдено, показывается подсказка сбросить фильтры.
6.2. Карточка игры
Каждая карточка содержит:
- Эмодзи-иконка.
- Чип категории (с цветом категории).
- Название.
- Метаданные: сезон, 👥 количество игроков, 🎂 возраст.
- Описание «как играть» (2–4 предложения).
- Блок «🎯 Развивает: …» — какие навыки развивает (особенно важно для развивающих и игр малыша).
6.3. Игры по сезонам
- 5 групп с заголовками: 🌸 Весна / ☀️ Лето / 🍂 Осень / ❄️ Зима / 🔄 В любое время.
- В каждой группе — счётчик количества игр.
- Сетка карточек внутри группы (та же карточка, что в каталоге).
6.4. Шарады и загадки
- Подраздел «Загадки» — карточки с текстом загадки; клик по карточке открывает ответ.
- Подраздел «Шарады» — карточки с частями слова; клик открывает ответ-слово.
- Состояние «ответ скрыт / показан» переключается повторным кликом.
6.5. Для большой компании
- Витрина из 6 сценариев для 6+ человек (Мафия, Крокодил, Музыкальные стулья, Семейный квиз, Квест по станциям, Фотобудка).
- Карточки с описанием и «что развивает».
- Без фильтров (статичная витрина).
6.6. «Сюрприз» (модальное окно)
- Кнопка в header и доступна с любой точки страницы.
- Открывает модал со случайной игрой из текущей отфильтрованной выборки (или из всех, если фильтры пусты).
- Внутри модала: кнопка «🎲 Другая игра» (новый случайный выбор) и «Закрыть».
- Закрытие: клик по фону, кнопка «Закрыть», клавиша Escape.
7. Контент
7.1. Каталог игр (≈44 игры)
Распределение по категориям:
- 🌳 На улице — 19 игр (по всем сезонам).
- ♟️ Настольные — 5 игр.
- 🧠 Развивающие — 12 игр.
- 💻 Компьютерные — 4 игры.
- ✨ Прочие — 4 игры.
7.2. Загадки — 20 штук
- 15 простых для малыша 3+ (животные, предметы, природа).
- 5 логических для взрослых и 22-летнего.
7.3. Шарады — 6 штук
На сложение слов: ПАР+УС=ПАРУС, БАР+СУК=БАРСУК, ЛИСТ+ПАД=ЛИСТОПАД, САМ+ЛЁТ=САМОЛЁТ, ПАР+ВОЗ=ПАРОВОЗ, ЛЁД+КОЛ=ЛЕДОКОЛ.
7.4. Большая компания — 6 сценариев
Мафия, Крокодил/Шарады, Музыкальные стулья, Семейный квиз, Квест по станциям, Фотобудка + челленджи.
8. Нефункциональные требования
8.1. Адаптивность
- Mobile-first. Корректно отображается на телефоне (от 320px), планшете и десктопе.
- Сетка карточек: 1 колонка на телефоне, 2 на планшете, 3 на десктопе (
repeat(auto-fill, minmax(290px, 1fr))). - Hero-заголовок уменьшается на мобиле (48px → 33px).
8.2. Производительность
- Один файл
index.html(HTML + CSS + JS inline), без внешних зависимостей и сборщиков. - Без тяжёлых библиотек (никакого Bootstrap, jQuery, npm-зависимостей).
- Мгновенная загрузка и работа офлайн после открытия.
8.3. Доступность и удобство
- Крупные тап-зоны (чипы, карточки, кнопки).
- Контрастный текст, читаемые шрифты системного стека.
- Эмодзи как иконки (не требуют шрифтовых загрузок).
8.4. Браузеры
- Современные браузеры с поддержкой CSS custom properties и grid (все актуальные Chrome/Safari/Firefox/Edge).
9. Технологический стек
| Слой | Технология |
|---|---|
| Разметка | HTML5 |
| Стили | CSS3 (inline, custom properties, grid, media queries) |
| Логика | Vanilla JavaScript (ES6+, template literals) |
| Данные | Встроенные JS-массивы (GAMES, RIDDLES, CHARADES, BIG) |
| Сборка | отсутствует |
| Хостинг | Gitea Pages (ветка pages), обслуживается Caddy |
| Контроль версий | Git, self-hosted Gitea на git.vibe42.kz |
Ограничения платформы (песочница Vibe42):
- Только статика. Никакого бэкенда, БД, аутентификации, Docker, сборщиков.
- Публикация — push/загрузка файлов в ветку
pagesрепозитория Gitea.
10. Дизайн-система
Палитра (тёплая, дружелюбная)
| Token | Hex | Назначение |
|---|---|---|
--bg |
#FFF9F0 |
Основной фон (кремовый) |
--ink |
#2A2530 |
Основной текст (тёмный тёплый) |
--card |
#FFFFFF |
Фон карточек |
--muted |
#7A7382 |
Вторичный текст |
--line |
#EEE6D8 |
Границы, сепараторы |
--accent |
#FF6B5B |
Основной акцент (коралл) |
--accent-soft |
#FFE7E2 |
Мягкий фон акцента |
--accent2 |
#2EC4B6 |
Вторичный акцент (бирюза) |
--accent2-soft |
#DDF6F3 |
Мягкий фон бирюзы |
--gold |
#FFB627 |
Декоративный |
Цвета категорий
- На улице
#5BBF8A· Настольные#8B6FD0· Развивающие#FF9149· Компьютерные#4A90E2· Прочие#E85A8C· Большая компания#F2A900
Типографика
- Шрифт: системный стек
-apple-system, BlinkMacSystemFont, "Segoe UI", Inter, system-ui, sans-serif. - h1 (hero) — 48px / 800 (мобила 33px); h2 (секции) — 30–34px / 800; h3 (карточки) — 19px / 800; body — 17px / 400.
Лейаут
- Контейнер
max-width: 1140px. - Карточки
border-radius: 16–18px, кнопки и чипы —8–999px.
11. Метрики успеха
- M1. Все запланированные разделы (5 шт.) присутствуют и работают.
- M2. Каталог содержит ≥ 40 игр, из них ≥ 15 доступных 3-летке.
- M3. Все фильтры (категория, сезон, возраст, поиск) корректно фильтруют и сбрасываются.
- M4. Страница открывается на телефоне без горизонтального скролла.
- M5. Время до полной интерактивности < 1 сек (один файл, без внешних запросов).
12. Roadmap (что можно добавить)
Ближайшее (P1)
- Картинки/иллюстрации к играм (плейсхолдеры или эмодзи-сцены).
- Фильтр «по количеству игроков» (2 / 3–4 / 5+).
- Возможность «сохранить» любимые игры (localStorage, без бэкенда).
- Печатная версия карточек (печать выбранного набора).
Среднесрочное (P2)
- Больше загадок и шарад (по темам: про кошек, про еду, про транспорт).
- Режим «счётчик очков» для большой компании (квиз, шарады по командам).
- Звуковые эффекты / анимации для малыша.
- Генератор «план выходного дня» — подборка 3 игр на сезон.
Долгосрочное (P3)
- Многоязычность (русский / казахский / английский).
- Загрузка собственных игр семьёй через редактор (localStorage).
- PWA-установка на телефон как приложение.
13. Известные ограничения и риски
- Публикация через Gitea API.
git pushдля аккаунта заблокирован pre-receive hook сервера («User permission denied»). Обход — загрузка файлов через Gitea Contents API напрямую в веткуpages. Требует ручного шага при каждом обновлении. - Нет редактирования контента пользователем. Все данные зашиты в
index.html. Добавление игр требует правки кода. - Офлайн-данные. Нет синхронизации между устройствами — каждый открывает свою копию.
- Эмодзи-рендеринг зависит от ОС устройства (на старых Windows могут отличаться).
14. Статус реализации
| Раздел | Статус |
|---|---|
| Hero + навигация | ✅ Готово |
| Каталог с фильтрами (категория/сезон/возраст/поиск) | ✅ Готово |
| Карточка игры (как играть + что развивает) | ✅ Готово |
| Игры по сезонам | ✅ Готово |
| Фильтр «Для 3-летки» | ✅ Готово |
| Шарады и загадки | ✅ Готово |
| Для большой компании | ✅ Готово |
| «Сюрприз» (модал) | ✅ Готово |
| Адаптив под телефон | ✅ Готово |
| Публикация на Pages | ✅ Готово (через API) |
| Картинки к играм | ⏳ Не сделано (roadmap P1) |
| Сохранение избранного | ⏳ Не сделано (roadmap P1) |
Документ сформирован на основе реализованного продукта. Обновлять при добавлении разделов из roadmap.