Flex 레이아웃

Flex 레이아웃 (CSS 변수)

Flex 레이아웃에서 사용하는 CSS 변수를 정리한 문서예요. display, 정렬, 간격(spacer/gap)을 토큰으로 제어할 수 있어요.

출처: 문서

본문

기본 CSS 변수

Selector Variable Value
.pf-v6-l-flex --pf-v6-l-flex--Display flex
.pf-v6-l-flex --pf-v6-l-flex--FlexWrap wrap
.pf-v6-l-flex --pf-v6-l-flex--AlignItems baseline
.pf-v6-l-flex --pf-v6-l-flex--m-row--AlignItems baseline
.pf-v6-l-flex --pf-v6-l-flex--m-row-reverse--AlignItems baseline
.pf-v6-l-flex --pf-v6-l-flex--item--Order 0
.pf-v6-l-flex --pf-v6-l-flex--spacer--column--base 1rem
.pf-v6-l-flex --pf-v6-l-flex--spacer--row--base 0.5rem
.pf-v6-l-flex --pf-v6-l-flex--RowGap 0.5rem
.pf-v6-l-flex --pf-v6-l-flex--ColumnGap 0
.pf-v6-l-flex.pf-m-inline-flex --pf-v6-l-flex--Display inline-flex
.pf-v6-l-flex > * --pf-v6-l-flex--spacer initial
.pf-v6-l-flex > * --pf-v6-l-flex--spacer--column initial, 1rem
.pf-v6-l-flex > * --pf-v6-l-flex--spacer--row initial, 0.5rem
.pf-v6-l-flex > *:last-child --pf-v6-l-flex--spacer 0
.pf-v6-l-flex.pf-m-column --pf-v6-l-flex--RowGap 0
.pf-v6-l-flex.pf-m-column --pf-v6-l-flex--ColumnGap 1rem

값 체인 (token chain)

  • --pf-v6-l-flex--spacer--column--base → --pf-t--global--spacer--gutter--default → --pf-t--global--spacer--md → --pf-t--global--spacer--300 → 1rem
  • --pf-v6-l-flex--spacer--row--base → --pf-t--global--spacer--sm → --pf-t--global--spacer--200 → 0.5rem
  • --pf-v6-l-flex--RowGap → --pf-v6-l-flex--spacer--row--base → --pf-t--global--spacer--sm → --pf-t--global--spacer--200 → 0.5rem
  • --pf-v6-l-flex--ColumnGap → 0
  • --pf-v6-l-flex--spacer--column → var(--pf-v6-l-flex--spacer, --pf-v6-l-flex--spacer--column--base) → initial, --pf-v6-l-flex--spacer--column--base → initial, --pf-t--global--spacer--gutter--default → initial, 1rem
  • --pf-v6-l-flex--spacer--row → var(--pf-v6-l-flex--spacer, --pf-v6-l-flex--spacer--row--base) → initial, --pf-v6-l-flex--spacer--row--base → initial, --pf-t--global--spacer--sm → initial, 0.5rem

gap modifier 변수

Selector Variable Value
.pf-v6-l-flex --pf-v6-l-flex--m-gap--RowGap 0.5rem
.pf-v6-l-flex --pf-v6-l-flex--m-gap--ColumnGap 1rem
.pf-v6-l-flex --pf-v6-l-flex--m-row-gap--RowGap 0.5rem
.pf-v6-l-flex --pf-v6-l-flex--m-column-gap--ColumnGap 1rem

체인:

  • --pf-v6-l-flex--m-gap--RowGap / --pf-v6-l-flex--m-row-gap--RowGap → --pf-v6-l-flex--spacer--row--base → --pf-t--global--spacer--sm → --pf-t--global--spacer--200 → 0.5rem
  • --pf-v6-l-flex--m-gap--ColumnGap / --pf-v6-l-flex--m-column-gap--ColumnGap → --pf-v6-l-flex--spacer--column--base → --pf-t--global--spacer--gutter--default → --pf-t--global--spacer--md → --pf-t--global--spacer--300 → 1rem

spacer 스케일

--pf-v6-l-flex--spacer--{size} 변수는 선택자 .pf-v6-l-flex/.pf-v6-l-flex .pf-m-spacer-{size}/.pf-v6-l-flex.pf-m-space-items-{size}에 사용됩니다.

