# Тема оформления подписки

> Заголовок flowlock-theme — цвета интерфейса FlowLock для людей вашей подписки, формат значения и правила читаемости.

Провайдер может прислать с подпиской **тему оформления** — цвета интерфейса FlowLock. Приложение показывает её
людям вашей подписки, только если человек согласился: когда тема впервые появилась, FlowLock один раз спрашивает
«<имя подписки> предлагает свою тему. Применить?». ID провайдера для темы не нужен.

Формат свой. Чужие форматы тем (Happ `color-profile` и другие) FlowLock не читает.

## Как прислать

**Заголовок ответа** (в Remnawave — одна строка в Response Headers):

```
flowlock-theme: accent=#1F7A4D/#4CC38A; bg=#F4F7F5/#0E1411; card=#FFFFFF/#17201B; text=#10231A/#E6EFE9; muted=#5B6B62/#93A39A
```

**Строка в теле** — если заголовки добавить нельзя, первой строкой подписки-ссылок или base64:

```
#flowlock-theme: accent=#1F7A4D/#4CC38A; bg=#F4F7F5/#0E1411
```

Заголовок шлётся всем клиентам: другие клиенты неизвестный заголовок пропускают, угадывать по User-Agent не нужно.

## Значение

Поля через `;`, в каждом `ключ=цвет`. Цвет — `#RRGGBB` или пара `#светлая/#тёмная`: первая для светлой темы
приложения, вторая для тёмной. Один цвет без `/` — для обеих.

| Ключ     | Что красит                                           |
| -------- | ---------------------------------------------------- |
| `accent` | кнопки, переключатели, кольцо подключения, выделение |
| `bg`     | фон окна                                             |
| `card`   | карточки, панели, строки списка                      |
| `text`   | основной текст                                       |
| `muted`  | второстепенный текст                                 |

Все ключи необязательные. Неизвестные ключи и неверные цвета пропускаются, остальное работает. `none` или пустое
значение — темы нет. Заголовок длиннее 512 байт или строка тела длиннее 1024 байт не читаются (Remnawave обрезает
заголовки до 512 символов). В формате нет и не будет картинок, логотипов, шрифтов, градиентов и прозрачности.

## Читаемость

FlowLock проверяет контраст (WCAG) и при необходимости поправляет цвета: текст — не меньше 4.5:1 к фону и
карточкам, второстепенный текст и акцент — не меньше 3:1, текст на акценте подбирается сам. Фон должен подходить
стороне: светлый — для светлой темы, тёмный — для тёмной. Одиночный `bg=#FFFFFF` подходит только светлой
стороне, и в тёмной теме приложение оставит свой фон. Хотите обе стороны — задайте пару `bg=#светлый/#тёмный`.

Если что-то поправлено, в настройках оформления человек увидит «Тема провайдера поправлена для читаемости».

## Что видит человек

- Режим (системная, светлая или тёмная тема) выбирает человек, тема провайдера его не переключает.
- Тема меняется вместе с обновлениями подписки без новых вопросов. Пропала из ответа — пропала и в приложении, а
  свой акцент человека возвращается.
- Windows и Linux красят все пять цветов, macOS — акцент, фон и карточки основного окна.
- Своя тема человека важнее темы провайдера (см. [«Темы и обмен ими»](https://flowlock.cc/docs/user-themes.md)).
