1
1
mirror of https://github.com/primer/css.git synced 2024-12-30 01:22:30 +03:00

Adding the rest of the rules to the docs

This commit is contained in:
Jon Rohan 2016-06-14 11:51:25 -04:00
parent 1ac303e9a6
commit 1cebe43698
3 changed files with 149 additions and 18 deletions

125
README.md
View File

@ -35,7 +35,8 @@ This is a list of the lints turned on in this configuration, and what they do.
#### At-rule #### At-rule
* [at-rule-blacklist](http://stylelint.io/user-guide/rules/at-rule-blacklist/): `["extend"]` should never be used in `@rule`. * [at-rule-blacklist](http://stylelint.io/user-guide/rules/at-rule-blacklist/): Specify a blacklist of disallowed at-rules.
* `"extend"` Disallow the use of `@extend`.
* [at-rule-name-case](http://stylelint.io/user-guide/rules/at-rule-name-case/): at rules must be in written lowercase. * [at-rule-name-case](http://stylelint.io/user-guide/rules/at-rule-name-case/): at rules must be in written lowercase.
* [at-rule-name-space-after](http://stylelint.io/user-guide/rules/at-rule-name-space-after/): There must always be a single space after at-rule names in single-line declaration blocks. * [at-rule-name-space-after](http://stylelint.io/user-guide/rules/at-rule-name-space-after/): There must always be a single space after at-rule names in single-line declaration blocks.
* [at-rule-semicolon-newline-after](http://stylelint.io/user-guide/rules/at-rule-semicolon-newline-after/): There must always be a newline after the semicolon. * [at-rule-semicolon-newline-after](http://stylelint.io/user-guide/rules/at-rule-semicolon-newline-after/): There must always be a newline after the semicolon.
@ -66,13 +67,133 @@ This is a list of the lints turned on in this configuration, and what they do.
* [declaration-bang-space-after](http://stylelint.io/user-guide/rules/declaration-bang-space-after/): There must never be whitespace after the bang. * [declaration-bang-space-after](http://stylelint.io/user-guide/rules/declaration-bang-space-after/): There must never be whitespace after the bang.
* [declaration-bang-space-before](http://stylelint.io/user-guide/rules/declaration-bang-space-before/): There must always be a single space before the bang. * [declaration-bang-space-before](http://stylelint.io/user-guide/rules/declaration-bang-space-before/): There must always be a single space before the bang.
* [declaration-colon-newline-after](http://stylelint.io/user-guide/rules/declaration-colon-newline-after/): There must always be a newline after the colon if the declaration's value is multi-line.
* [declaration-colon-space-after](http://stylelint.io/user-guide/rules/declaration-colon-space-after/): There must always be a single space after the colon if the declaration's value is single-line.
* [declaration-colon-space-before](http://stylelint.io/user-guide/rules/declaration-colon-space-before/): There must never be whitespace before the colon.
#### Declaration block #### Declaration block
* [declaration-block-no-duplicate-properties](http://stylelint.io/user-guide/rules/declaration-block-no-duplicate-properties/): Disallow duplicate properties within declaration blocks. _Ignore_: consecutive duplicated properties. * [declaration-block-no-duplicate-properties](http://stylelint.io/user-guide/rules/declaration-block-no-duplicate-properties/): Disallow duplicate properties within declaration blocks. _Ignore_: consecutive duplicated properties.
* [declaration-block-no-shorthand-property-overrides](http://stylelint.io/user-guide/rules/declaration-block-no-shorthand-property-overrides/): Disallow shorthand properties that override related longhand properties. * [declaration-block-no-shorthand-property-overrides](http://stylelint.io/user-guide/rules/declaration-block-no-shorthand-property-overrides/): Disallow shorthand properties that override related longhand properties.
* [declaration-block-properties-order](http://stylelint.io/user-guide/rules/declaration-block-properties-order/): Properties in declaration blocks must be [sorted according to this list](). * [declaration-block-properties-order](http://stylelint.io/user-guide/rules/declaration-block-properties-order/): Properties in declaration blocks must be [sorted according to this list](https://github.com/primer/stylelint-config-primer/blob/1ac303e9a633ee38d168a014dcea10eaf5a95aab/index.js#L45-L215).
* [declaration-block-semicolon-newline-after](http://stylelint.io/user-guide/rules/declaration-block-semicolon-newline-after/): There must always be a newline after the semicolon.
* [declaration-block-semicolon-space-before](http://stylelint.io/user-guide/rules/declaration-block-semicolon-space-before/): There must never be whitespace before the semicolons.
* [declaration-block-single-line-max-declarations](http://stylelint.io/user-guide/rules/declaration-block-single-line-max-declarations/): There should never be more than `1` declaration per line.
* [declaration-block-trailing-semicolon](http://stylelint.io/user-guide/rules/declaration-block-trailing-semicolon/): There must always be a trailing semicolon.
#### Declaration Property
* [declaration-property-value-blacklist](http://stylelint.io/user-guide/rules/declaration-property-value-blacklist/): Specify a blacklist of disallowed property and value pairs within declarations.
* `^transition`: Disallow the use of `all` within transitions.
* `^background`: Disallow the use of `http:` protocols within background image urls.
* `^border`: Disallow the use of the word `none` for borders, use `0` instead.
* `.+`: For everything ban the use of the word `initial`.
#### Font Family
* [font-family-name-quotes](http://stylelint.io/user-guide/rules/font-family-name-quotes/): Expect quotes only when quotes are required according [to the criteria](http://stylelint.io/user-guide/rules/font-family-name-quotes/#options), and disallow quotes in all other cases.
#### Function
* [function-calc-no-unspaced-operator](http://stylelint.io/user-guide/rules/function-calc-no-unspaced-operator/): Disallow an unspaced operator within `calc` functions.
* [function-comma-newline-after](http://stylelint.io/user-guide/rules/function-comma-newline-after/): There must never be a whitespace after the commas in multi-line functions.
* [function-comma-space-after](http://stylelint.io/user-guide/rules/function-comma-space-after/): There must always be a single space after the commas in single-line functions.
* [function-comma-space-before](http://stylelint.io/user-guide/rules/function-comma-space-before/): There must never be whitespace before the commas.
* [function-linear-gradient-no-nonstandard-direction](http://stylelint.io/user-guide/rules/function-linear-gradient-no-nonstandard-direction/): Disallow direction values in `linear-gradient()` calls that are not valid according to the [standard syntax](https://developer.mozilla.org/en-US/docs/Web/CSS/linear-gradient#Syntax).
* [function-max-empty-lines](http://stylelint.io/user-guide/rules/function-max-empty-lines/): There must never be empty lines within a function.
* [function-name-case](http://stylelint.io/user-guide/rules/function-name-case/): Function names must be written in lowercase.
* [function-parentheses-newline-inside](http://stylelint.io/user-guide/rules/function-parentheses-newline-inside/): There must always be a newline inside the parentheses of multi-line functions.
* [function-parentheses-space-inside](http://stylelint.io/user-guide/rules/function-parentheses-space-inside/): There must always be a single space inside the parentheses of single-line functions.
* [function-url-quotes](http://stylelint.io/user-guide/rules/function-url-quotes/): Urls must always be quoted.
* [function-whitespace-after](http://stylelint.io/user-guide/rules/function-whitespace-after/): There must always be whitespace after the function.
#### General
* [indentation](http://stylelint.io/user-guide/rules/indentation/): Indentation should always be `2` spaces.
* [max-empty-lines](http://stylelint.io/user-guide/rules/max-empty-lines/): Limit the number of adjacent empty lines to `1`.
* [max-nesting-depth](http://stylelint.io/user-guide/rules/max-nesting-depth/): Limit the allowed nesting depth `3`.
* [no-duplicate-selectors](http://stylelint.io/user-guide/rules/no-duplicate-selectors/): Disallow duplicate selectors within a stylesheet.
* [no-eol-whitespace](http://stylelint.io/user-guide/rules/no-eol-whitespace/): Disallow end-of-line whitespace.
* [no-extra-semicolons](http://stylelint.io/user-guide/rules/no-extra-semicolons/): Disallow extra semicolons.
* [no-missing-eof-newline](http://stylelint.io/user-guide/rules/no-missing-eof-newline/): Disallow missing end-of-file newlines in non-empty files.
#### Media Feature
* [media-feature-colon-space-after](http://stylelint.io/user-guide/rules/media-feature-colon-space-after/): There must always be a single space after the colon.
* [media-feature-colon-space-before](http://stylelint.io/user-guide/rules/media-feature-colon-space-before/): There must never be whitespace before the colon.
* [media-feature-no-missing-punctuation](http://stylelint.io/user-guide/rules/media-feature-no-missing-punctuation/): Disallow missing punctuation for non-boolean media features.
* [media-feature-range-operator-space-after](http://stylelint.io/user-guide/rules/media-feature-range-operator-space-after/): There must always be a single space after the range operator.
* [media-feature-range-operator-space-before](http://stylelint.io/user-guide/rules/media-feature-range-operator-space-before/): There must always be a single space before the range operator.
#### Media Query
* [media-query-parentheses-space-inside](http://stylelint.io/user-guide/rules/media-query-parentheses-space-inside/): There must never be whitespace on the inside the parentheses.
#### Media Query List
* [media-query-list-comma-newline-after](http://stylelint.io/user-guide/rules/media-query-list-comma-newline-after/): There must always be a newline after the commas in multi-line media query lists.
* [media-query-list-comma-space-after](http://stylelint.io/user-guide/rules/media-query-list-comma-space-after/): There must always be a single space after the commas in single-line media query lists.
* [media-query-list-comma-space-before](http://stylelint.io/user-guide/rules/media-query-list-comma-space-before/): There must never be whitepace before the commas.
#### Number
* [number-leading-zero](http://stylelint.io/user-guide/rules/number-leading-zero/): There must always be a leading zero.
* [number-no-trailing-zeros](http://stylelint.io/user-guide/rules/number-no-trailing-zeros/): Disallow trailing zeros in numbers.
#### Property
* [property-case](http://stylelint.io/user-guide/rules/property-case/): Properties must be written in lowercase.
* [property-no-vendor-prefix](http://stylelint.io/user-guide/rules/property-no-vendor-prefix/): Disallow vendor prefixes for properties.
* [shorthand-property-no-redundant-values](http://stylelint.io/user-guide/rules/shorthand-property-no-redundant-values/): Disallow redundant values in shorthand properties.
#### Rule
* [rule-nested-empty-line-before](http://stylelint.io/user-guide/rules/rule-nested-empty-line-before/): There must always be an empty line before multi-line rules. _Except_: Nested rules that are the first of their parent rule. _Ignore_: Rules that come after a comment.
* [rule-non-nested-empty-line-before](http://stylelint.io/user-guide/rules/rule-non-nested-empty-line-before/): There must always be an empty line before multi-line rules. _Ignore_: Rules that come after a comment.
#### Selector
* [selector-attribute-brackets-space-inside](http://stylelint.io/user-guide/rules/selector-attribute-brackets-space-inside/): There must never be whitespace on the inside the brackets.
* [selector-attribute-operator-space-after](http://stylelint.io/user-guide/rules/selector-attribute-operator-space-after/): There must never be a single after after the operator.
* [selector-attribute-operator-space-before](http://stylelint.io/user-guide/rules/selector-attribute-operator-space-before/): There must never be a single before after the operator.
* [selector-class-pattern](http://stylelint.io/user-guide/rules/selector-class-pattern/): Selectors must match the regex `^(?!(js\\-))[a-z\\-0-9]+$`.
* [selector-combinator-space-after](http://stylelint.io/user-guide/rules/selector-combinator-space-after/): There must always be a single space after the combinators.
* [selector-combinator-space-before](http://stylelint.io/user-guide/rules/selector-combinator-space-before/): There must always be a single space before the combinators.
* [selector-max-compound-selectors](http://stylelint.io/user-guide/rules/selector-max-compound-selectors/): Limit the number of compound selectors in a selector to `3`.
* [selector-max-empty-lines](http://stylelint.io/user-guide/rules/selector-max-empty-lines/): Limit the number of adjacent empty lines within selectors to `0`.
* [selector-max-specificity](http://stylelint.io/user-guide/rules/selector-max-specificity/): Limit the specificity of selectors to `"0,4,0"`.
* [selector-no-id](http://stylelint.io/user-guide/rules/selector-no-id/): Disallow id selectors.
* [selector-no-qualifying-type](http://stylelint.io/user-guide/rules/selector-no-qualifying-type/): Disallow qualifying a selector by type.
* [selector-pseudo-class-case](http://stylelint.io/user-guide/rules/selector-pseudo-class-case/): pseudo-class selectors should always be lowercase.
* [selector-pseudo-class-parentheses-space-inside](http://stylelint.io/user-guide/rules/selector-pseudo-class-parentheses-space-inside/): There must never be whitespace on the inside the parentheses.
* [selector-pseudo-element-case](http://stylelint.io/user-guide/rules/selector-pseudo-element-case/): pseudo-element selectors should always be lowercase.
* [selector-pseudo-element-colon-notation](http://stylelint.io/user-guide/rules/selector-pseudo-element-colon-notation/): Applicable pseudo-elements must always use the double colon notation.
* [selector-pseudo-element-no-unknown](http://stylelint.io/user-guide/rules/selector-pseudo-element-no-unknown/): Disallow unknown pseudo-element selectors.
* [selector-type-case](http://stylelint.io/user-guide/rules/selector-type-case/): Type selectors must always be written in lowercase.
#### Selector List
* [selector-list-comma-newline-after](http://stylelint.io/user-guide/rules/selector-list-comma-newline-after/): There must always be a newline after the commas.
* [selector-list-comma-space-before](http://stylelint.io/user-guide/rules/selector-list-comma-space-before/): There must never be whitespace before the commas.
#### String
* [string-no-newline](http://stylelint.io/user-guide/rules/string-no-newline/): Disallow (unescaped) newlines in strings.
* [string-quotes](http://stylelint.io/user-guide/rules/string-quotes/): Strings must always be wrapped with double quotes.
#### Unit
* [unit-case](http://stylelint.io/user-guide/rules/unit-case/): Units must be written in lowercase.
* [unit-no-unknown](http://stylelint.io/user-guide/rules/unit-no-unknown/): Disallow unknown units.
#### Value
* [value-no-vendor-prefix](http://stylelint.io/user-guide/rules/value-no-vendor-prefix/): Disallow vendor prefixes for values.
#### Value list
* [value-list-comma-newline-after](http://stylelint.io/user-guide/rules/value-list-comma-newline-after/): There must always be a newline after the commas in multi-line value lists.
* [value-list-comma-space-after](http://stylelint.io/user-guide/rules/value-list-comma-space-after/): There must always be a single space after the commas in single-line value lists.
* [value-list-comma-space-before](http://stylelint.io/user-guide/rules/value-list-comma-space-before/): There must never be whitespace before the commas.
## License ## License

View File

@ -17,11 +17,13 @@ const validCss = (
color: #333; color: #333;
background: linear-gradient(#fff, rgba(0, 0, 0, 0.8)); background: linear-gradient(#fff, rgba(0, 0, 0, 0.8));
} }
.selector-a, .selector-a,
.selector-b:not(:first-child) { .selector-b:not(:first-child) {
top: calc(calc(1em * 2) / 3); top: calc(calc(1em * 2) / 3);
padding: 10px !important; padding: 10px !important;
} }
.selector-x { width: 10%; } .selector-x { width: 10%; }
.selector-y { width: 20%; } .selector-y { width: 20%; }
.selector-z { width: 30%; } .selector-z { width: 30%; }
@ -33,6 +35,7 @@ const validCss = (
transform: translate(1, 1) scale(3); transform: translate(1, 1) scale(3);
} }
} }
@media (min-orientation: portrait), projection and (color) { @media (min-orientation: portrait), projection and (color) {
.selector-i + .selector-ii { .selector-i + .selector-ii {
font-family: helvetica, "arial black", sans-serif; font-family: helvetica, "arial black", sans-serif;

View File

@ -220,6 +220,21 @@ module.exports = {
"declaration-colon-newline-after": "always-multi-line", "declaration-colon-newline-after": "always-multi-line",
"declaration-colon-space-after": "always-single-line", "declaration-colon-space-after": "always-single-line",
"declaration-colon-space-before": "never", "declaration-colon-space-before": "never",
"declaration-property-value-blacklist": {
"/^transition/": [
"/all/"
],
"/^background/": [
"http:",
"https:"
],
"/^border/": [
"none"
],
"/.+/": [
"initial"
]
},
"font-family-name-quotes": "always-where-recommended", "font-family-name-quotes": "always-where-recommended",
"function-calc-no-unspaced-operator": true, "function-calc-no-unspaced-operator": true,
"function-comma-newline-after": "always-multi-line", "function-comma-newline-after": "always-multi-line",
@ -247,28 +262,12 @@ module.exports = {
"no-duplicate-selectors": true, "no-duplicate-selectors": true,
"no-eol-whitespace": true, "no-eol-whitespace": true,
"no-extra-semicolons": true, "no-extra-semicolons": true,
"no-invalid-double-slash-comments": true,
"no-missing-eof-newline": true, "no-missing-eof-newline": true,
"number-leading-zero": "always", "number-leading-zero": "always",
"number-no-trailing-zeros": true, "number-no-trailing-zeros": true,
"number-zero-length-no-unit": true,
"primer/selector-no-utility": true, "primer/selector-no-utility": true,
"property-case": "lower", "property-case": "lower",
"property-no-vendor-prefix": true, "property-no-vendor-prefix": true,
"property-value-blacklist": {
"/^transition/": [
"/all/"
],
"/^background/": [
"/http:/"
],
"/^border/": [
"none"
],
"/.+/": [
"initial"
]
},
"rule-nested-empty-line-before": [ "rule-nested-empty-line-before": [
"always-multi-line", "always-multi-line",
{ {
@ -280,6 +279,14 @@ module.exports = {
] ]
} }
], ],
"rule-non-nested-empty-line-before": [
"always-multi-line",
{
"ignore": [
"after-comment"
]
}
],
"scss/at-extend-no-missing-placeholder": true, "scss/at-extend-no-missing-placeholder": true,
"scss/selector-no-redundant-nesting-selector": true, "scss/selector-no-redundant-nesting-selector": true,
"selector-attribute-brackets-space-inside": "never", "selector-attribute-brackets-space-inside": "never",