Size 값 토큰 체인
none 0 —
xs 0.25rem --pf-t--global--spacer--xs → --pf-t--global--spacer--100 → 0.25rem
sm 0.5rem --pf-t--global--spacer--sm → --pf-t--global--spacer--200 → 0.5rem
md 1rem --pf-t--global--spacer--md → --pf-t--global--spacer--300 → 1rem
lg 1.5rem --pf-t--global--spacer--lg → --pf-t--global--spacer--400 → 1.5rem
xl 2rem --pf-t--global--spacer--xl → --pf-t--global--spacer--500 → 2rem
2xl 3rem --pf-t--global--spacer--2xl → --pf-t--global--spacer--600 → 3rem
3xl 4rem --pf-t--global--spacer--3xl → --pf-t--global--spacer--700 → 4rem
4xl 5rem --pf-t--global--spacer--4xl → --pf-t--global--spacer--800 → 5rem

space-items modifier

  • .pf-v6-l-flex.pf-m-space-items-{size} > * → --pf-v6-l-flex--spacer는 위 스케일의 값을 사용합니다.
  • .pf-v6-l-flex.pf-m-space-items-{size} > :last-child → --pf-v6-l-flex--spacer는 0입니다.
  • .pf-v6-l-flex.pf-m-space-items-none > * → --pf-v6-l-flex--spacer → --pf-v6-l-flex--spacer--none → 0

개별 항목 spacer modifier

  • .pf-v6-l-flex .pf-m-spacer-{size} 및 .pf-v6-l-flex .pf-m-spacer-{size}:last-child → --pf-v6-l-flex--spacer는 위 스케일의 값을 그대로 사용합니다 (none/xs 이후에는 :last-child도 동일한 값을 유지합니다).

gap modifier 상세

각 gap modifier는 --pf-v6-l-flex--RowGap/--pf-v6-l-flex--ColumnGap을 해당 spacer 스케일 값으로 설정합니다:

Modifier RowGap 값 ColumnGap 값
.pf-m-gap 0.5rem 1rem
.pf-m-gap-none 0 0
.pf-m-gap-xs 0.25rem 0.25rem
.pf-m-gap-sm 0.5rem 0.5rem
.pf-m-gap-md 1rem 1rem
.pf-m-gap-lg 1.5rem 1.5rem
.pf-m-gap-xl 2rem 2rem
.pf-m-gap-2xl 3rem 3rem
.pf-m-gap-3xl 4rem 4rem
.pf-m-gap-4xl 5rem 5rem

.pf-v6-l-flex:is(.pf-m-gap, .pf-m-gap-none, ... .pf-m-gap-4xl) > *에서 --pf-v6-l-flex--spacer--row와 --pf-v6-l-flex--spacer--column은 모두 0이 됩니다 (gap이 spacing 시스템을 재정의).

row-gap / column-gap modifier

Modifier RowGap 값
.pf-m-row-gap 0.5rem
.pf-m-row-gap-none 0
.pf-m-row-gap-xs 0.25rem
.pf-m-row-gap-sm 0.5rem
.pf-m-row-gap-md 1rem
.pf-m-row-gap-lg 1.5rem
.pf-m-row-gap-xl 2rem
.pf-m-row-gap-2xl 3rem
.pf-m-row-gap-3xl 4rem
.pf-m-row-gap-4xl 5rem
Modifier ColumnGap 값
.pf-m-column-gap 1rem
.pf-m-column-gap-none 0
.pf-m-column-gap-xs 0.25rem
.pf-m-column-gap-sm 0.5rem
.pf-m-column-gap-md 1rem
.pf-m-column-gap-lg 1.5rem
.pf-m-column-gap-xl 2rem
.pf-m-column-gap-2xl 3rem
.pf-m-column-gap-3xl 4rem
.pf-m-column-gap-4xl 5rem

.pf-v6-l-flex:is(.pf-m-row-gap, ...) > *에서 --pf-v6-l-flex--spacer--row는 0이 됩니다. .pf-v6-l-flex:is(.pf-m-column-gap, ...) > *에서 --pf-v6-l-flex--spacer--column은 0이 됩니다.

더 알아보기 (Learn more)