Created
April 4, 2018 09:03
-
-
Save mauroreisvieira/30f353625d3ed3549d8e6ab69bba1e83 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
extends: | |
- stylelint-config-standard | |
- stylelint-config-recommended-scss | |
ignoreFiles: | |
- node_modules/**/* | |
plugins: | |
- stylelint-scss | |
- stylelint-order | |
rules: | |
# Follow best practices | |
font-family-name-quotes: always-where-recommended | |
# http://stackoverflow.com/questions/2168855/is-quoting-the-value-of-url-really-necessary | |
function-url-quotes: never | |
# https://www.w3.org/TR/selectors/#attribute-selectors | |
# http://stackoverflow.com/q/3851091 | |
selector-attribute-quotes: always | |
# Double-quotes are our convention throughout our codebase within (S)CSS. They also reflect how | |
# attribute strings are normally quoted within the DOM. | |
string-quotes: double | |
# https://github.com/sasstools/sass-lint/blob/develop/lib/config/property-sort-orders/smacss.yml | |
order/properties-order: | |
- display | |
- position | |
- top | |
- right | |
- bottom | |
- left | |
- flex | |
- flex-basis | |
- flex-direction | |
- flex-flow | |
- flex-grow | |
- flex-shrink | |
- flex-wrap | |
- align-content | |
- align-items | |
- align-self | |
- justify-content | |
- order | |
- width | |
- min-width | |
- max-width | |
- height | |
- min-height | |
- max-height | |
- margin | |
- margin-top | |
- margin-right | |
- margin-bottom | |
- margin-left | |
- padding | |
- padding-top | |
- padding-right | |
- padding-bottom | |
- padding-left | |
- float | |
- clear | |
- columns | |
- column-gap | |
- column-fill | |
- column-rule | |
- column-span | |
- column-count | |
- column-width | |
- transform | |
- transform-box | |
- transform-origin | |
- transform-style | |
- transition | |
- transition-delay | |
- transition-duration | |
- transition-property | |
- transition-timing-function | |
# Border | |
- border | |
- border-top | |
- border-right | |
- border-bottom | |
- border-left | |
- border-width | |
- border-top-width | |
- border-right-width | |
- border-bottom-width | |
- border-left-width | |
- border-style | |
- border-top-style | |
- border-right-style | |
- border-bottom-style | |
- border-left-style | |
- border-radius | |
- border-top-left-radius | |
- border-top-right-radius | |
- border-bottom-left-radius | |
- border-bottom-right-radius | |
- border-color | |
- border-top-color | |
- border-right-color | |
- border-bottom-color | |
- border-left-color | |
- outline | |
- outline-color | |
- outline-offset | |
- outline-style | |
- outline-width | |
# Background | |
- background | |
- background-attachment | |
- background-clip | |
- background-color | |
- background-image | |
- background-repeat | |
- background-position | |
- background-size | |
# Text | |
- color | |
- font | |
- font-family | |
- font-size | |
- font-smoothing | |
- font-style | |
- font-variant | |
- font-weight | |
- letter-spacing | |
- line-height | |
- list-style | |
- text-align | |
- text-decoration | |
- text-indent | |
- text-overflow | |
- text-rendering | |
- text-shadow | |
- text-transform | |
- text-wrap | |
- white-space | |
- word-spacing | |
# Other | |
- border-collapse | |
- border-spacing | |
- box-shadow | |
- caption-side | |
- content | |
- cursor | |
- empty-cells | |
- opacity | |
- overflow | |
- quotes | |
- speak | |
- table-layout | |
- vertical-align | |
- visibility | |
- z-index | |
declaration-property-unit-whitelist: | |
font-size: | |
- "rem" | |
- "px" | |
- "%" | |
# The following prefix rules are enabled since we use autoprefixer | |
at-rule-no-vendor-prefix: true | |
media-feature-name-no-vendor-prefix: true | |
selector-no-vendor-prefix: true | |
value-no-vendor-prefix: true | |
# Usually if you're nesting past 3 levels deep there's a problem | |
max-nesting-depth: | |
- 4 | |
- ignore: "blockless-at-rules" | |
# For specificity: disallow IDs (0). Allow for complex combinations of classes, pseudo-classes, | |
# attribute modifiers based on selector-max-compound-selectors, plus an addition for | |
# pseudo-classes (4). Allow for pseudo-elements (1). | |
selector-max-specificity: 0,4,1 | |
# Disallow "@extend" in scss. | |
# http://csswizardry.com/2016/02/mixins-better-for-performance/ | |
# http://vanseodesign.com/css/sass-mixin-or-extend/ | |
# Besides performance, @extend actually *changes* the selector precedence by creating a compound | |
# selector, which can lead to ambiguous results. | |
at-rule-blacklist: | |
- extend | |
# Extremely useful for typos, and anything emergent can be ignored by this rule | |
property-no-unknown: | |
- true | |
- ignoreProperties: | |
- contain | |
# There is no reason that a specific ID would be needed for UI components | |
selector-max-id: 0 | |
# Qualifying types are not needed when using a naming system like BEM | |
selector-no-qualifying-type: true | |
# In general, we should *never* be modifying elements within our components, since we can't | |
# predict the use cases in which users would add a certain type of element into a component. | |
# The only hard exception to this are `fieldset` elements, which can be disabled and in that case | |
# we want our UI components within that fieldset to be disabled as well. | |
# Other exceptions to this may be in packages/material-components-web, in which case this rule could | |
# be disabled for that file, with an explanation. | |
selector-max-type: | |
- 0 | |
- ignoreTypes: | |
- fieldset | |
- html | |
- body | |
- p | |
- a | |
- ul | |
- ol | |
- pre | |
# Styles for components should never need the universal selector. | |
selector-max-universal: 1 | |
# http://www.paulirish.com/2010/the-protocol-relative-url/ | |
function-url-no-scheme-relative: true | |
# TODO: and FIXME: warnings are super useful because they remind us that we should address these | |
# within our codebase | |
comment-word-blacklist: | |
- | |
- /^TODO:/ | |
- /^FIXME:/ | |
- severity: warning | |
# Part of google's style guide | |
number-leading-zero: never | |
# Prevents unneeded nesting selectors | |
scss/selector-no-redundant-nesting-selector: true | |
# Since leading underscores are not needed, they can be omitted | |
scss/at-import-no-partial-leading-underscore: true | |
# Since mixins are explicit (`@include`) and parens are unnecessary for argumentless mixins, they | |
# can be omitted. | |
scss/at-mixin-argumentless-call-parentheses : never |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment