# https://github.com/sasstools/sass-lint/tree/master/docs/rules files: include: '**/*.scss' options: formatter: stylish merge-default-rules: false rules: # Rule will enforce how many elements a BEM selector can contain. bem-depth: 2 # Rule will enforce whether one should use 0 or none when specifying a zero border value border-zero: - 2 - convention: '0' # Rule will enforce the use of the chosen brace style. brace-style: - 2 - allow-single-line: false style: '1tbs' # Rule will enforce a convention for class names. class-name-format: - 2 - convention: hyphenatedbem # Rule will enforce whether or not @import paths should have leading underscores # and/or filename extensions. clean-import-paths: - 2 - filename-extension: false leading-underscore: false # Rule will enforce whether or not parenthesis should be included if no arguments # are defined or used, when declaring or invoking a mixin. empty-args: - 2 - include: true # Rule empty-line-between-blocks will enforce whether or not nested blocks # should include a space between the last non-comment declaration or not. empty-line-between-blocks: - 2 - include: true - ignore-single-line-rulesets: false # Rule will enforce that extends should be written before declarations in a ruleset. extends-before-declarations: 2 # Rule will enforce that extends should be written before mixins in a ruleset. extends-before-mixins: 2 # Rule will enforce whether or not files should end with a newline. final-newline: - 2 - include: true # Rule will enforce the nesting of attributes force-attribute-nesting: 2 # Rule will enforce the nesting of elements force-element-nesting: 0 # Rule will enforce the nesting of pseudo elements/classes. force-pseudo-nesting: 0 # Rule will enforce a convention for function names. function-name-format: - 2 - allow-leading-underscore: true convention: hyphenatedlowercase # Rule will enforce the length of hexadecimal values hex-length: - 2 - style: short # Rule will enforce the case of hexadecimal values hex-notation: - 2 - style: lowercase # Rule will enforce a convention for id names. id-name-format: - 2 - convention: hyphenatedlowercase # Rule will enforce an indentation size (in spaces) and ensure that tabs and spaces are not mixed. indentation: - 0 - size: 2 # Rule will enforce whether or not decimal numbers should include a leading zero. leading-zero: - 2 - include: true # Rule will enforce a convention for mixin names. mixin-name-format: - 2 - allow-leading-underscore: true convention: hyphenatedlowercase # Rule will enforce that mixins should be written before declarations in a ruleset. mixins-before-declarations: - 2 - exclude: ['mq'] # Rule will enforce how deeply a selector can be nested. nesting-depth: - 2 - max-depth: 8 # Rule will enforce the use of hexadecimal color values rather than literals. no-color-keywords: 2 # Rule will disallow the use of color literals and basic color functions in any # declarations other than variables or maps/lists. no-color-literals: - 2 - allow-rgba: true # Rule will enforce the use of Sass single-line comments and disallow CSS comments. # Bang comments (/*! */, will be printed even in minified mode) are still allowed. no-css-comments: 2 # Rule will enforce that @debug statements are not allowed to be used. no-debug: 2 # Rule will enforce that duplicate properties are not allowed within the same block. no-duplicate-properties: - 2 - exclude: - src # Rule will enforce that rulesets are not empty. no-empty-rulesets: 2 # Rule will enforce that extends are not allowed to be used. no-extends: 0 # Rule will enforce that ID selectors are not allowed to be used. no-ids: 2 # Rule will enforce that important declarations are not allowed to be used. no-important: 0 # Rule will enforce that only valid of hexadecimal values are written. no-invalid-hex: 2 # Rule will enforce that selectors aren't repeated and that their properties are # merged. You may also pass a whitelist of selectors you wish to exclude from merging. no-mergeable-selectors: 2 # Rule will enforce the correct spelling of CSS properties and prevent the use # of unknown CSS properties. no-misspelled-properties: - 2 - extra-properties: ['animation-', 'overflow-scrolling', 'touch-callout'] # Rule will enforce that selectors are not allowed to have qualifying elements. no-qualifying-elements: - 2 - allow-element-with-attribute: false allow-element-with-class: false allow-element-with-id: false # Rule will enforce that trailing whitespace is not allowed. no-trailing-whitespace: 2 # Rule will enforce that trailing zeros are not allowed. no-trailing-zero: 2 # Rule will enforce whether the keyword all can be used with the transition or # transition-property property. no-transition-all: 0 # Rule will enforce that protocols and domains are not used within urls. no-url-protocols: 2 # Rule will enforce that vendor prefixes are not allowed to be used. no-vendor-prefixes: - 0 - additional-identifiers: [] excluded-identifiers: [] # Rule will enforce that @warn statements are not allowed to be used. no-warn: 2 # Rule will enforce that new declarations must begin on new lines. one-declaration-per-line: 2 # Rule will enforce whether extends should only include placeholder selectors. placeholder-in-extend: 2 # Rule will enforce a convention for placeholder names. placeholder-name-format: - 2 - convention: hyphenatedlowercase # Rule will enforce the order in which declarations are written. property-sort-order: - 2 - ignore-custom-properties: true order: - animation - animation-name - animation-duration - animation-delay - animation-direction - animation-fill-mode - animation-iteration-count - animation-play-state - animation-timing-function - transition - transition-delay - transition-duration - transition-property - transition-timing-function - appearance - content - speak - counter-reset - counter-increment - cursor - pointer-events - user-select - touch-action - touch-callout - tap-highlight-color - box-sizing - zoom - display - table-layout - flex-basis - flex-direction - flex-grow - flex-shrink - flex-wrap - order - overflow - overflow-x - overflow-y - overflow-scrolling - visibility - opacity - float - clear - backface-visibility - transform - transform-origin - transform-style - perspective - perspective-origin - position - top - right - bottom - left - z-index - margin - margin-top - margin-right - margin-bottom - margin-left - padding - padding-top - padding-right - padding-bottom - padding-left - width - min-width - max-width - height - min-height - max-height - background - background-color - background-image - background-repeat - background-position - background-attachment - background-size - border - border-top - border-right - border-bottom - border-left - border-width - border-style - border-color - border-image - border-radius - outline - outline-width - outline-style - outline-color - outline-offset - box-shadow - color - font - font-family - font-size - font-weight - font-style - font-variant - line-height - list-style - list-style-type - list-style-position - list-style-image - text-align - text-transform - text-decoration - text-indent - text-shadow - vertical-align - white-space - word-break - word-spacing - word-wrap # Rule will disallow the use of units not specified in global or per-property. # Units specified per-property will override the global units for that property. property-units: - 2 - global: # Font-relative lengths - ch - em - ex - rem # Absolute lengths - cm - in - mm - pc - pt - px - q # Viewport-percentage lengths - vh - vw - vmin - vmax # Angle - deg - grad - rad - turn # Duration - ms - s # Frequency - Hz - kHz # Resolution - dpi - dpcm - dppx # Other - '%' per-property: border: - px - em - rem font: - em - rem line-height: [] margin: - px - em - rem - '%' padding: - px - em - rem - '%' # Rule will enforce whether single quotes ('') or double quotes ("") should be # used for all strings. quotes: - 2 - style: single # Rule will enforce that values in their shorthand form are as concise as specified. shorthand-values: 2 # Rule will enforce whether selectors should be placed on a new line. single-line-per-selector: 2 # Rule will enforce whether or not a space should be included after a bang (!). space-after-bang: - 2 - include: false # Rule will enforce whether or not a space should be included after a colon (:). space-after-colon: - 2 - include: true # Rule will enforce whether or not a space should be included after a comma (,). space-after-comma: 2 # Rule will enforce whether or not a single space should be included before and # after the following operators: +, -, /, *, %, <, > ==, !=, <= and >=. space-around-operator: - 2 - include: true # Rule will enforce whether or not a space should be included before a bang (!). space-before-bang: - 2 - include: true # Rule will enforce whether or not a space should be included before a brace ({). space-before-brace: - 2 - include: true # Rule will enforce whether or not a space should be included before a colon (:). space-before-colon: 0 # Rule will enforce whether or not a space should be included before the first # item and after the last item inside parenthesis (()). space-between-parens: - 2 - include: false # Rule will enforce whether the last declaration in a block should include a # semicolon (;) or not (.sass syntax excluded). trailing-semicolon: - 2 - include: true # Rule will enforce that URLs are wrapped in quotes. url-quotes: 2 # Rule will enforce the use of variables for the values of specified properties. # There are no properties by default, except for reserved words listed below # which are always whitelisted: # - inherit # - initial # - transparent # - none # - currentColor variable-for-property: - 2 - properties: - color - font-family # Rule will enforce a convention for variable names. variable-name-format: - 2 - allow-leading-underscore: true convention: hyphenatedlowercase # Rule will enforce whether or not values of 0 used for length should be unitless. zero-unit: 2