Брендинг
Логотип, баннер и ссылки провайдера в карточке профиля.
Поля branding
| Поле | Что это | Допустимо |
|---|---|---|
iconUrl | логотип | https:// или data:image/... до 12 КБ |
bannerText | текст баннера | текст |
bannerUrl | куда ведёт клик по баннеру | ссылка* |
bannerColor | цвет баннера | #rrggbb, rgb(), hsl(), имя цвета |
bannerImage | фон карточки | только https:// |
webPageUrl | сайт | ссылка* |
supportUrl | поддержка | ссылка* |
communityUrl | канал или сообщество | ссылка* |
* https://, http://, tg:// или mailto:. Неверные значения BEAM молча отбрасывает, остальной профиль импортируется.
Логотип
Лучше всего webp 64×64 — это 1–3 КБ. По https логотип не утяжеляет ссылку, но грузится с вашего сервера при каждом показе.
HTTP-заголовки
Если подписка — обычный список ссылок, брендинг отдаётся заголовками ответа (или строками #key: value в теле).
| Заголовок | Что задаёт |
|---|---|
profile-title | название профиля (можно base64:...) |
announce | текст баннера (можно base64:...) |
support-url, profile-web-page-url, community-url | кнопки поддержки, сайта, канала |
icon-url | логотип, только https |
banner-color, banner-image, banner-url | цвет, фон и ссылка баннера |
Beam-Branding | весь branding разом: base64 от JSON |
Приоритет: branding в профиле → Beam-Branding → отдельные заголовки.
В заголовки не кладите data:-картинки — прокси режут длинные заголовки (~8 КБ). Только https-URL.
Remnawave
Название, анонс и ссылки — в Subscription → Settings. Логотип и цвета — правилом Response Rules для BEAM:
{
"name": "Beam",
"enabled": true,
"operator": "AND",
"conditions": [{ "headerName": "user-agent", "operator": "STARTS_WITH", "value": "BEAM/", "caseSensitive": false }],
"responseType": "XRAY_BASE64",
"responseModifications": {
"headers": [
{ "key": "icon-url", "value": "https://example.com/logo.png" },
{ "key": "banner-color", "value": "#6C5CE7" }
]
}
}Кнопка на странице подписки (Subpage Builder): "urlScheme": "beam://import/".
Баннер
Картинка ложится на фон карточки профиля: вписывается по высоте, прижата к правому краю, левая половина плавно исчезает под текстом.
Фрейм 1200 × 200 px (6:1).
| Зона | Координаты | Что туда |
|---|---|---|
| Затухание | x 0–600 | узор, градиент — уходит в прозрачность |
| Безопасная | x 600–1060, y 24–176 | маскот, логотип, главный арт |
| Кнопки | x 1060–1200 | только фон — сверху кнопки и бейджи |
| Края | y 0–24 и 176–200 | скругления, без мелких деталей |
- Заливайте фон на весь фрейм, без рамок и прозрачных краёв.
- Тёмный приглушённый арт — сверху белый текст.
- Без текста: название и логотип BEAM рисует сам.
- Крупные формы: на экране баннер уменьшается примерно в 3 раза.
| Формат | Как отдать |
|---|---|
| SVG — лучший вариант | https-URL с Content-Type: image/svg+xml, в корне viewBox="0 0 1200 200", шрифты кривыми |
| PNG / WebP / JPG | https-URL, 1200×200, желательно до 300 КБ |
