VSCodeでCSSプロパティの自動並べ替え設定方法

CSSプロパティの順序指定にVSCodeのCSSCombを使用しているので、その設定方法をまとめておこうと思います。

実現したいこと

  • CSSのプロパティに順序ルールを設けてCSS(SASS)の可読性を高める

CSSのプロパティの順番は人によって異なっていたりバラバラのまま書いている方もいるかと思うので、気軽に共通ルールを設けられると良いですね。

設定方法

1.VSCodeに拡張機能CSSCombを追加

VSCodeの拡張機能画面からCSSCombを追加しましょう。

2.設定ファイルを追加

/Users/{your_user_name}/.vscode/mycsscomb.json

ユーザー直下にある.vscodeフォルダにmycsscomb.jsonを追加しましょう。

基本みやしもブログさんの【VSCode】拡張機能『CSSComb』の設定内容を紹介しますにあるコードのまま使用させていただいています。一点、”element-case”: “lower”,を設定しているとローワーキャメルケースで設定したクラス名が全て小文字になってしまうことがあるので、この部分だけ削除しています。

{
    "always-semicolon": true,
    "block-indent": "    ",
    "color-case": "lower",
    "color-shorthand": false,
    "eof-newline": false,
    "leading-zero": false,
    "quotes": "double",
    "space-after-colon": " ",
    "space-after-combinator": " ",
    "space-after-opening-brace": "\n",
    "space-after-selector-delimiter": " ",
    "space-before-closing-brace": "\n",
    "space-before-colon": "",
    "space-before-combinator": " ",
    "space-before-opening-brace": " ",
    "space-before-selector-delimiter": "",
    "space-between-declarations": "\n",
    "strip-spaces": true,
    "tab-size": true,
    "unitless-zero": true,
    "vendor-prefix-align": true,
    "remove-empty-rulesets": true,
    "sort-order": [
        [
            "$variable",
            "$import",
            "$extend",
            "$include",
            "display",
            "flex",
            "flex-grow",
            "flex-shrink",
            "flex-basis",
            "flex-flow",
            "flex-direction",
            "flex-wrap",
            "justify-content",
            "align-content",
            "align-items",
            "align-self",
            "order",
            "visibility",
            "opacity",
            "clip ",
            "clip-path",
            "list-style",
            "list-style-type",
            "list-style-position",
            "list-style-image",
            "position",
            "top",
            "right",
            "bottom",
            "left",
            "z-index",
            "float",
            "clear",
            "transform",
            "width",
            "min-width",
            "max-width",
            "height",
            "min-height",
            "max-height",
            "margin",
            "margin-top",
            "margin-right",
            "margin-bottom",
            "margin-left",
            "padding",
            "padding-top",
            "padding-right",
            "padding-bottom",
            "padding-left",
            "overflow",
            "overflow-x",
            "overflow-y",
            "border",
            "border-top",
            "border-right",
            "border-bottom",
            "border-left",
            "border-width",
            "border-top-width",
            "border-right-width",
            "border-bottom-width",
            "border-left-width",
            "border-style",
            "border-top-style",
            "border-right-style",
            "border-bottom-style",
            "border-left-style",
            "border-color",
            "border-top-color",
            "border-right-color",
            "border-bottom-color",
            "border-left-color",
            "border-image",
            "border-image-source",
            "border-image-slice",
            "border-image-width",
            "border-image-outset",
            "border-image-repeat",
            "border-radius",
            "border-top-left-radius",
            "border-top-right-radius",
            "border-bottom-right-radius",
            "border-bottom-left-radius",
            "box-sizing",
            "box-shadow",
            "background",
            "background-image",
            "background-position",
            "background-size",
            "background-repeat",
            "background-origin",
            "background-clip",
            "background-attachment",
            "background-color",
            "color",
            "font",
            "font-style",
            "font-variant",
            "font-weight",
            "font-stretch",
            "font-size",
            "line-height",
            "font-family",
            "letter-spacing",
            "text-decoration",
            "text-decoration-color",
            "text-decoration-style",
            "text-decoration-line",
            "text-align",
            "text-indent",
            "text-transform",
            "white-space",
            "word-break",
            "word-spacing",
            "word-wrap",
            "text-shadow",
            "table-layout",
            "border-collapse",
            "border-spacing",
            "empty-cells",
            "caption-side",
            "vertical-align",
            "content",
            "quotes",
            "counter-increment",
            "counter-reset",
            "outline",
            "outline-color",
            "outline-style",
            "outline-width",
            "cursor",
            "resize",
            "transition",
            "transition-property",
            "transition-duration",
            "transition-timing-function",
            "transition-delay",
            "animation",
            "animation-name",
            "animation-duration",
            "animation-timing-function",
            "animation-delay",
            "animation-iteration-count",
            "animation-direction",
            "animation-fill-mode",
            "animation-play-state",
            "unicode-bidi",
            "direction",
            "page-break-before",
            "page-break-after",
            "page-break-inside",
            "widows",
            "orphans"
        ]
    ]
}

まとめ

CSSの順序整理方法は他にもあるかと思いますが、現在はCSSCombで設定しています。もっと楽な方法、改善点等ありましたらぜひ教えてください。

参考:【VSCode】拡張機能『CSSComb』の設定内容を紹介します

ー この記事をシェアする? ー

この記事にコメントする

このサイトはreCAPTCHAとGoogleによって保護されています。プライバシーポリシー利用規約が適用されます。

  • なすび より:

    初めまして。参考になりました。
    CSSCombはDart Sassには対応しているのでしょうか。
    また、それともこれはLib Sassを使用した環境であることを前提とした記事でしょうか。

    SCSS記法なら使用できる、SASS記法であれば使用できない等などもう少し深ぼった情報をいただけるとありがたいです。
    現在Dart Sassを使用するにあたってプロパティの自動並び替えができないか色々と手段を探しています。