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

  • PR
  • プログラミング
【VSCode】拡張機能『CSSComb』の設定内容を紹介します


この記事では、VSCodeの拡張機能『CSSComb(シーエスエス・コーム)』で使用している、筆者の設定内容を紹介いたします。

CSSCombのひとつの設定例として、参考にして頂けたら嬉しく思います!

▼この記事を書いたひと

フリーランスみやしも(@miyashimo_blog)です。プログラミングやWebサイト制作に関するITの情報を幅広くお届けしていきます。

CSSCombの設定について

VSCodeでCSSのフォーマットを行う際には、拡張機能の『CSSComb』を利用するのが便利ですが、その設定内容の多さから、どの様に調整すべきかで悩まれる方もいると思います。(いなかったらすみません。。)

CSScomb
Visual Studio Code拡張機能『CSScomb』

そこで今回は、筆者が使用しているCSSCombの設定ファイルを紹介します。コピペしてすぐにCSScombの設定ファイル(csscomb.json)が作成できる内容となります。



VSCodeの拡張機能『CSSComb』のインストール方法や使用方法については、次の記事が参考になります。

筆者が使用している『CSSComb』の設定内容

それではさっそく『CSSComb』の設定内容を紹介してゆきます。現在僕は、次のような設定内容のもとにCSSフォーマットを行っています。

CSSCombの設定内容(JSON形式)

{
    "always-semicolon": true,
    "block-indent": "    ",
    "color-case": "lower",
    "color-shorthand": false,
    "element-case": "lower",
    "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"
        ]
    ]
}

CSSCombの設定を使用する方法

上記の内容をコピーして、VSCodeの設定ファイル(csscomb.json)に貼り付ければ設定が適用できます。設定ファイルが存在しない場合は、VSCodeのルートフォルダ直下に『csscomb.json』ファイルを作成すればOKです。

CSScombの設定ファイルを作成した状態
CSSCombの設定ファイル

もしくは別の場所にJSONを保存しておき、VSCode設定ファイル(setting.json)の『csscomb.preset』でそのファイルのパスを指定する。といった方法でも適用が可能です。



▼setting.jsonで設定する場合

{
  "csscomb.preset": "~/.csscomb.json"
}

設定内容の決め方について

フォーマットの内容は実際に使用して貰ったほうが把握しやすいと思いますので、細かな解説は省略しますが、ここでは設定内容の作成プロセスなど、少しだけ補足をしてゆきます。

CSSフォーマット

基本的なCSSフォーマットの内容には、公式の『設定ファイルジェネレーター』を使用しています。



こちらは24個の質問に答えながら設定ファイルが作成できるといったツールになります。視覚的に確認しながら設定を決められるので、ゼロから設定を作りたい、といった方はこちらを利用するのが良いと思います。



このあと実際にコーディングをしていく過程で、公式のドキュメントやQiitaの記事を見ながら少しずつ調整を行い、上記に公開した内容に落ち着きました。

その時に調べた設定内容は、冒頭で紹介した記事にまとめていますので、気になる方はぜひチェックしてみて下さいね。

CSSプロパティの記述順(sort-order)

CSSプロパティの記述順が決められる『sort-order』の内容については、以下のGitHubページを参考にさせて頂きました。



▼GitHub(CSS Property Order)

https://github.com/devmgn/css-property-order



そもそものコーディングルールの決め方として、CSSプロパティの記述順には大きく『アルファベット順』『視覚順』の2つの方針があると思いますが、上記はこの内の『視覚順』を方針とした結果になります。



このほか、『$variable』『$import』『$extend』といった値も利用して、Sassの書式にも対応させています。

CSSCombの設定内容の紹介や、補足については以上となります!

この記事のまとめ

この記事では、VSCodeの拡張機能『CSSComb(シーエスエス・コーム)』で使用している、筆者の設定内容を紹介してゆきました。



公開した内容や、補足した内容が、CSSCombの設定内容で悩んでいる方にとって、少しでも参考になれば嬉しく思います。

今回は以上となります。最後までお読みいただき、ありがとうございました!