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이 됩니다.