The Zulip application’s CSS can be found in the static/styles/
directory. Zulip uses Bootstrap as its
main third-party CSS library.

Zulip currently does not use any CSS preprocessors, and is organized
into several files. For most pages, the CSS is combined into a single
CSS file by the static asset pipeline,
controlled by the PIPELINE_CSS code in zproject/settings.py.

If you aren’t experienced with doing web development and want to make
CSS changes, we recommend reading the excellent Chrome web inspector
guide on editing HTML/CSS,
especially the section on
CSS
to learn about all the great tools that you can use to modify and test
changes to CSS interactively in-browser (without even having the
reload the page!).

Without care, it’s easy for a web application to end up with thousands
of lines of duplicated CSS code, which can make it very difficult to
understand the current styling or modify it. We would very much like
to avoid such a fate. So please make an effort to reuse existing
styling, clean up now-unused CSS, etc., to keep things maintainable.

When changing any part of the Zulip CSS, it’s important to check that
the new CSS looks good at a wide range of screen widths, from very
wide screen (e.g. 1920px) all the way down to narrow phone screens
(e.g. 480px).

For complex changes, it’s definitely worth testing in a few different
browsers to make sure things look the same.