{"id":21192984,"url":"https://github.com/cloudfour/stylelint-config-cloudfour","last_synced_at":"2025-07-10T03:32:02.925Z","repository":{"id":25676158,"uuid":"104403921","full_name":"cloudfour/stylelint-config-cloudfour","owner":"cloudfour","description":"Cloud Four's shareable config","archived":false,"fork":false,"pushed_at":"2025-06-30T05:05:17.000Z","size":2593,"stargazers_count":2,"open_issues_count":6,"forks_count":1,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-06-30T06:22:41.326Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cloudfour.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2017-09-21T22:12:40.000Z","updated_at":"2025-06-30T05:05:19.000Z","dependencies_parsed_at":"2023-10-21T02:28:48.140Z","dependency_job_id":"3963e444-bffb-41fd-bb80-54d44117c102","html_url":"https://github.com/cloudfour/stylelint-config-cloudfour","commit_stats":{"total_commits":349,"total_committers":7,"mean_commits":"49.857142857142854","dds":"0.39255014326647564","last_synced_commit":"80cdfb828da0a606a62283c9f212e32790676262"},"previous_names":[],"tags_count":18,"template":false,"template_full_name":null,"purl":"pkg:github/cloudfour/stylelint-config-cloudfour","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudfour%2Fstylelint-config-cloudfour","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudfour%2Fstylelint-config-cloudfour/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudfour%2Fstylelint-config-cloudfour/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudfour%2Fstylelint-config-cloudfour/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cloudfour","download_url":"https://codeload.github.com/cloudfour/stylelint-config-cloudfour/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudfour%2Fstylelint-config-cloudfour/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264521473,"owners_count":23622152,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-20T19:12:20.100Z","updated_at":"2025-07-10T03:31:57.908Z","avatar_url":"https://github.com/cloudfour.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# stylelint-config-cloudfour\n\n[![NPM version](http://img.shields.io/npm/v/stylelint-config-cloudfour.svg)](https://www.npmjs.org/package/stylelint-config-cloudfour) [![Build Status](https://github.com/cloudfour/stylelint-config-cloudfour/workflows/CI/badge.svg)](https://github.com/cloudfour/stylelint-config-cloudfour/actions?query=workflow%3ACI) [![Renovate](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://renovatebot.com)\n\n\u003e A sharable stylelint config object that enforces [Cloud Four's CSS Standards](https://github.com/cloudfour/guides/tree/main/css)\n\nNote that this config mostly just extends the [SUIT config](https://github.com/suitcss/stylelint-config-suitcss), and any additions or changes from the SUIT standard should be well-documented here to explain the deviation.\n\n## Installation\n\nInstall [stylelint](https://stylelint.io/) and `stylelint-config-cloudfour`:\n\n```\nnpm install stylelint stylelint-config-cloudfour --save-dev\n```\n\n## Usage\n\nIf you've installed `stylelint-config-cloudfour` locally within your project, just set your `stylelint` config to:\n\n```js\n{\n  \"extends\": \"stylelint-config-cloudfour\"\n}\n```\n\nYou'll probably also want to add a script to your `package.json` file to make it easier to run Stylelint with this config:\n\n```json\n\"scripts\": {\n  \"lint:css\": \"stylelint '**/*.css'\"\n}\n```\n\n### Using with Prettier\n\n\u003e [!NOTE]\n\u003e This section is no longer relevant if you are using **Stylelint V15** or higher.\n\n\u003e As of Stylelint v15 [all style-related rules have been deprecated](https://stylelint.io/migration-guide/to-15#deprecated-stylistic-rules). If you are using v15 or higher and are not making use of these deprecated rules, [this plugin is no longer necessary](https://stylelint.io/migration-guide/to-15#:~:text=Additionally%2C%20you%20may%20no%20longer%20need%20to%20extend%20Prettier%27s%20Stylelint%20config).\n\n---\n\nIt's common to [pair Stylelint with Prettier](https://prettier.io/docs/en/integrating-with-linters.html#stylelint). If you're going to use both, you'll want to add [`stylelint-config-prettier`](https://github.com/prettier/stylelint-config-prettier), which is a config that disables any Stylelint rules that conflict with Prettier.\n\n```\nnpm install stylelint-config-prettier --save-dev\n```\n\nThen add it to your Stylelint config. It'll need to be the last item in the `extends` array so it can override other configs.\n\n```js\n{\n  extends: [\"stylelint-config-cloudfour\", \"stylelint-config-prettier\"],\n}\n```\n\nThen you can update your `package.json` script to run Prettier as well as Stylelint:\n\n```json\n\"scripts\": {\n  \"lint:css\": \"prettier --list-different '**/*.css' \u0026\u0026 stylelint '**/*.css'\"\n}\n```\n\n### Extending the config\n\nSimply add a `\"rules\"` key to your config, then add your overrides and additions there.\n\nFor example, to change the `at-rule-no-unknown` rule to use its `ignoreAtRules` option, change the `indentation` to tabs, turn off the `number-leading-zero` rule,and add the `unit-whitelist` rule:\n\n```js\n{\n  \"extends\": \"stylelint-config-cloudfour\",\n  \"rules\": {\n    \"at-rule-no-unknown\": [ true, {\n      \"ignoreAtRules\": [\n        \"extends\",\n        \"ignores\"\n      ]\n    }],\n    \"indentation\": \"tab\",\n    \"number-leading-zero\": null,\n    \"unit-whitelist\": [\"em\", \"rem\", \"s\"]\n  }\n}\n```\n\n## Documentation\n\n### What's the difference between [stylelint-config-cloudfour-suit](https://github.com/cloudfour/stylelint-config-cloudfour-suit) and [stylelint-config-cloudfour](https://github.com/cloudfour/stylelint-config-cloudfour)?\n\n[stylelint-config-cloudfour](https://github.com/cloudfour/stylelint-config-cloudfour) only contains the CSS formatting rules. [stylelint-config-cloudfour-suit](https://github.com/cloudfour/stylelint-config-cloudfour-suit) extends it, and additionally enforces the [SUIT naming convention](https://github.com/suitcss/suit/blob/master/doc/naming-conventions.md). In most cases, you should use [stylelint-config-cloudfour-suit](https://github.com/cloudfour/stylelint-config-cloudfour-suit), but if your project doesn't follow the SUIT naming scheme, then you can use [stylelint-config-cloudfour](https://github.com/cloudfour/stylelint-config-cloudfour) directly.\n\n### Extends\n\n- [stylelint-config-suitcss](https://github.com/suitcss/stylelint-config-suitcss): Configuration rules to ensure your CSS code is compliant with [SUIT CSS's code style](https://github.com/suitcss/suit/blob/master/doc/STYLE.md).\n- [stylelint-config-standard-scss](https://github.com/stylelint-scss/stylelint-config-standard-scss): The standard shareable SCSS config for Stylelint.\n\n### Plugins\n\n- [stylelint-high-performance-animation](https://github.com/kristerkari/stylelint-high-performance-animation): Prevent the use of low performance animation and transition properties.\n\n### Configured Lints\n\nThis is a list of the lints turned on in this configuration (beyond the ones that come from `stylelint-config-suitcss` \u0026 `stylelint-config-standard-scss`), and what they do.\n\n- [`at-rule-empty-line-before`](https://github.com/stylelint/stylelint/blob/master/lib/rules/at-rule-empty-line-before/README.md): Require an empty line before at-rules. _disabled temporarily, pending [#2480](https://github.com/stylelint/stylelint/issues/2480)_\n- [`comment-empty-line-before`](https://github.com/stylelint/stylelint/tree/master/lib/rules/comment-empty-line-before): Require an empty line before comments. _overriding SUIT rule to exclude the first nested comment in a block._\n- [`max-line-length`](https://github.com/stylelint/stylelint/blob/master/lib/rules/max-line-length/): Limit line lengths to 80 characters for comments only. _overriding SUIT rule to ignore comments that contain URLs._\n- [`no-descending-specificity`](https://stylelint.io/user-guide/rules/list/no-descending-specificity/): Disallow selectors of lower specificity from coming after overriding selectors of higher specificity. _disabled due to false positives in SCSS contexts._\n- [`rule-empty-line-before`](https://github.com/stylelint/stylelint/blob/master/lib/rules/rule-empty-line-before/): Require an empty line before multi-line rules. _overriding SUIT rule to exclude the first multi-line rule in a block, and to ignore rules following comments._\n\n#### Order\n\n- [`order/order`](https://github.com/hudochenkov/stylelint-order/blob/master/rules/order/README.md): Specifies the order of content within declaration blocks: Variables, `@include` statements, declarations, block `@include` statements, nested rules.\n- [`order/properties-alphabetical-order`](https://github.com/hudochenkov/stylelint-order/blob/master/rules/properties-alphabetical-order/README.md): Specify the alphabetical order of properties within declaration blocks.\n\n#### SCSS\n\n- [`at-rule-disallowed-list`](https://github.com/stylelint/stylelint/blob/main/lib/rules/at-rule-disallowed-list/README.md): Disallow use of `@extend` because it's [considered an anti-pattern](https://csswizardry.com/2016/02/mixins-better-for-performance/), and `@import` because it's [deprecated](https://sass-lang.com/documentation/at-rules/import)\n- [`scss/declaration-nested-properties`](https://github.com/kristerkari/stylelint-scss/blob/master/src/rules/declaration-nested-properties/README.md): Disallow SCSS nested property groups, such as `font { size: 16px; weight: 700; }`.\n- [`scss/selector-no-redundant-nesting-selector`](https://github.com/kristerkari/stylelint-scss/blob/master/src/rules/selector-no-redundant-nesting-selector/README.md): Disallow redundant nesting selectors (`\u0026`).\n\n#### Performance\n\n- [`plugin/no-low-performance-animation-properties`](https://github.com/kristerkari/stylelint-high-performance-animation): Prevent the use of low performance animation and transition properties that trigger `layout`.\n\n## [Changelog](CHANGELOG.md)\n\n## [License](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcloudfour%2Fstylelint-config-cloudfour","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcloudfour%2Fstylelint-config-cloudfour","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcloudfour%2Fstylelint-config-cloudfour/lists"}