mirror of
https://github.com/dartdavros/chatballs.git
synced 2026-10-05 01:14:58 +03:00
- нет зашитых доменов: 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>
66 lines
1.7 KiB
CSS
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;
|
|
}
|
|
}
|