Flex Basis

Flex Basis (flex-basis)

flex 항목의 초기 크기(기본 크기)를 정해 주는 유틸리티예요. 항목이 커지거나 줄어들기 전의 시작 지점 크기를 설정한다고 생각하면 돼요.

출처: 문서

본문

클래스 & 스타일 (Class Styles)

basis-<number> flex-basis: calc(var(--spacing) * <number>);

basis-<fraction> flex-basis: calc(<fraction> * 100%);

basis-full flex-basis: 100%;

basis-auto flex-basis: auto;

basis-px flex-basis: 1px;

basis-3xs flex-basis: var(--container-3xs); /* 16rem (256px) */

basis-2xs flex-basis: var(--container-2xs); /* 18rem (288px) */

basis-xs flex-basis: var(--container-xs); /* 20rem (320px) */

basis-sm flex-basis: var(--container-sm); /* 24rem (384px) */

basis-md flex-basis: var(--container-md); /* 28rem (448px) */

basis-lg flex-basis: var(--container-lg); /* 32rem (512px) */

basis-xl flex-basis: var(--container-xl); /* 36rem (576px) */

basis-2xl flex-basis: var(--container-2xl); /* 42rem (672px) */

basis-3xl flex-basis: var(--container-3xl); /* 48rem (768px) */

basis-4xl flex-basis: var(--container-4xl); /* 56rem (896px) */

basis-5xl flex-basis: var(--container-5xl); /* 64rem (1024px) */

basis-6xl flex-basis: var(--container-6xl); /* 72rem (1152px) */

basis-7xl flex-basis: var(--container-7xl); /* 80rem (1280px) */

basis-(<custom-property>) flex-basis: var(<custom-property>);

basis-[<value>] flex-basis: <value>;

스페이싱 스케일 사용하기 (Using the spacing scale)

basis-64, basis-128 같은 basis-<number> 유틸리티를 사용하면 스페이싱 스케일을 기준으로 flex 항목의 초기 크기를 설정할 수 있어요.

01 02 03

<div class="flex flex-row">
  <div class="basis-64">01</div>
  <div class="basis-64">02</div>
  <div class="basis-128">03</div>
</div>

컨테이너 스케일 사용하기 (Using the container scale)

basis-xs, basis-sm 같은 유틸리티를 사용하면 컨테이너 스케일을 기준으로 flex 항목의 초기 크기를 설정할 수 있어요.

01 02 03 04

<div class="flex flex-row">
  <div class="basis-3xs">01</div>
  <div class="basis-2xs">02</div>
  <div class="basis-xs">03</div>
  <div class="basis-sm">04</div>
</div>

백분율 사용하기 (Using percentages)

basis-1/2, basis-2/3 같은 basis-<fraction> 유틸리티를 사용하면 flex 항목의 초기 크기를 백분율로 설정할 수 있어요.

01 02

<div class="flex flex-row">
  <div class="basis-1/3">01</div>
  <div class="basis-2/3">02</div>
</div>

커스텀 값 사용하기 (Using a custom value)

basis-[<value>] 문법을 사용하면 완전히 커스텀한 값으로 basis를 설정할 수 있어요.

<div class="basis-[30vw] ...">
  <!-- ... -->
</div>

CSS 변수를 쓸 때는 basis-(<custom-property>) 문법을 사용할 수도 있어요.

<div class="basis-(--my-basis) ...">
  <!-- ... -->
</div>

이것은 basis-[var(<custom-property>)]의 줄임 표현이에요. var() 함수를 자동으로 추가해 주기 때문에 훨씬 편리하죠.

반응형 디자인 (Responsive design)

flex-basis 유틸리티에 md: 같은 브레이크포인트 variant를 붙이면 중간(medium) 화면 크기 이상에서만 유틸리티를 적용할 수 있어요.

<div class="flex flex-row">
  <div class="basis-1/4 md:basis-1/3">01</div>
  <div class="basis-1/4 md:basis-1/3">02</div>
  <div class="basis-1/2 md:basis-1/3">03</div>
</div>

variant 사용에 대해 더 자세히 알고 싶다면 variants 문서를 확인해 보세요.

테마 커스터마이징 (Customizing your theme)

--container-* 테마 변수를 사용하면 프로젝트의 고정 너비 basis 유틸리티를 커스터마이즈할 수 있어요.

@theme {
  --container-4xs: 14rem;
}

이제 마크업에서 basis-4xs 유틸리티를 사용할 수 있어요.

<div class="basis-4xs">
  <!-- ... -->
</div>

basis-<number> 유틸리티는 --spacing 테마 변수에 의해 구동돼요. 이 변수도 커스터마이즈할 수 있어요.

@theme {
  --spacing: 1px;
}

스페이싱 스케일 커스터마이징에 대해 더 자세히 알고 싶다면 theme 문서를 확인해 보세요.

더 알아보기 (Learn more)