Documentation · For providers
Subscription colour theme
The flowlock-theme header: FlowLock interface colours for the people on your subscription, the value format and the readability rules.
A provider can send a colour theme with the subscription: the colours of the FlowLock interface. The app shows it
to the people on your subscription only if they agree: when the theme first appears, FlowLock asks once, “
The format is FlowLock's own. FlowLock doesn't read other theme formats (Happ color-profile and others).
How to send it
Response header (in Remnawave: one line in Response Headers):
flowlock-theme: accent=#1F7A4D/#4CC38A; bg=#F4F7F5/#0E1411; card=#FFFFFF/#17201B; text=#10231A/#E6EFE9; muted=#5B6B62/#93A39ALine in the body: if you can't add headers, as the first line of a link-list or base64 subscription:
#flowlock-theme: accent=#1F7A4D/#4CC38A; bg=#F4F7F5/#0E1411The header goes to every client: other clients skip an unknown header, so there is no need to guess by User-Agent.
Value
Fields are separated by ;, each is key=colour. A colour is #RRGGBB or a pair #light/#dark: the first for the
app's light theme, the second for the dark one. A single colour without / is used for both.
| Key | What it colours |
|---|---|
accent |
buttons, switches, the connection ring, selection |
bg |
window background |
card |
cards, panels, list rows |
text |
main text |
muted |
secondary text |
All keys are optional. Unknown keys and invalid colours are skipped, and the rest works. none or an empty value means
no theme. A header longer than 512 bytes or a body line longer than 1024 bytes isn't read (Remnawave cuts headers to
512 characters). The format has no images, logos, fonts, gradients or transparency, and never will.
Readability
FlowLock checks contrast (WCAG) and adjusts the colours when needed: text at least 4.5:1 against the background and
cards, secondary text and accent at least 3:1, and the text on the accent is picked automatically. The background must
suit its side: a light one for the light theme, a dark one for the dark theme. A single bg=#FFFFFF suits only the
light side, and in the dark theme the app keeps its own background. If you want both sides, give a pair
bg=#light/#dark.
If anything was adjusted, the person sees “The provider theme was adjusted for readability” in the appearance settings.
What the person sees
- The person chooses the mode (system, light or dark theme); the provider's theme doesn't switch it.
- The theme changes along with subscription refreshes without asking again. If it disappears from the response, it disappears from the app too, and the person's own accent comes back.
- Windows and Linux use all five colours; macOS uses the accent, background and cards of the main window.
- The person's own theme wins over the provider's (see “Themes and sharing them”).
This page in Markdown · Every page is available as Markdown: add .md to its address without the trailing slash. The list is in llms.txt, everything at once in llms-full.txt.