diff --git a/apps/internal-ui/src/features/help-center/HelpCenterApp.tsx b/apps/internal-ui/src/features/help-center/HelpCenterApp.tsx index 549c3aa..9fe3ba4 100644 --- a/apps/internal-ui/src/features/help-center/HelpCenterApp.tsx +++ b/apps/internal-ui/src/features/help-center/HelpCenterApp.tsx @@ -64,7 +64,7 @@ export function HelpCenterApp() { ); } if (!manifest || !themeReady) { - return
; + return
; } return route.articleSlug ? diff --git a/apps/internal-ui/src/features/help-center/HelpLayout.tsx b/apps/internal-ui/src/features/help-center/HelpLayout.tsx index 57532bb..333fc88 100644 --- a/apps/internal-ui/src/features/help-center/HelpLayout.tsx +++ b/apps/internal-ui/src/features/help-center/HelpLayout.tsx @@ -42,11 +42,17 @@ export function HelpLayout({
{children}
{portal.webWidgetKey && } diff --git a/apps/internal-ui/src/features/help-center/styles-layout.css b/apps/internal-ui/src/features/help-center/styles-layout.css index 8d2a4b1..eb4aabe 100644 --- a/apps/internal-ui/src/features/help-center/styles-layout.css +++ b/apps/internal-ui/src/features/help-center/styles-layout.css @@ -153,17 +153,37 @@ html.help-center-document body { } .help-footer { - display: flex; + display: grid; width: min(1024px, calc(100% - 48px)); margin: 80px auto 0; padding: 34px 0 42px; - align-items: center; - justify-content: space-between; + gap: 18px; border-top: 1px solid var(--help-line-soft); color: var(--help-text-muted); font-size: 14px; } +.help-footer-row { + display: flex; + align-items: center; + justify-content: space-between; +} + +.help-footer-powered { + font-size: 12px; + opacity: 0.8; +} + +.help-footer-powered a { + color: inherit; + text-decoration: underline; + text-underline-offset: 2px; +} + +.help-footer-powered a:hover { + color: var(--help-ink); +} + .help-footer-brand { gap: 9px; font-size: 16px; @@ -256,8 +276,7 @@ html.help-center-document body { color: var(--help-text-muted); } -.help-fatal, -.help-boot-loading { +.help-fatal { display: grid; min-height: 100vh; place-content: center; diff --git a/apps/internal-ui/src/features/help-center/styles-responsive.css b/apps/internal-ui/src/features/help-center/styles-responsive.css index 383a975..b1ce20a 100644 --- a/apps/internal-ui/src/features/help-center/styles-responsive.css +++ b/apps/internal-ui/src/features/help-center/styles-responsive.css @@ -115,10 +115,14 @@ } .help-footer { + gap: 14px; + margin-top: 54px; + } + + .help-footer-row { display: grid; justify-content: start; gap: 12px; - margin-top: 54px; } .help-support-launcher { diff --git a/apps/internal-ui/src/i18n/en.ts b/apps/internal-ui/src/i18n/en.ts index c1cc0e6..e2c8c05 100644 --- a/apps/internal-ui/src/i18n/en.ts +++ b/apps/internal-ui/src/i18n/en.ts @@ -905,6 +905,7 @@ export const en: Record = { "portals.invalid_yaml": "Invalid YAML", "portals.ip_of_installation": "{value} · this installation's IP", "portals.knowledge_base_support": "Knowledge base and support", + "portals.powered_by": "Powered by", "portals.language": "Language", "portals.language_2": "Language:", "portals.language_3": "LANGUAGE", diff --git a/apps/internal-ui/src/i18n/ru.ts b/apps/internal-ui/src/i18n/ru.ts index 64ae37f..b161a57 100644 --- a/apps/internal-ui/src/i18n/ru.ts +++ b/apps/internal-ui/src/i18n/ru.ts @@ -906,6 +906,7 @@ export const ru = { "portals.invalid_yaml": "Невалидный YAML", "portals.ip_of_installation": "{value} · IP этой установки", "portals.knowledge_base_support": "База знаний и поддержка", + "portals.powered_by": "Работает на", "portals.language": "Язык", "portals.language_2": "Язык:", "portals.language_3": "ЯЗЫК", diff --git a/apps/internal-ui/src/layout/styles.css b/apps/internal-ui/src/layout/styles.css index 9d25db4..e7487e2 100644 --- a/apps/internal-ui/src/layout/styles.css +++ b/apps/internal-ui/src/layout/styles.css @@ -266,8 +266,7 @@ .hub-brand-mark.has-logo { overflow: hidden; color: inherit; - background: var(--surface-card); - border: 1px solid var(--n-7); + background: transparent; } .hub-brand-mark img { diff --git a/apps/internal-ui/src/main.tsx b/apps/internal-ui/src/main.tsx index e584dde..eeadb93 100644 --- a/apps/internal-ui/src/main.tsx +++ b/apps/internal-ui/src/main.tsx @@ -29,10 +29,10 @@ function SurfaceApp() { }, [surface]); if (surface === "loading") { - return
; + return
; } return surface === "help" - ? }> + ? }> : ; } diff --git a/apps/internal-ui/src/shared/state.css b/apps/internal-ui/src/shared/state.css index 3e1f3ea..c244080 100644 --- a/apps/internal-ui/src/shared/state.css +++ b/apps/internal-ui/src/shared/state.css @@ -15,3 +15,17 @@ color: var(--n-3); font-size: 13px; } + +/* Загрузчик портала до прихода манифеста и темы. Живёт в общем CSS, а не в + чанке портала: чанк грузится лениво, и первый кадр иначе рисуется без + стилей. Фиксированный слой на весь экран — центр не зависит от отступов + и высоты документа. */ +.help-boot-loading { + position: fixed; + inset: 0; + display: grid; + place-items: center; + margin: 0; + background: var(--help-bg, var(--surface-page)); + color: var(--help-ink, var(--text-body)); +} diff --git a/apps/internal-ui/src/shared/ui.tsx b/apps/internal-ui/src/shared/ui.tsx index 9854aba..18fbde0 100644 --- a/apps/internal-ui/src/shared/ui.tsx +++ b/apps/internal-ui/src/shared/ui.tsx @@ -108,7 +108,7 @@ export function LoadingState({ variant = "page" }: { variant?: "page" | "inline" } export function LoadingScreen() { - return
; + return
; } export function ErrorScreen({ retry }: { retry: () => void }) {