パッケージの詳細

stylelint-config-property-sort-order-smacss

cahamilton265.3kMIT10.0.0

Stylelint config for Property Sort Ordering based on the SMACSS methodology

CSS, SMACSS, Scalable and Modular Architecture for CSS, CSS Property Sort Order

readme

stylelint-config-property-sort-order-smacss

SMACSS Logo Stylelint Logo

Build CodeQL NPM version NPM Downloads Coverage Status

Stylelint config for Property Sort Ordering based on the SMACSS methodology.

Installation

npm install stylelint-config-property-sort-order-smacss --save-dev
yarn add stylelint-config-property-sort-order-smacss --dev

Usage

To start using this configuration, simply extend this package in your Stylelint configuration.

{
  "extends": "stylelint-config-property-sort-order-smacss",
  "rules": {
    // Add additional rules here
  }
}

Given the above, the following patterns are considered violations:

a {
  color: red;
  top: 0;
}
a {
  top: 0;
  color: black;
  position: absolute;
  display: block;
}

The following patterns are not considered violations:

a {
  top: 0;
  color: red;
}
a {
  display: block;
  position: absolute;
  top: 0;
  color: black;
}

Refer to css-property-sort-order-smacss for the comprehensive list of property orders.

For more information on configuring Stylelint, check out the configuration guide.

Advanced

This is currently only possible with an exported JavaScript configuration.

The 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 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.

Options

Refer to the properties-order documentation for a list of available options.

All options except properties and groupName can be modified.

Examples

Flexible Ordering

This will allow properties within the same group to be in any order.

Given:

// stylelint.config.js

const sortOrderSmacss = require('stylelint-config-property-sort-order-smacss/generate');

module.exports = {
  plugins: ['stylelint-order'],
  rules: {
    'order/properties-order': [
      sortOrderSmacss()
    ],
  },
};

The following patterns are considered violations:

a {
  top: 0;
  position: absolute;
  display: block;
  color: black;
}

Given:

// stylelint.config.js

const sortOrderSmacss = require('stylelint-config-property-sort-order-smacss/generate');

module.exports = {
  plugins: ['stylelint-order'],
  rules: {
    'order/properties-order': [
      sortOrderSmacss({ order: 'flexible' })
    ],
  },
};

The following patterns are not considered violations:

a {
  top: 0;
  position: absolute;
  display: block;
  color: black;
}

Empty Line After Property Group

This will allow an empty line after each property group:

Given:

// stylelint.config.js

const sortOrderSmacss = require('stylelint-config-property-sort-order-smacss/generate');

module.exports = {
  plugins: ['stylelint-order'],
  rules: {
    'order/properties-order': [
      sortOrderSmacss({ emptyLineBefore: 'never' })
    ],
  },
};

The following patterns are considered violations:

a {
  display: block;
  position: absolute;
  top: 0;

  color: black;
}

Given:

// stylelint.config.js

const sortOrderSmacss = require('stylelint-config-property-sort-order-smacss/generate');

module.exports = {
  plugins: ['stylelint-order'],
  rules: {
    'order/properties-order': [
      sortOrderSmacss({ emptyLineBefore: 'always' })
    ],
  },
};

The following patterns are not considered violations:

a {
  display: block;
  position: absolute;
  top: 0;

  color: black;
}

更新履歴

Changelog

All notable changes to this project will be documented in this file.

This project adheres to Semantic Versioning.

v10.0.0

  • Adds support for Stylelint v16
  • Remove Node v14 and v16 support (EOL)
  • Set minimum Node version required for Stylelint v16 in engines field

Full Changelog

v9.1.0

  • Adds support for Stylelint v15

Full Changelog

v9.0.0

Full Changelog

v8.0.0

  • Removes support for Node versions that have reached EOL (v10 and v15)
  • Adds support for Stylelint v14
  • Removes support for legacy versions of Stylelint (v10, v11, v12 and v13)

Full Changelog

v7.1.0

  • Add Node v16 support

Full Changelog

v7.0.0

  • Remove Node v13 support (EOL)

Full Changelog

v6.4.0

  • Add Node v15 support

Full Changelog

v6.3.0

  • Updates to allow for Advanced Configuration

Full Changelog