{"_id":"@ecosia/stylelint-config-property-sort-order-smacss","_rev":"29-cc07203554087e6436bbbc7c0f542220","name":"@ecosia/stylelint-config-property-sort-order-smacss","dist-tags":{"latest":"2.0.0"},"versions":{"1.0.0":{"name":"@ecosia/stylelint-config-property-sort-order-smacss","version":"1.0.0","keywords":["stylelint","stylelint-config","css","property-order","smacss","css-properties","linting"],"author":{"name":"Ecosia GmbH","email":"opensource@ecosia.org"},"license":"SEE LICENSE IN 'LICENSE.md'","_id":"@ecosia/stylelint-config-property-sort-order-smacss@1.0.0","maintainers":[{"name":"lostcrew","email":"emanuele.marchi@pm.me"},{"name":"matthias_bezero","email":"matthias@bezero.app"},{"name":"zaccolley","email":"zaccolley@fastmail.com"},{"name":"ecosia-deploybot","email":"dev.frontend@ecosia.org"},{"name":"dominik.henter","email":"dominik.henter@ecosia.org"},{"name":"codeliter","email":"hackzlord@gmail.com"},{"name":"julianmancera","email":"julian.mancera@ecosia.org"},{"name":"bettercallsol","email":"solomon.addey@ecosia.org"},{"name":"jonboulle","email":"jonathan.boulle@ecosia.org"},{"name":"paulquinney","email":"paul.quinney@ecosia.org"},{"name":"frank_ecosia","email":"frank.wambutt@ecosia.org"},{"name":"wondenge","email":"ondengew@gmail.com"},{"name":"sleepypioneer","email":"jessica0greene@gmail.com"},{"name":"melklein","email":"melanie.klein@ecosia.org"},{"name":"mwaitl","email":"markus.waitl@ecosia.org"},{"name":"selar","email":"arnaud.selva@ecosia.org"},{"name":"lopis","email":"joaopclopes@gmail.com"},{"name":"pbabbicola","email":"paula.babbicola@ecosia.org"},{"name":"damian.ehlhardt","email":"damian.ehlhardt@ecosia.org"},{"name":"ecosia.abhishek.juneja","email":"abhishek.juneja@ecosia.org"},{"name":"maiana.alebrant","email":"maiana.alebrant@ecosia.org"},{"name":"ecosiabot","email":"developer@ecosia.org"},{"name":"barbaraborges","email":"basborges@gmail.com"},{"name":"invoices","email":"invoices@ecosia.org"},{"name":"rodrigo-kayala","email":"rodrigo@kayala.com.br"},{"name":"liviaalmeida","email":"leave.ah@gmail.com"},{"name":"nasrinariafar","email":"nasrin.ariafar@ecosia.org"},{"name":"olukunle_ecosia","email":"olukunle.oduwobi@ecosia.org"},{"name":"solomon-ecosia","email":"oladiran.solomon@ecosia.org"},{"name":"kayjay298","email":"kathrin.wendt@ecosia.org"},{"name":"heldinz","email":"hello@alicerosemurphy.com"},{"name":"nejtehk","email":"nejteh.kaloussian@ecosia.org"},{"name":"majagach","email":"maja.gach@ecosia.org"},{"name":"ray-durrant-at-ecosia","email":"ray.durrant@ecosia.org"},{"name":"magalibo","email":"magali.goncalves@ecosia.org"},{"name":"lasselasse","email":"lasse.voss@ecosia.org"},{"name":"mariloubylr","email":"marilou.beyeler@ecosia.org"},{"name":"dryaha","email":"jessy.halison@ecosia.org"},{"name":"antonio.gerena","email":"antonio.gerena@ecosia.org"},{"name":"alirezam","email":"alireza.mohammadi@ecosia.org"},{"name":"francisca.s","email":"francisca.schlesinger@ecosia.org"},{"name":"sofiya.tepikin","email":"sofiya.tepikin@ecosia.org"},{"name":"luca-ecosia","email":"luca.schifino@ecosia.org"},{"name":"stephantul","email":"stephantul@gmail.com"},{"name":"mujtabamehdi","email":"mujtaba.mehdi@ecosia.org"},{"name":"uriel-ecosia","email":"uriel.corfa@ecosia.org"},{"name":"tusharmehtani","email":"tushar.mehtani@ecosia.org"},{"name":"yentingwang","email":"yenting.wang@ecosia.org"},{"name":"pauooo","email":"pauline.ballot@ecosia.org"}],"homepage":"https://github.com/ecosia/stylelint-config-property-sort-order-smacss#readme","bugs":{"url":"https://github.com/ecosia/stylelint-config-property-sort-order-smacss/issues"},"dist":{"shasum":"bb411d66650a459fc91f9e90ab0d1bc511e89434","tarball":"https://registry.npmjs.org/@ecosia/stylelint-config-property-sort-order-smacss/-/stylelint-config-property-sort-order-smacss-1.0.0.tgz","fileCount":5,"integrity":"sha512-KTwa1aOGq5dG9MM+BqBGToJ+E1XNHF9jvy/ITmzEm0ryl4Rco/BjOvASCF1SOmzLzpN4c8xJ0B7Q5kjdemDkLw==","signatures":[{"sig":"MEQCIH64ohECfYqPreMnEkQQrmCQfDppRom4/Qr+M0dDY75YAiBp5/I7L0C0XkXj4OM8K9RHZ4ZXhn7l4khbIBqNgqVpjA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18692},"main":"index.js","type":"module","gitHead":"fd550b671717d6e3a8a164a88a8aba8ae3fe604a","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"lostcrew","actor":{"name":"lostcrew","type":"user","email":"emanuele.marchi@pm.me"},"email":"emanuele.marchi@pm.me"},"repository":{"url":"git+https://github.com/ecosia/stylelint-config-property-sort-order-smacss.git","type":"git"},"_npmVersion":"10.9.2","description":"Stylelint config for Property Sort Ordering based on the SMACSS methodology","directories":{},"_nodeVersion":"22.16.0","_hasShrinkwrap":false,"devDependencies":{"stylelint-order":"7.0.0","@ecosia/css-property-sort-order-smacss":"1.0.0"},"peerDependencies":{"stylelint":"^14.0.0 || ^15.0.0 || ^16.0.0"},"_npmOperationalInternal":{"tmp":"tmp/stylelint-config-property-sort-order-smacss_1.0.0_1750948123313_0.9502201079572001","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@ecosia/stylelint-config-property-sort-order-smacss","version":"2.0.0","keywords":["stylelint","stylelint-config","css","property-order","smacss","css-properties","linting"],"author":{"name":"Ecosia GmbH","email":"opensource@ecosia.org"},"license":"SEE LICENSE IN 'LICENSE.md'","_id":"@ecosia/stylelint-config-property-sort-order-smacss@2.0.0","maintainers":[{"name":"lostcrew","email":"emanuele.marchi@pm.me"},{"name":"matthias_bezero","email":"matthias@bezero.app"},{"name":"zaccolley","email":"zaccolley@fastmail.com"},{"name":"ecosia-deploybot","email":"dev.frontend@ecosia.org"},{"name":"dominik.henter","email":"dominik.henter@ecosia.org"},{"name":"codeliter","email":"hackzlord@gmail.com"},{"name":"julianmancera","email":"julian.mancera@ecosia.org"},{"name":"bettercallsol","email":"solomon.addey@ecosia.org"},{"name":"jonboulle","email":"jonathan.boulle@ecosia.org"},{"name":"paulquinney","email":"paul.quinney@ecosia.org"},{"name":"frank_ecosia","email":"frank.wambutt@ecosia.org"},{"name":"wondenge","email":"ondengew@gmail.com"},{"name":"sleepypioneer","email":"jessica0greene@gmail.com"},{"name":"melklein","email":"melanie.klein@ecosia.org"},{"name":"mwaitl","email":"markus.waitl@ecosia.org"},{"name":"selar","email":"arnaud.selva@ecosia.org"},{"name":"lopis","email":"joaopclopes@gmail.com"},{"name":"pbabbicola","email":"paula.babbicola@ecosia.org"},{"name":"damian.ehlhardt","email":"damian.ehlhardt@ecosia.org"},{"name":"ecosia.abhishek.juneja","email":"abhishek.juneja@ecosia.org"},{"name":"maiana.alebrant","email":"maiana.alebrant@ecosia.org"},{"name":"ecosiabot","email":"developer@ecosia.org"},{"name":"barbaraborges","email":"basborges@gmail.com"},{"name":"invoices","email":"invoices@ecosia.org"},{"name":"rodrigo-kayala","email":"rodrigo@kayala.com.br"},{"name":"liviaalmeida","email":"leave.ah@gmail.com"},{"name":"nasrinariafar","email":"nasrin.ariafar@ecosia.org"},{"name":"olukunle_ecosia","email":"olukunle.oduwobi@ecosia.org"},{"name":"solomon-ecosia","email":"oladiran.solomon@ecosia.org"},{"name":"kayjay298","email":"kathrin.wendt@ecosia.org"},{"name":"heldinz","email":"hello@alicerosemurphy.com"},{"name":"nejtehk","email":"nejteh.kaloussian@ecosia.org"},{"name":"majagach","email":"maja.gach@ecosia.org"},{"name":"ray-durrant-at-ecosia","email":"ray.durrant@ecosia.org"},{"name":"magalibo","email":"magali.goncalves@ecosia.org"},{"name":"lasselasse","email":"lasse.voss@ecosia.org"},{"name":"mariloubylr","email":"marilou.beyeler@ecosia.org"},{"name":"dryaha","email":"jessy.halison@ecosia.org"},{"name":"antonio.gerena","email":"antonio.gerena@ecosia.org"},{"name":"alirezam","email":"alireza.mohammadi@ecosia.org"},{"name":"francisca.s","email":"francisca.schlesinger@ecosia.org"},{"name":"sofiya.tepikin","email":"sofiya.tepikin@ecosia.org"},{"name":"luca-ecosia","email":"luca.schifino@ecosia.org"},{"name":"stephantul","email":"stephantul@gmail.com"},{"name":"mujtabamehdi","email":"mujtaba.mehdi@ecosia.org"},{"name":"uriel-ecosia","email":"uriel.corfa@ecosia.org"},{"name":"tusharmehtani","email":"tushar.mehtani@ecosia.org"},{"name":"yentingwang","email":"yenting.wang@ecosia.org"},{"name":"pauooo","email":"pauline.ballot@ecosia.org"}],"homepage":"https://github.com/ecosia/stylelint-config-property-sort-order-smacss#readme","bugs":{"url":"https://github.com/ecosia/stylelint-config-property-sort-order-smacss/issues"},"dist":{"shasum":"2336d3ec7b780e38cbaf4c8d5b0b93ec334007e1","tarball":"https://registry.npmjs.org/@ecosia/stylelint-config-property-sort-order-smacss/-/stylelint-config-property-sort-order-smacss-2.0.0.tgz","fileCount":5,"integrity":"sha512-bWojL8qzUabJ4FIpBCQntxorinlNXB1DzE4us0HT92PhlsCUqR2zfRc5+bGiutTUxKLLpW9Mk/uZamIP5aWzDg==","signatures":[{"sig":"MEUCIANrdifbE5XIX/dgVExqt+IqGvIaFOK1mTZ+Sj0VzypnAiEA3K4Kxb/JgDQ0cHarZayhCThA8IExISg4wIQ1hwjJgCE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18735},"main":"index.js","type":"module","gitHead":"5207eb435e057154132943d43598865e5d46ac0a","scripts":{"test":"vitest run","test:watch":"vitest"},"_npmUser":{"name":"lostcrew","actor":{"name":"lostcrew","type":"user","email":"emanuele.marchi@pm.me"},"email":"emanuele.marchi@pm.me"},"repository":{"url":"git+https://github.com/ecosia/stylelint-config-property-sort-order-smacss.git","type":"git"},"_npmVersion":"10.9.2","description":"Stylelint config for Property Sort Ordering based on the SMACSS methodology","directories":{},"_nodeVersion":"22.16.0","dependencies":{"stylelint-order":"7.0.0","@ecosia/css-property-sort-order-smacss":"1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4"},"peerDependencies":{"stylelint":"^14.0.0 || ^15.0.0 || ^16.0.0"},"_npmOperationalInternal":{"tmp":"tmp/stylelint-config-property-sort-order-smacss_2.0.0_1750949400427_0.7983584602094507","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2025-06-26T14:28:43.312Z","modified":"2025-11-04T17:07:00.586Z","1.0.0":"2025-06-26T14:28:43.477Z","2.0.0":"2025-06-26T14:50:00.613Z"},"bugs":{"url":"https://github.com/ecosia/stylelint-config-property-sort-order-smacss/issues"},"author":{"name":"Ecosia GmbH","email":"opensource@ecosia.org"},"license":"SEE LICENSE IN 'LICENSE.md'","homepage":"https://github.com/ecosia/stylelint-config-property-sort-order-smacss#readme","keywords":["stylelint","stylelint-config","css","property-order","smacss","css-properties","linting"],"repository":{"url":"git+https://github.com/ecosia/stylelint-config-property-sort-order-smacss.git","type":"git"},"description":"Stylelint config for Property Sort Ordering based on the SMACSS methodology","maintainers":[{"email":"emanuele.marchi@pm.me","name":"lostcrew"},{"email":"annalisa.berti@ecosia.org","name":"abertiecosia"},{"email":"frank.wambutt@ecosia.org","name":"frank_ecosia"}],"readme":"# @ecosia/stylelint-config-property-sort-order-smacss\n\n[Stylelint](https://github.com/stylelint/stylelint) config for Property Sort Ordering based on the [SMACSS](http://smacss.com) methodology.\n\n## Related Packages\n\n- [stylelint-config-property-sort-order-smacss](https://github.com/cahamilton/stylelint-config-property-sort-order-smacss/)\n\n## Usage\n\nThe following patterns are considered violations:\n\n```css\na {\n  color: red;\n  top: 0;\n}\n```\n\n```css\na {\n  top: 0;\n  color: black;\n  position: absolute;\n  display: block;\n}\n```\n\nThe following patterns are _not_ considered violations:\n\n```css\na {\n  top: 0;\n  color: red;\n}\n```\n\n```css\na {\n  display: block;\n  position: absolute;\n  top: 0;\n  color: black;\n}\n```\n\nRefer to [css-property-sort-order-smacss](https://github.com/cahamilton/css-property-sort-order-smacss/blob/v2.2.0/index.js) for the comprehensive list of property orders.\n\nFor more information on configuring Stylelint, check out the [configuration](https://github.com/stylelint/stylelint/blob/16.0.0/docs/user-guide/configure.md) guide.\n\n## Advanced\n\n**This is currently only possible with an exported JavaScript configuration.**\n\nThe basic usage outlined above, will enforce that properties are **strictly** sorted within their groups (box, border, background etc). Given this configuration makes use of [stylelint-order](https://github.com/hudochenkov/stylelint-order/tree/6.0.4) under the hood, there's a couple extra bits of functionality that can be configured. This will require manually generating the configuration - but passing in extra options as seen fit. These will be applied to **each** property group.\n\n### Options\n\nRefer to the [properties-order](https://github.com/hudochenkov/stylelint-order/blob/6.0.4/rules/properties-order/README.md#options) documentation for a list of available options.\n\nAll options except `properties` and `groupName` can be modified.\n\n### Examples\n\n#### Flexible Ordering\n\nThis will allow properties within the same group to be in any order.\n\nGiven:\n\n```js\n// stylelint.config.js\n\nconst sortOrderSmacss = require('stylelint-config-property-sort-order-smacss/generate');\n\nmodule.exports = {\n  plugins: ['stylelint-order'],\n  rules: {\n    'order/properties-order': [\n      sortOrderSmacss()\n    ],\n  },\n};\n```\n\nThe following patterns are considered violations:\n\n```css\na {\n  top: 0;\n  position: absolute;\n  display: block;\n  color: black;\n}\n```\n\nGiven:\n\n```js\n// stylelint.config.js\n\nconst sortOrderSmacss = require('stylelint-config-property-sort-order-smacss/generate');\n\nmodule.exports = {\n  plugins: ['stylelint-order'],\n  rules: {\n    'order/properties-order': [\n      sortOrderSmacss({ order: 'flexible' })\n    ],\n  },\n};\n```\n\nThe following patterns are _not_ considered violations:\n\n```css\na {\n  top: 0;\n  position: absolute;\n  display: block;\n  color: black;\n}\n```\n\n#### Empty Line After Property Group\n\nThis will allow an empty line after each property group:\n\nGiven:\n\n```js\n// stylelint.config.js\n\nconst sortOrderSmacss = require('stylelint-config-property-sort-order-smacss/generate');\n\nmodule.exports = {\n  plugins: ['stylelint-order'],\n  rules: {\n    'order/properties-order': [\n      sortOrderSmacss({ emptyLineBefore: 'never' })\n    ],\n  },\n};\n```\n\nThe following patterns are considered violations:\n\n```css\na {\n  display: block;\n  position: absolute;\n  top: 0;\n\n  color: black;\n}\n```\n\nGiven:\n\n```js\n// stylelint.config.js\n\nconst sortOrderSmacss = require('stylelint-config-property-sort-order-smacss/generate');\n\nmodule.exports = {\n  plugins: ['stylelint-order'],\n  rules: {\n    'order/properties-order': [\n      sortOrderSmacss({ emptyLineBefore: 'always' })\n    ],\n  },\n};\n```\n\nThe following patterns are _not_ considered violations:\n\n```css\na {\n  display: block;\n  position: absolute;\n  top: 0;\n\n  color: black;\n}\n```\n\n## Contributing\n\nSee [CONTRIBUTING.md](./CONTRIBUTING.md) for contribution guidelines.\n\n## License\n\nSee [LICENSE.md](./LICENSE.md) for license information.\n","readmeFilename":"README.md"}