글꼴과 간격은 화면의 리듬을 만들고, 작은 토큰 집합은 여러 컴포넌트를 같은 제품처럼 보이게 해.
글자 역할부터 정해
본문, 제목, 보조 설명, 코드처럼 역할을 나누고 각 역할에 크기, 굵기, 줄높이를 연결해. 화면마다 임의의 값을 만들기보다 제한된 조합을 반복하면 계층이 빠르게 읽혀.
간격도 작은 척도를 사용해
4px이나 그 배수를 바탕으로 몇 개의 간격 토큰을 정하고 padding, margin, gap에 사용해. 모든 숫자를 금지할 필요는 없지만 같은 관계에는 같은 간격을 써야 해.
Tailwind 테마에 의미를 담아
@theme에 글꼴, 글자 크기, 간격 토큰을 선언하면 유틸리티와 직접 만든 CSS가 같은 값을 공유해. 디자인이 바뀌어도 토큰 한곳을 고치면 전체 리듬을 조정할 수 있어.
반응형에서도 역할은 유지해
작은 화면에서는 제목 크기와 여백을 줄일 수 있지만 제목과 본문의 관계까지 뒤집지는 마. Clamp나 breakpoint를 이용해 값은 바꾸되 계층은 유지해.
Tailwind의 글자 크기를 전부 쓸 필요는 없어
Tailwind는 text-xs부터 text-9xl까지 제공하지만 한 앱에서는 보통 4~6개면 충분해. Caption과 badge에는 xs, 보조 본문에는 sm, 본문에는 base, 강조 문장에는 lg, 섹션 제목에는 xl~2xl, 페이지 제목에는 3xl~4xl 정도로 역할을 제한해. 9xl은 큰 hero처럼 정말 필요한 화면에만 남겨.
4px 간격 척도를 기준으로 삼아
Tailwind의 대표 간격은 1 = 4px, 2 = 8px, 4 = 16px, 6 = 24px, 8 = 32px로 이어져. 특별한 근거 없이 p-[13px]를 추가하면 같은 관계가 서로 다른 숫자로 흩어져.
세로 리듬은 관계를 보여 줘
한 묶음 안의 항목에는 space-y-4, 서로 다른 섹션 사이에는 space-y-8처럼 반복 가능한 기준을 정해. 가까운 것은 같은 집단으로, 멀리 떨어진 것은 다른 집단으로 읽히게 돼.
글꼴과 줄높이도 토큰이야
본문용 sans, 코드와 데이터용 mono, 드문 hero용 display 정도면 대부분의 앱을 덮어. 긴 본문에는 기본 1.5 줄높이가 편하고 빽빽한 목록에는 leading-snug이나 leading-tight를 검토해. 웹 폰트는 font-display: optional이나 swap 전략으로 보이지 않는 글자가 오래 남지 않게 해.