mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-03 21:43:21 +00:00 
			
		
		
		
	docs: Add documentation on HTML and CSS.
This commit is contained in:
		
							
								
								
									
										72
									
								
								docs/html_css.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										72
									
								
								docs/html_css.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,72 @@
 | 
			
		||||
# HTML and CSS
 | 
			
		||||
 | 
			
		||||
## Zulip CSS organization
 | 
			
		||||
 | 
			
		||||
The Zulip application's CSS can be found in the `static/styles/`
 | 
			
		||||
directory.  Zulip uses [Boostrap](http://getbootstrap.com/) 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](http://zulip.readthedocs.io/en/latest/front-end-build-process.html),
 | 
			
		||||
controlled by the `PIPELINE_CSS` code in `zproject/settings.py`.
 | 
			
		||||
 | 
			
		||||
The CSS files are:
 | 
			
		||||
 | 
			
		||||
* `portico.css` - Main CSS for logged-out pages
 | 
			
		||||
* `pygments.css` - CSS for Python syntax highlighting
 | 
			
		||||
* `activity.css` - CSS for the `activity` app
 | 
			
		||||
* `fonts.css` - Fonts for text in the Zulip app
 | 
			
		||||
* `static/styles/thirdparty-fonts.css` - Font Awesome (used for icons)
 | 
			
		||||
 | 
			
		||||
The CSS for the Zulip web application UI is primarily here:
 | 
			
		||||
 | 
			
		||||
* `settings.css` - CSS for the Zulip settings and administration pages
 | 
			
		||||
* `zulip.css` - CSS for the rest of the Zulip logged-in app
 | 
			
		||||
 | 
			
		||||
We are in the process of [splitting zulip.css into several more
 | 
			
		||||
files](https://github.com/zulip/zulip/issues/731); help with that
 | 
			
		||||
project is very welcome!
 | 
			
		||||
 | 
			
		||||
## Editing Zulip CSS
 | 
			
		||||
 | 
			
		||||
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](https://developer.chrome.com/devtools/docs/dom-and-styles),
 | 
			
		||||
especially the [section on
 | 
			
		||||
CSS](https://developer.chrome.com/devtools/docs/dom-and-styles#styles)
 | 
			
		||||
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!).
 | 
			
		||||
 | 
			
		||||
## CSS Style guidelines
 | 
			
		||||
 | 
			
		||||
### Avoid duplicated code
 | 
			
		||||
 | 
			
		||||
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.
 | 
			
		||||
 | 
			
		||||
### Be consistent with existing similar UI
 | 
			
		||||
 | 
			
		||||
Ideally, do this by reusing existing CSS declarations, so that any
 | 
			
		||||
improvements we make to the styling can improve all similar UI
 | 
			
		||||
elements.
 | 
			
		||||
 | 
			
		||||
### Use clear, unique names for classes and object IDs
 | 
			
		||||
 | 
			
		||||
This makes it much easier to read the code and use `git grep` to find
 | 
			
		||||
where a particular class is used.
 | 
			
		||||
 | 
			
		||||
## Validating CSS
 | 
			
		||||
 | 
			
		||||
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.
 | 
			
		||||
@@ -71,6 +71,7 @@ Contents:
 | 
			
		||||
   markdown
 | 
			
		||||
   front-end-build-process
 | 
			
		||||
   schema-migrations
 | 
			
		||||
   html_css
 | 
			
		||||
   full-text-search
 | 
			
		||||
   translating
 | 
			
		||||
   logging
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user