feat(ui): общий футер на всех страницах, кроме комнаты
`AppFooter` — версия инстанса из публичного `/api/health` (не требует авторизации, поэтому работает и на экранах входа; поля `version` может не быть — тогда версия не показывается) плюс копирайт с ТЕКУЩИМ годом и ссылкой на профиль автора. Подключён во все раскладки: `page-shell` (календарь, админка, профиль, мои конференции), `AuthLayout` (вход, регистрация, подтверждение email), `join-shell` и `lobby-shell`. В комнате конференции футера нет — там полноэкранное видео. Прежний футер админки (`.admin-footer`) удалён вместе со стилем — дубля не осталось. В брендовой панели экранов auth строка «© 2026 VidConf · self-hosted» ужата до «self-hosted»: год там был захардкожен, а два копирайта на одном экране — дубль.
This commit is contained in:
38
frontend/src/styles/footer.css
Normal file
38
frontend/src/styles/footer.css
Normal file
@@ -0,0 +1,38 @@
|
||||
/*
|
||||
* VidConf — общий футер приложения (см. `components/layout/AppFooter.tsx`).
|
||||
*
|
||||
* Файл импортируется самим компонентом, а не страницами: футер стоит в четырёх
|
||||
* разных раскладках (`page-shell`, `AuthLayout`, `join-shell`, `lobby-shell`),
|
||||
* и таскать импорт по всем страницам смысла нет.
|
||||
*
|
||||
* Футер — обычный блок в потоке (не `position: fixed`), поэтому контент он
|
||||
* не перекрывает ни на какой высоте экрана.
|
||||
*/
|
||||
|
||||
.app-footer {
|
||||
padding: var(--space-5) var(--space-4);
|
||||
font: var(--text-caption);
|
||||
color: var(--color-ink-400);
|
||||
text-align: center;
|
||||
}
|
||||
.app-footer a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
|
||||
.app-footer a:hover { color: var(--color-ink-700); }
|
||||
|
||||
/* Оболочка страниц (`page-shell`): выравниваем футер по ширине контента
|
||||
(`main.page-main` — max-width 1440 + боковые отступы) и отделяем линией,
|
||||
как это делал прежний футер админки. */
|
||||
.page-shell .app-footer {
|
||||
max-width: 1440px;
|
||||
margin: 0 auto;
|
||||
padding: var(--space-4) var(--space-8) var(--space-6);
|
||||
border-top: 1px solid var(--color-border);
|
||||
}
|
||||
|
||||
/* Экраны auth: футер — последний элемент правой колонки с формой, поэтому
|
||||
ограничиваем его шириной самой формы (`.screen-block`, 440px), иначе
|
||||
центрированная строка «уезжала» бы вправо от неё. */
|
||||
.form-panel .app-footer { max-width: 440px; width: 100%; padding-inline: 0; margin-top: var(--space-8); }
|
||||
|
||||
@media (max-width: 640px) {
|
||||
.page-shell .app-footer { padding: var(--space-4) var(--space-4) var(--space-5); }
|
||||
}
|
||||
Reference in New Issue
Block a user