summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClement Ho <ClemMakesApps@gmail.com>2018-03-07 14:33:19 -0600
committerClement Ho <ClemMakesApps@gmail.com>2018-03-07 14:33:19 -0600
commitcc4c69a38bbe0d2f5e0edfe7ab61867f5356156b (patch)
tree1f8abe6c6d75d4b981e8df9ebbea6c7f4155eb3c
parent22198466ca79b5f41282198f363a81fdb2ab3f2f (diff)
downloadgitlab-ce-cc4c69a38bbe0d2f5e0edfe7ab61867f5356156b.tar.gz
Add scss style guidedocs-fe-scss
-rw-r--r--doc/development/new_fe_guide/style/scss.md51
1 files changed, 50 insertions, 1 deletions
diff --git a/doc/development/new_fe_guide/style/scss.md b/doc/development/new_fe_guide/style/scss.md
index 6f5e818d7db..1af10647d36 100644
--- a/doc/development/new_fe_guide/style/scss.md
+++ b/doc/development/new_fe_guide/style/scss.md
@@ -1,3 +1,52 @@
# SCSS style guide
-> TODO: Add content
+We use [SCSS Lint][scss-lint] to check our styles.
+
+> **Tip:**
+You can lint your SCSS locally by running `rake scss_lint`.
+
+> **Tip:**
+You can autofix your lint errors locally by using [CSSComb][cssComb]. After installing CSSComb, run `csscomb app/assets/stylesheets`. This won't fix all lint errors but it should fix most of them.
+
+## Selectors
+
+<a name="js-class"></a><a name="1.1"></a>
+- [1.1](#js-class) **Avoid styling js- classes** CSS class names with a `js-` prefix are not used for styling. They are purely used for querying the DOM.
+
+
+<a name="id-selectors"></a><a name="1.2"></a>
+- [1.2](#id-selectors) **Avoid ID selectors**
+
+```
+// Bad
+#my-element {
+ padding: 0;
+}
+
+// Good
+.my-element {
+ padding: 0;
+}
+```
+
+## Variables
+
+<a name="new-variables"></a><a name="2.1"></a>
+- [2.1](#new-variables) **Avoid creating new variables** Check to see if there is a similar variable before adding a new variable.
+
+## SCSS Lint
+
+<a name="disable-scss-lint"></a><a name="3.1"></a>
+- [3.1](#disable-scss-lint) **Disabling SCSS Lint rule** Avoid disable specific SCSS Lint rules. If you absolutely have to, make sure you comment a reason above the `disable` rule.
+
+```
+// This lint rule is disabled because the class name comes from a gem.
+// scss-lint:disable SelectorFormat
+.ui_indigo {
+ background-color: #333;
+}
+// scss-lint:enable SelectorFormat
+```
+
+[scss-lint]: https://github.com/brigade/scss-lint
+[cssComb]: http://csscomb.com/