feat: add open alpha banner
This commit is contained in:
@@ -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: интерфейс показывает весь корректно загруженный разрешённый каталог, сохраняя требования полноты и модерации.
|
||||
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
<aside class="alpha-banner" aria-label="Информация об открытой альфе">
|
||||
<div><strong><i></i>Открытая альфа</strong><span>Данные могут быть неполными — источник и качество всегда указаны.</span></div>
|
||||
<nav aria-label="Ссылки открытой альфы"><a href="/status">Статус данных</a><a href="/rules">Как это работает</a><a class="alpha-banner__cta" href="/report">Добавить улов</a></nav>
|
||||
</aside>
|
||||
@@ -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({
|
||||
<nav aria-label="Разделы сайта"><a class:list={{active:path === "/"}} aria-current={path === "/" ? "page" : undefined} href="/"><FishingIcon name="float"/> <span>Сейчас клюёт</span></a><a class:list={{active:path.startsWith("/waterbodies") || path.startsWith("/fish")}} aria-current={path.startsWith("/waterbodies") || path.startsWith("/fish") ? "page" : undefined} href="/waterbodies"><FishingIcon name="ripple"/> <span>Каталог</span></a><a class:list={{active:path.startsWith("/records")}} aria-current={path.startsWith("/records") ? "page" : undefined} href="/records"><FishingIcon name="trophy"/> <span>Рекорды</span></a><a class:list={{active:path.startsWith("/report")}} aria-current={path.startsWith("/report") ? "page" : undefined} href="/report"><FishingIcon name="plus"/> <span>Добавить улов</span></a></nav>
|
||||
<p class="live-badge"><span></span> Свежие данные и честная оценка</p>
|
||||
</header>
|
||||
<AlphaBanner />
|
||||
<main id="main-content" tabindex="-1"><slot /></main>
|
||||
<footer><a href="/" class="brand"><span class="brand-mark"><FishingIcon name="hook" size={24}/></span><span class="brand-name"><span>Ни хвоста,</span><strong>ни чешуи</strong></span></a><p>Неофициальный проект для игроков Russian Fishing 4. <a href="/status">Статус</a> · <a href="/rules">Правила</a> · <a href="/privacy">Конфиденциальность</a></p><span>НХНЧ · 2026</span></footer>
|
||||
</body>
|
||||
|
||||
@@ -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}}
|
||||
+2
-1
@@ -130,7 +130,8 @@
|
||||
- [x] Собрать единый визуальный «паспорт данных»: источник, свежесть, полнота и доверие; применить к карточкам активности (7 сентября 2026).
|
||||
- [x] Добавить публичную легенду цветов источников и статусов качества на странице `/status` (7 сентября 2026).
|
||||
- [ ] Добавить skeleton-состояния для динамических публичных блоков.
|
||||
- [ ] Добавить ненавязчивый баннер открытой альфы и канал обратной связи.
|
||||
- [x] Добавить ненавязчивый глобальный баннер открытой альфы со ссылками на статус, правила и отправку улова (7 сентября 2026).
|
||||
- [ ] Подключить к баннеру публичный канал обратной связи после получения его адреса; не раскрывать частный Gitea.
|
||||
- [x] Дополнить пустые состояния собственной CSS-иллюстрацией поплавка и ряби с поддержкой `prefers-reduced-motion` (7 сентября 2026).
|
||||
|
||||
### Производительность, данные и эксплуатация
|
||||
|
||||
Reference in New Issue
Block a user