CSS 간격 스케일 생성기는 기준 크기와 증가 비율로 --space-1, --space-2 같은 간격 토큰을 CSS 커스텀 프로퍼티로 만들어 줍니다. 각 단계는 이전 단계에 비율을 곱한 값이라서, 인터페이스 전체의 마진, 패딩, gap이 임의의 숫자가 아니라 짧은 목록 하나에서 나옵니다.
디자인 시스템을 막 시작하거나, 13px과 17px 마진이 뒤섞인 스타일시트를 정리하거나, 완만한 1.25 스케일과 가파른 2배 스케일 중 고민할 때 쓰기 좋습니다. :root 블록을 복사하기 전에 단계마다 막대와 값을 확인할 수 있습니다.
모든 계산은 브라우저 안에서 이뤄지고 업로드되지 않습니다. 이 도구는 매 단계에 비율을 곱하는 등비 스케일만 만들며 4px, 8px 단위의 선형 그리드는 만들지 않습니다. 결과는 CSS :root 블록, SCSS 변수, 디자인 토큰 JSON으로 복사할 수 있고 --space 접두어도 프로젝트에 맞게 바꿀 수 있습니다.
사용 방법
기준 크기 입력하기
기준은 첫 단계의 값이며 1에서 64px 사이입니다. 4나 8에서 시작하는 팀이 많습니다.
비율 정하기
배수를 1에서 3 사이로 정합니다. 1.25는 완만하게, 1.5는 빠르게 커지고, 2는 매 단계 두 배가 됩니다.
단계 수 정하기
3에서 12 사이 정수로
--space-N토큰이 몇 개 생성될지 정합니다.px 또는 rem 고르기
rem을 고르면 루트 글자 크기(1rem에 해당하는 px 값)를 8에서 32 사이로 함께 입력합니다. px를 고르면 이 칸은 숨겨집니다.
토큰 이름 정하기
접두어 기본값은
space이고--space-1처럼 이름이 붙습니다.size나gap으로 바꾸면 모든 이름,var()참조, 출력 형식이 함께 바뀝니다. 첫 글자는 영문자·밑줄·비 ASCII 문자 중 하나여야 하며, 그 뒤에는 이 문자들과 숫자·하이픈을 쓸 수 있습니다.확인하고 복사하기
토큰 이름과 크기, rem이면 px 환산값이 나란히 나오는 막대를 확인합니다. 막대를 누르면 그 토큰으로 안쪽 여백을 준 카드를 볼 수 있습니다. 마음에 들면 CSS, SCSS, 디자인 토큰 JSON 중 하나로 복사합니다.
작동 원리
계산식
0부터 센 i번째 단계의 크기는 base * ratio^i입니다. 첫 토큰은 항상 기준값과 같습니다. px 값은 소수 둘째 자리로 반올림합니다. rem은 반올림된 px가 아니라 정확한 크기에서 계산해 소수 넷째 자리로 반올림하므로 18px은 1.125rem으로 적힙니다. 토큰 이름은 지정한 접두어를 써서 --space-1부터 --space-N까지입니다.
흔한 비율은 모듈러 타입 스케일에서 쓰는 음악 음정에서 왔습니다. 1.125(장2도), 1.2(단3도), 1.25(장3도), 1.333(완전4도), 1.5(완전5도), 2(옥타브)입니다. 같은 논리가 조화로운 간격에도 적용됩니다.
:root {
--space-1: 4px;
--space-2: 5px;
--space-3: 6.25px;
}도구가 지키는 범위
아래 범위를 벗어난 값은 거부합니다. 입력 칸 아래에 고칠 내용이 표시되고, 결과 패널은 깨진 CSS 대신 마지막으로 유효했던 스케일을 흐리게 유지합니다.
| 입력 | 허용 범위 |
|---|---|
| 기준 | 1~64 px |
| 비율 | 1~3 |
| 단계 수 | 3~12 정수 |
| 단위 | px 또는 rem |
| 루트 글자 크기 | 8~32 px (rem일 때 사용) |
| 토큰 접두어 | 영문자·_·비 ASCII 문자로 시작, 이후 해당 문자·숫자·- 사용, 24자 이하 |
왜 rem인가, 무엇을 가정하나
rem은 루트 요소의 글자 크기를 기준으로 하므로 rem 간격은 독자가 브라우저 글자 크기를 키우면 함께 커집니다. 브라우저 기본값은 16px이며 이 도구의 기본 루트값도 16입니다. html 규칙에서 다른 크기를 지정했다면 그 숫자를 넣어야 미리 본 px 값과 rem 값이 맞습니다.
실제 예시
기준 4, 비율 2, 4단계, rem, 루트 16:root {
--space-1: 0.25rem;
--space-2: 0.5rem;
--space-3: 1rem;
--space-4: 2rem;
}생성기 자체 단위 테스트와 같은 값입니다.
기준 4, 비율 1.25, 8단계, px:root {
--space-1: 4px;
--space-2: 5px;
--space-3: 6.25px;
--space-4: 7.81px;
--space-5: 9.77px;
--space-6: 12.21px;
--space-7: 15.26px;
--space-8: 19.07px;
}4 x 1.25^i는 3단계부터 정수가 아니라서 소수가 나옵니다.
기준 8, 비율 1.5, 5단계, rem, 루트 16:root {
--space-1: 0.5rem;
--space-2: 0.75rem;
--space-3: 1.125rem;
--space-4: 1.6875rem;
--space-5: 2.5313rem;
}px 값은 8, 12, 18, 27, 40.5입니다. rem은 이 정확한 크기에서 계산하므로 18px이 깔끔하게 1.125rem이 됩니다.
기준 4, 비율 1.5, 4단계, rem, 루트 10:root {
--space-1: 0.4rem;
--space-2: 0.6rem;
--space-3: 0.9rem;
--space-4: 1.35rem;
}1rem이 10px이 되도록 루트를 62.5%로 두는 방식에 쓸 수 있습니다.
기준 4, 비율 1.25, 13단계단계 수 칸 오류: 3~12 사이의 정수를 입력해 주세요.값을 고칠 때까지 결과 패널은 이전 스케일을 흐리게 유지합니다.
기준 4, 비율 2, 3단계, rem, 루트 16, 접두어 size, SCSS 탭$size-1: 0.25rem;
$size-2: 0.5rem;
$size-3: 1rem;CSS 탭에서는 같은 값이 --size-1부터 --size-3으로 나옵니다.
자주 하는 실수
작은 기준과 작은 비율은 비슷한 값만 만듭니다
기준 4에 비율 1.25이면 처음 세 토큰이 4, 5, 6.25px입니다. 화면에서 구별하기 어려워 결국 팀원이 기억나는 대로 아무거나 쓰게 됩니다. 비율이나 기준을 키우세요.
비율 1은 같은 값만 나옵니다
모든 단계가 기준값과 같습니다. 1도 범위 안이라 허용되지만 스케일이라고 할 수 없어서 도구가 경고를 보여 줍니다.
소수 픽셀은 테두리를 흐리게 할 수 있습니다
7.81px 같은 값은 저밀도 화면에서 1px 테두리나 간격의 가장자리를 흐릿하게 그릴 수 있습니다. 아주 작은 간격은 정수 픽셀이 되는 값을 쓰는 편이 좋습니다.
루트 크기가 틀리면 모든 rem 값이 어긋납니다
페이지 루트가 18px인데 루트 16으로 만들었다면 16px로 의도한 토큰이 18px로 그려집니다. 루트 설정을 실제 html 글자 크기와 맞추세요.
등비 스케일은 금방 커집니다
기준 4에 비율 2이면 여섯 단계 만에 4, 8, 16, 32, 64, 128에 이릅니다. 6~7단계를 넘기면 레이아웃용 간격은 별도의 섹션 스케일로 두세요.
자주 묻는 질문
CSS 간격 스케일이란 무엇인가요?
마진, 패딩, gap에 반복해서 쓰는 짧고 고정된 간격 값 목록으로, 보통 커스텀 프로퍼티로 노출합니다. 어디서나 var(--space-3)을 쓰면 리듬이 일정해지고 전체 변경도 한 줄 수정으로 끝납니다.
등비 스케일과 4px/8px 선형 그리드 중 무엇이 나은가요?
4나 8의 배수로 이루어진 선형 그리드는 외우기 쉽고 조밀한 인터페이스에 잘 맞습니다. 1.5나 2 같은 등비 스케일은 레이아웃 간격에서 큰 도약을 줍니다. 이 도구는 등비만 만듭니다.
생성된 변수는 어떻게 쓰나요?
:root 블록을 전역 스타일시트에 붙여 넣고 규칙에 padding: var(--space-3);나 gap: var(--space-4);처럼 씁니다. 도구의 각 행에 정확한 var() 참조가 나옵니다.
rem 값이 소수 넷째 자리까지 나오는 이유는 무엇인가요?
정확한 크기를 루트 글자 크기로 나눠 소수 넷째 자리로 반올림하기 때문입니다. 루트 16px에서 18px은 1.125rem, 27px은 1.6875rem이 됩니다. 넷째 자리까지 쓰면 반올림 오차가 0.01px보다 훨씬 작습니다.
루트 글자 크기 칸은 무엇에 쓰나요?
페이지에서 1rem이 몇 px인지입니다. 브라우저 기본값이면 16 그대로 두고, html 글자 크기를 62.5%로 둔 스타일시트라면 10을 넣습니다. 단위가 rem일 때만 의미가 있습니다.
토큰 이름을 바꿀 수 있나요?
네. 토큰 접두어 칸을 바꾸면 됩니다. size로 쓰면 --size-1, --size-2처럼 나오고 SCSS·JSON 탭도 함께 바뀝니다. 번호는 항상 1부터 매기므로 --space-md 같은 티셔츠 사이즈 이름이 필요하면 복사한 뒤 찾아 바꾸기를 쓰세요.
더 깊이 읽기
마지막 업데이트:
