Files
chatballs/apps/web-chat/src/styles.css
T
AndreyandClaude Fable 5.1 a891947016 🧹 chore!: продукт без привязок к вендору — домены, почта, продукты, скоупы, события виджета
- нет зашитых доменов: help-домен по умолчанию localhost (задаёт установщик через
  CHATBALLS_HELP_BASE_DOMAIN), фронт определяет портал помощи пробой /api/v1/help/,
  ALLOWED_HOSTS без вендорских хостов, CI environment url — из CHATBALLS_APP_DOMAIN
- DEFAULT_FROM_EMAIL по умолчанию no-reply@localhost; JWT-аудитория support-токена
  chatballs.support; загрузчик виджета: window.ChatballsChat, события chatballs-chat-*
- «Контакты»: продукты берутся из данных организации ({code, name}), цвет —
  детерминированно по коду; зашитый список продуктов вендора убран
- npm-скоупы @chatballs/*, тема chatballsTheme/buildTheme
- тестовый bootstrap: организация demo, сотрудник staff.member@example.org,
  продукты site/app; фикстуры на example.com
- убрана мёртвая привязка Shell к e-mail сотрудника вендора

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-06 00:33:22 +03:00

66 lines
1.7 KiB
CSS

html,
body,
#root {
height: 100%;
margin: 0;
}
* {
box-sizing: border-box;
}
/*
Дизайн-токены для страницы звонка /calls/<invite> (дизайн-система Chatballs).
На основной странице виджета (встраиваемого) эти переменные не нужны, но экран
аудиозвонка из @chatballs/ui (audio-call.css) использует var(--font-sans) и радиусы,
которых в web-chat нет. Значения — системный font stack Ant Design и токены
радиусов из baseline tokens/typography.css + tokens/effects.css (ADR-HUB-0013:
внешние веб-шрифты не подключаются).
*/
:root {
--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
--radius-lg: 9px;
--radius-4xl: 14px;
--radius-pill: 999px;
--success: #52c41a;
--error: #ff4d4f;
}
@keyframes wcTyping {
0%, 80%, 100% { opacity: 0.25; transform: translateY(0); }
40% { opacity: 1; transform: translateY(-2px); }
}
/* Экран звонка (baseline «Экран звонка.dc.html») */
@keyframes edvSpin {
to { transform: rotate(360deg); }
}
@keyframes edvRing {
0% { transform: scale(1); opacity: 0.55; }
100% { transform: scale(2.3); opacity: 0; }
}
.public-call-page {
min-height: 100vh;
display: flex;
align-items: center;
justify-content: center;
padding: 16px;
background: #f5f6f8;
}
.public-call-page.is-audio {
background: #0b0b12;
font-family: var(--font-sans);
}
@media (max-width: 480px) {
.public-call-page {
padding: 0;
align-items: stretch;
}
}