diff --git a/README.md b/README.md index 5c3d88d..5b42e73 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ RF4 Spotter — неофициальный сервис свежих точек ## Статус разработки -Функциональный MVP и локальный production-контур готовятся к открытой альфе: официальный импорт, пользовательские заявки, модерация, объяснимый индекс, staging внешних источников, адаптивный Astro UI, миграции, резервное копирование, retention, мониторинг и security/accessibility-проверки реализованы. Автоматические импорты внешних источников выключены. Публичный запуск блокируют покупка и настройка сервера, DNS/TLS, реальные секреты, внешний backup, канал уведомлений и публичные страницы правил/privacy. +Функциональный MVP и локальный production-контур готовятся к открытой альфе: официальный импорт, пользовательские заявки, модерация, объяснимый индекс, staging внешних источников, адаптивный Astro UI, миграции, резервное копирование, retention, мониторинг и security/accessibility-проверки реализованы. На всех страницах подключён компактный баннер открытой альфы со ссылками на статус, правила и отправку улова. Автоматические импорты внешних источников выключены. Публичный запуск блокируют покупка и настройка сервера, DNS/TLS, реальные секреты, внешний backup, канал уведомлений и публичные страницы правил/privacy; публичный адрес обратной связи ещё не задан. RF4DB/RF4-STAT/RF4MAP/RF4 Posts сначала принимаются в изолированный staging. Полные записи с ранее подтверждёнными алиасами источника публикуются автоматически; новые соответствия и неполные записи остаются на ручной проверке. Для разрешённых community-источников действует интервал не менее 30 минут на источник. Открытая альфа не использует продуктовый allowlist: интерфейс показывает весь корректно загруженный разрешённый каталог, сохраняя требования полноты и модерации. diff --git a/apps/web/src/components/AlphaBanner.astro b/apps/web/src/components/AlphaBanner.astro new file mode 100644 index 0000000..5129b81 --- /dev/null +++ b/apps/web/src/components/AlphaBanner.astro @@ -0,0 +1,4 @@ + diff --git a/apps/web/src/layouts/Layout.astro b/apps/web/src/layouts/Layout.astro index 968898d..678c859 100644 --- a/apps/web/src/layouts/Layout.astro +++ b/apps/web/src/layouts/Layout.astro @@ -8,7 +8,9 @@ import "../styles/coordinate-radar.css"; import "../styles/activity-timeline.css"; import "../styles/fish-silhouette.css"; import "../styles/empty-states.css"; +import "../styles/alpha-banner.css"; import FishingIcon from "../components/FishingIcon.astro"; +import AlphaBanner from "../components/AlphaBanner.astro"; const { title = "RF4 Spotter — свежие точки клёва Russian Fishing 4", description = "Свежие точки, уловы и честная оценка активности в Russian Fishing 4 с обязательным указанием источников.", @@ -66,6 +68,7 @@ const jsonLd = JSON.stringify({

Свежие данные и честная оценка

+
diff --git a/apps/web/src/styles/alpha-banner.css b/apps/web/src/styles/alpha-banner.css new file mode 100644 index 0000000..1c6b801 --- /dev/null +++ b/apps/web/src/styles/alpha-banner.css @@ -0,0 +1 @@ +.alpha-banner{width:min(1480px,calc(100% - 48px));min-height:39px;margin:0 auto 8px;padding:7px 9px 7px 13px;display:flex;align-items:center;justify-content:space-between;gap:18px;border:1px solid #c7d3ca;border-radius:11px;background:linear-gradient(90deg,#e8efdf,#f7f9f3);color:#405552;font-size:11px}.alpha-banner>div,.alpha-banner strong,.alpha-banner nav{display:flex;align-items:center;gap:10px}.alpha-banner strong{text-transform:uppercase;letter-spacing:.08em;color:var(--deep);white-space:nowrap}.alpha-banner strong i{width:7px;height:7px;border-radius:50%;background:#789f35;box-shadow:0 0 0 4px #789f3518}.alpha-banner nav a{text-underline-offset:3px;white-space:nowrap}.alpha-banner__cta{padding:6px 10px;border-radius:7px;background:var(--deep);color:#fff;text-decoration:none}@media(max-width:720px){.alpha-banner{width:calc(100% - 28px);margin-top:9px}.alpha-banner>div>span,.alpha-banner nav a:not(.alpha-banner__cta){display:none}} diff --git a/docs/ROADMAP.md b/docs/ROADMAP.md index b3afe8c..8ae98bf 100644 --- a/docs/ROADMAP.md +++ b/docs/ROADMAP.md @@ -130,7 +130,8 @@ - [x] Собрать единый визуальный «паспорт данных»: источник, свежесть, полнота и доверие; применить к карточкам активности (7 сентября 2026). - [x] Добавить публичную легенду цветов источников и статусов качества на странице `/status` (7 сентября 2026). - [ ] Добавить skeleton-состояния для динамических публичных блоков. -- [ ] Добавить ненавязчивый баннер открытой альфы и канал обратной связи. +- [x] Добавить ненавязчивый глобальный баннер открытой альфы со ссылками на статус, правила и отправку улова (7 сентября 2026). +- [ ] Подключить к баннеру публичный канал обратной связи после получения его адреса; не раскрывать частный Gitea. - [x] Дополнить пустые состояния собственной CSS-иллюстрацией поплавка и ряби с поддержкой `prefers-reduced-motion` (7 сентября 2026). ### Производительность, данные и эксплуатация