Establish modular CSS naming conventions

Registered by Valerie Roske

This blueprint has been superseded. See the newer blueprint "All Horizon Look and Feel css should be moved into the default theme" for updated plans.

Summary
=======
To establish some CSS/SCSS conventions for Horizon.

Motivation
=========
Currently CSS is added to the project in an ad-hoc manner. It would be valuable to DRY up the CSS so our components can be more modular. This would allow us to take more advantage of the power of Sass and of cascading, particularly when creating custom themes.

As a first step towards the lofty goal of modularizing the architecture of our CSS, it is helpful to define what our CSS rules should look like. e.g. http://thesassway.com/advanced/modular-css-naming-conventions

Description
=========
This blueprint includes:

- Defining a set of naming conventions for our CSS
- Adding documentation/style guide for contributors and reviewers
- Creating some examples of these conventions in practice by refactoring some of the SCSS files in the root static folder
- Investigate if there is an appropriate CSS linter we can use

UX
===
Shouldn't affect end user experience as this is simply adding documentation and some refactoring.

Testing
======
- For the examples that get created, we will want to ensure we have adequate automated test coverage for those components, and should engage in a few manual tests. More info to come once we get there!

Outside Dependencies
==================
N/A

Requirements Update Required
========================
N/A

Doc Impact
==========
This blueprint is mainly about including some kind of documentation for contributors and reviewers to refer to.

Blueprint information

Status:
Complete
Approver:
None
Priority:
Undefined
Drafter:
Valerie Roske
Direction:
Needs approval
Assignee:
Pamela Ocampo
Definition:
Superseded
Series goal:
None
Implementation:
Not started
Milestone target:
None
Completed by
Rob Cresswell

Related branches

Sprints

Whiteboard

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.