FOUNDATIONS

디자인 토큰

간격·모서리·글자·반응형·모션의 공통 기준과 토큰을 선택하는 방법입니다.

간격

가까운 항목은 좁게, 서로 다른 정보 묶음은 넓게 배치합니다. 직접 구성하는 화면에는 먼저 용도에 맞는 역할 토큰을 고르세요. 역할 토큰은 아래 숫자 스케일을 가리킵니다.

역할 토큰값용도
space.inline.xs4px아이콘과 글자처럼 한 요소 안의 붙은 부분
space.inline.sm8px나란한 관련 요소 · 버튼과 버튼
space.stack.sm8px라벨과 입력칸처럼 위아래로 붙은 요소
space.stack.md16px같은 묶음의 반복 항목 사이
space.inset.md16px카드·패널 안쪽 여백
space.stack.lg24px서로 다른 정보 묶음 사이
space.section.sm32px화면의 큰 구획 사이

두 블록 사이의 색칠된 영역이 실제 간격입니다. 모든 견본은 Web의 CSS px 기준이며 Native에서는 같은 수치를 논리 단위로 씁니다.

  • 4pxdimension.value4
  • 8pxdimension.value8
  • 12pxdimension.value12
  • 16pxdimension.value16
  • 20pxdimension.value20
  • 24pxdimension.value24
  • 32pxdimension.value32
미세 조정과 큰 영역에 쓰는 간격

2·3·6·10·14px는 작은 요소 사이를 미세하게 맞출 때만 씁니다. 28px와 40px 이상은 큰 영역을 구분할 때 씁니다.

  • 2pxdimension.value2
  • 3pxdimension.value3
  • 6pxdimension.value6
  • 10pxdimension.value10
  • 14pxdimension.value14
  • 28pxdimension.value28
  • 40pxdimension.value40
  • 48pxdimension.value48
  • 56pxdimension.value56
  • 64pxdimension.value64
  • 80pxdimension.value80
  • 96pxdimension.value96

모서리

모서리는 요소의 역할과 크기에 따라 정해집니다. 컨트롤은 크기가 커질수록 모서리도 커지고(shape.control), 카드처럼 큰 면은 더 둥글게(shape.container), 배지처럼 작은 요소는 원형(shape.pill)을 씁니다. KJUN 컴포넌트는 크기에 맞는 모서리를 스스로 적용합니다.

10pxshape.control.sm · 높이 32
12pxshape.control.md · 높이 40
14pxshape.control.lg · 높이 48
16pxshape.container · 카드·패널
원형shape.pill · 배지·스위치
전체 모서리 스케일

직접 만드는 요소에는 위 역할과 같은 값을 쓰세요. radius9999는 짧은 변의 절반까지 둥글게 만들어 원형과 알약 형태를 모두 표현합니다.

  • 0pxradius0
  • 4pxradius4
  • 6pxradius6
  • 8pxradius8
  • 10pxradius10
  • 12pxradius12
  • 14pxradius14
  • 16pxradius16
  • 20pxradius20
  • 원형radius9999

컴포넌트 치수

Button과 Input은 같은 크기 이름에서 같은 높이와 모서리를 씁니다. 같은 줄에 놓는 컨트롤은 같은 size를 선택하세요.

항목xssmmdlgxl
높이2432404856
모서리810121416
Button 좌우 여백812162024
Button 아이콘 쪽 여백68121620
Button 최소 너비4056648096
Button 아이콘·라벨 간격44466
Input 좌우 여백—121620—
Button 글자1214141616
Input 글자—161616—
아이콘1416161820

단위: px · —는 Input이 제공하지 않는 크기입니다. Input 글자는 모바일 브라우저의 자동 확대를 막기 위해 모든 크기에서 16px입니다.

보이는 크기와 누를 수 있는 영역은 다릅니다.24px 컨트롤도 Native와 Web 터치 모드에서 최소 44px 터치 영역을 확보합니다.

타이포그래피

글자는 역할로 고릅니다. 한 역할은 크기·줄높이·굵기를 함께 정하므로 셋을 따로 바꾸지 마세요. 서체는 프로젝트가 연결합니다.

역할견본크기·굵기
큰 수치대시보드의 핵심 숫자1,23432/40
700
페이지 제목화면의 첫 제목주문 내역24/32
700
섹션 제목새 내용 묶음의 시작배송 안내20/28
700
카드 제목카드·모달 제목결제 수단16/24
600
입력값입력칸 글자 · iOS 확대 방지 16px홍길동16/24
400
본문읽고 이해할 주요 내용주문한 상품은 순서대로 배송됩니다.14/20
400
라벨필드 라벨·목록 항목 이름받는 사람14/20
500
컨트롤버튼·탭 글자저장하기14/20
600
보조 정보날짜·짧은 설명업데이트: 오늘 오전 9시12/16
400
메타개수·상태 같은 짧은 정보3개 선택12/16
500

크기/줄높이 단위: px. 숫자 표시용 역할(number·display)은 같은 크기의 제목 역할을 따르며 숫자 서체와 고정폭 숫자를 씁니다.

반응형 전환

기기 이름보다 콘텐츠가 차지하는 너비를 기준으로 배치를 바꿉니다. 컴포넌트는 아래 기준보다 좁아지면 쌓거나 카드로 바꿉니다.

기준너비이 기준으로 전환하는 컴포넌트
액션 내용448하단 액션
좁은 화면640Modal · Drawer · Toast · Pagination · KPI 강조
중간 화면768KPI 행 · 시장 목록 · 선택 그룹 · 폼 열 · Table 카드 전환
넓은 화면1024Pagination 넓은 보기

단위: px. 컴포넌트는 창이 아니라 자신이 놓인 영역의 너비를 기준으로 전환합니다.

모션

작은 반응은 짧게, 큰 영역의 변화는 따라갈 수 있을 만큼 길게 씁니다. 동작 줄이기 설정에서는 이동 없이 결과만 보여 줍니다.

  • 100ms툴팁·퇴장 페이드motion.instant
  • 150ms팝업 퇴장·배경 퇴장motion.quick
  • 200ms버튼·선택선·팝업·접기motion.fast
  • 300ms모달·패널 등장motion.normal

들어올 때는 표준 감속 motion.easeOut, 가장자리 패널은 강조 감속 motion.easeEmphasized, 나갈 때는 motion.easeIn과 일정 속도 페이드 motion.easeLinear를 씁니다. 창은 16px, 팝업은 4px만큼 이동합니다.

토큰 사용

직접 구성하는 화면에는 역할 토큰(space·shape)과 타이포그래피 역할을 사용합니다. 숫자 스케일(dimension·radius)은 역할로 표현되지 않는 미세 조정에만 씁니다. KJUN 컴포넌트의 크기와 모서리는 각 컴포넌트의 속성으로 선택하세요.

역할 토큰 선택
import { tokens } from "@kjun/tokens";

const gap = tokens.space.stack.md;      // 16
const radius = tokens.shape.container; // 16
const body = tokens.typography.body;

같은 의미의 요소에는 같은 토큰을 반복해 사용합니다. 색상과 서체는 프로젝트에서 연결하고, 상태·포커스·조작 규칙은 KJUN의 공통 동작을 따릅니다.

KJUN UI · v0.3.0Small apps. Thoughtfully made.