Tinyrack

반응형 레이아웃

Tinyrack 치수, 컨테이너, 공통 브레이크포인트로 콘텐츠에 공간이 필요한 시점에 재배치되는 모바일 우선 레이아웃을 만들어요.

가장 작은 유효 레이아웃부터 시작

한 열이나 줄바꿈 레이아웃을 먼저 작성하세요. 콘텐츠를 훑기 어렵거나 레이블이 충돌하거나 동작을 쓰기 힘들 만큼 공간이 줄어들 때만 브레이크포인트를 추가해요. 기기 이름이 아니라 콘텐츠가 기준이에요.

브레이크포인트보다 치수를 먼저 선택

한 영역에 읽기 좋은 너비가 필요하면 measure를 사용해요. 재사용 영역이 놓인 공간 크기에 맞춰 반응해야 하면 컨테이너 쿼리를 사용하세요. 페이지 셸이나 여러 영역이 함께 재배치되어야 하면 뷰포트 브레이크포인트를 사용해요.

토큰Tailwind
measure-xs4remmax-w-tinyrack-measure-xs
measure-sm8remmax-w-tinyrack-measure-sm
measure-md12remmax-w-tinyrack-measure-md
measure-lg16remmax-w-tinyrack-measure-lg
measure-xl24remmax-w-tinyrack-measure-xl
<article className="max-w-tinyrack-measure-xl">...</article>
<section className="@container"><div className="grid @md:grid-cols-2">...</div></section>

공통 브레이크포인트 스케일

Tailwind 테마 변수는 --breakpoint-sm, --breakpoint-md, --breakpoint-lg예요. TypeScript의 tinyrackBreakpoints도 같은 값을 제공해요.

토큰Tailwind 테마 변수Tailwind 변형
sm40rem--breakpoint-smsm:*
md48rem--breakpoint-mdmd:*
lg64rem--breakpoint-lglg:*
xl80rem--breakpoint-xlxl:*

축소하지 말고 재배치

  • 레이블과 값이 답답해지기 전에 위아래로 배치하세요.
  • 주요 동작을 계속 사용할 수 있도록 동작 행을 줄바꿈하세요.
  • 보조 탐색을 숨기지 말고 명확한 컨트롤 뒤로 옮기세요.
  • 열을 비교해야 하는 표는 자체 컨테이너 안에서 스크롤하게 하세요.
<section className="grid gap-4 md:grid-cols-[minmax(0,1fr)_auto]">
  <div>랙 세부 정보</div><div className="flex flex-wrap gap-2">동작</div>
</section>

구현 책임 나누기

시각적 재배치와 컨테이너 쿼리는 CSS 또는 Tailwind로 처리해요. 동작, 데이터 로딩, 상호작용 방식이 바뀌어야 할 때만 TypeScript에서 tinyrackBreakpoints를 읽으세요. Tailwind가 공통 --breakpoint-* 스케일을 해석하도록 컴포넌트 스타일보다 @tinyrack/ui/core.css를 먼저 불러오세요.

반응형 품질 확인

바꾼 임계값의 바로 아래, 경계, 바로 위에서 확인하세요. 390px 뷰포트, 200% 확대, 긴 현지화 레이블, 키보드 포커스 순서, 표 내부의 가로 스크롤, 필수 동작이 사라지지 않는지를 포함해요.