CSS 선언순서 (PostCSS Sorting 이용하기)

CSS 선언순서 (PostCSS Sorting 이용하기)

NHN 코딩 컨벤션에 따른 CSS 선언순서를 지켜야하다보니 마크업하는 시간이 꽤나 오래 걸렸다. 보다 빠르게 작업하기 위해 여러 익스텐션을 찾아보던중 postCSS Sorting 을 사용하게 되었고 그동안 사용해보며 마크업 시간을 많이 단축시키게 되어 소개한다.

PostCSS

CSS 속성 순서를 정돈해주는 VScode EXTENSION 이다.

1.익스텐션을 인스톨하고 익스텐션의 settings 파일을 열어준다.

2.properties-order 안에 원하는 선언순서에 맞게 css 속성들을 정렬해준다. 3. keyboard shortcuts 에서 해당 익스텐션의 단축키를 등록해주자.

단축키를 이용해 쉽게 선언순서를 정렬할 수 있다.


NHN 코딩 컨벤션에 따른 CSS 선언순서

NHN 코딩 컨벤션에 따른 CSS 선언순서 나는 네이버 코딩 컨벤션을 기준으로 정렬하고 있으며 그동안 선언순서에 맞춰 정리한 CSS 속성들을 업데이트 하고 공유한다.

"postcssSorting.config": { "properties-order": [ /* Layout */ "display", "grid", "grid-column-gap", "grid-row-gap", "grid-auto-flow", "grid-auto-rows", "grid-auto-columns", "justify-items", "align-content", "place-items", "gap", "align-items", "justify-content", "flex-wrap", "flex-basis", "flex-grow", "flex-shrink", "flex", "align-self", "flex-direction", /* Box */ "margin", "margin-top", "margin-right", "margin-bottom", "margin-left", "padding", "padding-top", "padding-right", "padding-bottom", "padding-left", "border", "border-top", "border-bottom", "border-right", "border-left", "border-style", "border-color", "border-top-width", "border-right-width", "border-bottom-width", "border-left-width", "border-top-style", "border-right-style", "border-bottom-style", "border-left-style", "border-top-color", "border-right-color", "border-bottom-color", "border-left-color", "border-top-left-radius", "border-top-right-radius", "border-bottom-right-radius", "border-bottom-left-radius", "outline", "outline-width", "outline-style", "outline-color", "outline-offset", "box-shadow", "overflow", "overflow-x", "overflow-y", "clip", "position", "top", "right", "bottom", "left", "z-index", "width", "min-width", "max-width", "height", "min-height", "max-height", "float", "clear", "visibility", "vertical-align", /* Background */ "background", "background-color", "background-image", "background-repeat", "background-attachment", "background-position", "background-clip", "background-origin", "background-size", /* Font */ "font-family", "font-size", "font-style", "font-weight", "line-height", "color", "text-align", "text-decoration", "text-transform", "letter-spacing", "text-shadow", "white-space", "word-spacing", "word-break", "word-wrap", "text-indent", "direction", "unicode-bidi", "hyphens", /* Animation and Transition */ "animation", "animation-name", "animation-duration", "animation-timing-function", "animation-delay", "animation-iteration-count", "animation-direction", "animation-fill-mode", "animation-play-state", "transition", "transition-property", "transition-duration", "transition-timing-function", "transition-delay", /* Other */ "content", "counter-reset", "counter-increment", "quotes", "list-style", "list-style-position", "list-style-type", "caption-side", "empty-cells", "table-layout", "pointer-events", "cursor", "resize", "overflow-wrap", "scroll-snap-type", "scroll-padding", "scroll-padding-top", "scroll-padding-right", "scroll-padding-bottom", "scroll-padding-left", "scroll-behavior", "scroll-snap-align", "scroll-snap-margin", "scroll-snap-stop", "scrollbar-width", "scrollbar-color" ] }
JP
이중표Frontend Engineer

3년차 프론트엔드 개발자. Next.js, React, TypeScript 기반 웹 애플리케이션 개발 전문. 대규모 트래픽 환경에서 SSR·ISR 렌더링 전략 설계 경험.

이력서 보기