Allow organization administrators to set default colors for streams
See original GitHub issueZulip’s stream colors are currently generated independently for each user (with an ordered sequence of colors). This is nice for the onboarding experience, because it lets us avoid near-duplicate colors. But for larger organizations, one can often want to use these for organization (E.g. one can imagine orange/red shades for alerts streams, or purple for social streams, or whatever).
See #15078, this thread and this thread for some background/requests related to this.
Here’s a rough technical design:
- We’ll add a
Stream.default_colorfield, in the same format ofSubscription.color.Noneshould encode no default color (i.e. the current behavior), and be the default for both new and existing streams. This is probably one commit. - We add a commit changing
Subscription.colorto be nullable, with the intent being thatNonewill mean that we want to inherit the stream-level color. We’ll want to make sure the API serves the stream-level color in this case, so that clients (web/mobile/terminal) that are just doing display don’t need to know about the internals of how default colors are implemented. - We’ll add this new field to
Stream.API_FIELDS, and update the API documentation. This and the above is probably one commit. - We adjust the
bulk_add_subscriptionscode path to setSubscription.color = NoneifStream.coloris set and the client didn’t select a color – which will mean that the user want to just use the default color for that stream. We’ll also require frontend changes as well for local echo reasons (I think currently clients pick the color when a new subscription is created via the client, not the API / another user subscribing you). - We add UI on the Stream settings “Change” panel for the stream to change a stream’s default color. (We plan to reorganize “Stream settings”, but it should go with the other settings there, I think).
- We adjust the UI for picking your personal color to show the default color for the stream as an option.
- We’ll want a notification-bot message to the “stream events” topic when a stream’s default color is changed.
- (We document it, etc.)
I don’t think this issue is super high priority compared to other feature requests, but we have heard it a few times, and I’d be happy to merge an implementation of this design.
After all the above is done, we might imagine a follow-up project to think about whether we want to change the default for new streams (likely at least optionally) or just require default colors for streams, but that’ll basically just a continuation of the above, so we can think about that more deeply once we’ve implemented what is described here.
Issue Analytics
- State:
- Created 2 years ago
- Reactions:3
- Comments:9 (6 by maintainers)

Top Related StackOverflow Question
Perhaps a better way to say this could be: if a user has not explicitly changed the colour from default, and an admin makes a change to the default stream colour, that those changes should apply to everyone, even with multiple default colour changes made by the admin over time. Hope that’s helpful.
+1
As a Zulip organization admin, I spent a fair amount of time carefully choosing meaningful RGB colors for our Zulip streams.
I had no idea that these colors didn’t apply to other users. I just realized that everyone gets random colors! 😥