본문으로 건너뛰기
Amineslab UI

Foundation

Typography

글꼴, 크기, 두께, 줄 높이, 자간을 20개 용도별 recipe로 적용합니다.

Primitive ingredients

Primitive는 family, size, line height, weight, letter spacing의 단일 값입니다. 제품 화면에서는 이 값을 따로 조립하지 않고 semantic recipe 하나로 다섯 값을 함께 적용합니다.

text-body-2 하나가 family, size, weight, line height, letter spacing을 설정하고 각 속성은 아래처럼 primitive를 참조합니다. 제품에서는 개별 값을 조합하지 말고 role에 맞는 recipe를 선택합니다.

Family
--typography-body-2-font-familyvar(--font-family-sans) → Pretendard, "Apple SD Gothic Neo", "Noto Sans KR", sans-serif
Size
--typography-body-2-font-sizevar(--font-size-sm) → 0.875rem
Weight
--typography-body-2-font-weightvar(--font-weight-regular) → 400
Line height
--typography-body-2-line-heightvar(--line-height-150) → 1.5
Letter spacing
--typography-body-2-letter-spacingvar(--letter-spacing-000) → 0
Family
--font-family-sans
Pretendard, "Apple SD Gothic Neo", "Noto Sans KR", sans-serif
--font-family-mono
"SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace
Size
--font-size-2xs
0.6875rem
--font-size-xs
0.75rem
--font-size-sm
0.875rem
--font-size-md
1rem
--font-size-lg
1.125rem
--font-size-xl
1.25rem
--font-size-2xl
1.5rem
--font-size-3xl
1.875rem
--font-size-4xl
2.25rem
--font-size-5xl
3rem
Weight
--font-weight-regular
400
--font-weight-medium
500
--font-weight-semibold
600
--font-weight-bold
700
Line height
--line-height-100
1
--line-height-115
1.15
--line-height-130
1.3
--line-height-140
1.4
--line-height-150
1.5
--line-height-160
1.6
Letter spacing
--letter-spacing-n040
-0.04em
--letter-spacing-n020
-0.02em
--letter-spacing-n010
-0.01em
--letter-spacing-000
0
--letter-spacing-p010
0.01em
--letter-spacing-p080
0.08em

Semantic recipes

20개 recipe는 역할과 단계를 고르면 다섯 지표를 함께 적용합니다. 같은 크기처럼 보여도 책임이 다르면 별도 recipe를 유지해 제품이 역할별로 조정할 수 있게 합니다. 숫자는 DOM heading level이 아닌 시각적 tier이며 모든 family에서 1이 가장 강합니다.

Display

짧고 강한 메시지에만 쓰는 가장 큰 표현 계층입니다.

Display recipe와 구성 값, 적용 class, 실제 표시 예시
NameSizeWeightLHLetter spacingClass
Display 1

넓은 화면의 제품·브랜드 hero

3rem7001.15-0.04emtext-display-1

복잡함을 명료한 흐름으로

Token mapping5 properties
Family
--typography-display-1-font-familyvar(--font-family-sans) → Pretendard, "Apple SD Gothic Neo", "Noto Sans KR", sans-serif
Size
--typography-display-1-font-sizevar(--font-size-5xl) → 3rem
Weight
--typography-display-1-font-weightvar(--font-weight-bold) → 700
Line height
--typography-display-1-line-heightvar(--line-height-115) → 1.15
Letter spacing
--typography-display-1-letter-spacingvar(--letter-spacing-n040) → -0.04em
Display 2

compact hero와 핵심 feature intro

2.25rem7001.15-0.04emtext-display-2

복잡함을 명료한 흐름으로

Token mapping5 properties
Family
--typography-display-2-font-familyvar(--font-family-sans) → Pretendard, "Apple SD Gothic Neo", "Noto Sans KR", sans-serif
Size
--typography-display-2-font-sizevar(--font-size-4xl) → 2.25rem
Weight
--typography-display-2-font-weightvar(--font-weight-bold) → 700
Line height
--typography-display-2-line-heightvar(--line-height-115) → 1.15
Letter spacing
--typography-display-2-letter-spacingvar(--letter-spacing-n040) → -0.04em

Heading

페이지와 큰 섹션의 시각적 위계를 세웁니다. 숫자는 DOM h1–h3와 무관하며 1이 가장 강합니다.

Heading recipe와 구성 값, 적용 class, 실제 표시 예시
NameSizeWeightLHLetter spacingClass
Heading 1

페이지 제목

1.875rem7001.15-0.02emtext-heading-1

명료한 위계로 내용을 전달합니다

Token mapping5 properties
Family
--typography-heading-1-font-familyvar(--font-family-sans) → Pretendard, "Apple SD Gothic Neo", "Noto Sans KR", sans-serif
Size
--typography-heading-1-font-sizevar(--font-size-3xl) → 1.875rem
Weight
--typography-heading-1-font-weightvar(--font-weight-bold) → 700
Line height
--typography-heading-1-line-heightvar(--line-height-115) → 1.15
Letter spacing
--typography-heading-1-letter-spacingvar(--letter-spacing-n020) → -0.02em
Heading 2

주요 섹션 제목

1.5rem7001.3-0.02emtext-heading-2

명료한 위계로 내용을 전달합니다

Token mapping5 properties
Family
--typography-heading-2-font-familyvar(--font-family-sans) → Pretendard, "Apple SD Gothic Neo", "Noto Sans KR", sans-serif
Size
--typography-heading-2-font-sizevar(--font-size-2xl) → 1.5rem
Weight
--typography-heading-2-font-weightvar(--font-weight-bold) → 700
Line height
--typography-heading-2-line-heightvar(--line-height-130) → 1.3
Letter spacing
--typography-heading-2-letter-spacingvar(--letter-spacing-n020) → -0.02em
Heading 3

하위 섹션 제목

1.25rem7001.3-0.01emtext-heading-3

명료한 위계로 내용을 전달합니다

Token mapping5 properties
Family
--typography-heading-3-font-familyvar(--font-family-sans) → Pretendard, "Apple SD Gothic Neo", "Noto Sans KR", sans-serif
Size
--typography-heading-3-font-sizevar(--font-size-xl) → 1.25rem
Weight
--typography-heading-3-font-weightvar(--font-weight-bold) → 700
Line height
--typography-heading-3-line-heightvar(--line-height-130) → 1.3
Letter spacing
--typography-heading-3-letter-spacingvar(--letter-spacing-n010) → -0.01em

Title

한 컴포넌트나 콘텐츠 묶음의 이름을 짧게 전달합니다.

Title recipe와 구성 값, 적용 class, 실제 표시 예시
NameSizeWeightLHLetter spacingClass
Title 1

Dialog·Sheet 제목

1.25rem6001.4-0.01emtext-title-1

배송 정보를 확인하세요

Token mapping5 properties
Family
--typography-title-1-font-familyvar(--font-family-sans) → Pretendard, "Apple SD Gothic Neo", "Noto Sans KR", sans-serif
Size
--typography-title-1-font-sizevar(--font-size-xl) → 1.25rem
Weight
--typography-title-1-font-weightvar(--font-weight-semibold) → 600
Line height
--typography-title-1-line-heightvar(--line-height-140) → 1.4
Letter spacing
--typography-title-1-letter-spacingvar(--letter-spacing-n010) → -0.01em
Title 2

Card·Panel 제목

1.125rem6001.4-0.01emtext-title-2

배송 정보를 확인하세요

Token mapping5 properties
Family
--typography-title-2-font-familyvar(--font-family-sans) → Pretendard, "Apple SD Gothic Neo", "Noto Sans KR", sans-serif
Size
--typography-title-2-font-sizevar(--font-size-lg) → 1.125rem
Weight
--typography-title-2-font-weightvar(--font-weight-semibold) → 600
Line height
--typography-title-2-line-heightvar(--line-height-140) → 1.4
Letter spacing
--typography-title-2-letter-spacingvar(--letter-spacing-n010) → -0.01em
Title 3

목록 item과 작은 surface 제목

1rem6001.40text-title-3

배송 정보를 확인하세요

Token mapping5 properties
Family
--typography-title-3-font-familyvar(--font-family-sans) → Pretendard, "Apple SD Gothic Neo", "Noto Sans KR", sans-serif
Size
--typography-title-3-font-sizevar(--font-size-md) → 1rem
Weight
--typography-title-3-font-weightvar(--font-weight-semibold) → 600
Line height
--typography-title-3-line-heightvar(--line-height-140) → 1.4
Letter spacing
--typography-title-3-letter-spacingvar(--letter-spacing-000) → 0

Body

문장과 문단을 읽는 기본 계층입니다. 긴 본문은 한 줄을 약 60–75자로 제한합니다.

Body recipe와 구성 값, 적용 class, 실제 표시 예시
NameSizeWeightLHLetter spacingClass
Body 1

기본·장문 prose와 여러 줄 설명

1rem4001.60text-body-1

본문은 충분한 행간과 읽기 폭을 유지해 긴 설명도 편안하게 이어집니다.

Token mapping5 properties
Family
--typography-body-1-font-familyvar(--font-family-sans) → Pretendard, "Apple SD Gothic Neo", "Noto Sans KR", sans-serif
Size
--typography-body-1-font-sizevar(--font-size-md) → 1rem
Weight
--typography-body-1-font-weightvar(--font-weight-regular) → 400
Line height
--typography-body-1-line-heightvar(--line-height-160) → 1.6
Letter spacing
--typography-body-1-letter-spacingvar(--letter-spacing-000) → 0
Body 2

compact body와 form description

0.875rem4001.50text-body-2

본문은 충분한 행간과 읽기 폭을 유지해 긴 설명도 편안하게 이어집니다.

Token mapping5 properties
Family
--typography-body-2-font-familyvar(--font-family-sans) → Pretendard, "Apple SD Gothic Neo", "Noto Sans KR", sans-serif
Size
--typography-body-2-font-sizevar(--font-size-sm) → 0.875rem
Weight
--typography-body-2-font-weightvar(--font-weight-regular) → 400
Line height
--typography-body-2-line-heightvar(--line-height-150) → 1.5
Letter spacing
--typography-body-2-letter-spacingvar(--letter-spacing-000) → 0
Body 3

dense supporting text · 장문 금지

0.75rem4001.50text-body-3

본문은 충분한 행간과 읽기 폭을 유지해 긴 설명도 편안하게 이어집니다.

Token mapping5 properties
Family
--typography-body-3-font-familyvar(--font-family-sans) → Pretendard, "Apple SD Gothic Neo", "Noto Sans KR", sans-serif
Size
--typography-body-3-font-sizevar(--font-size-xs) → 0.75rem
Weight
--typography-body-3-font-weightvar(--font-weight-regular) → 400
Line height
--typography-body-3-line-heightvar(--line-height-150) → 1.5
Letter spacing
--typography-body-3-letter-spacingvar(--letter-spacing-000) → 0

Label

짧은 control 이름과 실행 문구처럼 스캔이 빨라야 하는 텍스트입니다.

Label recipe와 구성 값, 적용 class, 실제 표시 예시
NameSizeWeightLHLetter spacingClass
Label 1

large control과 mobile field value

1rem5001.40text-label-1

변경 사항 저장

Token mapping5 properties
Family
--typography-label-1-font-familyvar(--font-family-sans) → Pretendard, "Apple SD Gothic Neo", "Noto Sans KR", sans-serif
Size
--typography-label-1-font-sizevar(--font-size-md) → 1rem
Weight
--typography-label-1-font-weightvar(--font-weight-medium) → 500
Line height
--typography-label-1-line-heightvar(--line-height-140) → 1.4
Letter spacing
--typography-label-1-letter-spacingvar(--letter-spacing-000) → 0
Label 2

기본 button·tab·form label

0.875rem5001.40text-label-2

변경 사항 저장

Token mapping5 properties
Family
--typography-label-2-font-familyvar(--font-family-sans) → Pretendard, "Apple SD Gothic Neo", "Noto Sans KR", sans-serif
Size
--typography-label-2-font-sizevar(--font-size-sm) → 0.875rem
Weight
--typography-label-2-font-weightvar(--font-weight-medium) → 500
Line height
--typography-label-2-line-heightvar(--line-height-140) → 1.4
Letter spacing
--typography-label-2-letter-spacingvar(--letter-spacing-000) → 0
Label 3

badge·table heading·compact option

0.75rem6001.40.01emtext-label-3

변경 사항 저장

Token mapping5 properties
Family
--typography-label-3-font-familyvar(--font-family-sans) → Pretendard, "Apple SD Gothic Neo", "Noto Sans KR", sans-serif
Size
--typography-label-3-font-sizevar(--font-size-xs) → 0.75rem
Weight
--typography-label-3-font-weightvar(--font-weight-semibold) → 600
Line height
--typography-label-3-line-heightvar(--line-height-140) → 1.4
Letter spacing
--typography-label-3-letter-spacingvar(--letter-spacing-p010) → 0.01em

Caption

주 콘텐츠를 보충하는 출처, 상태, 시간 정보를 낮은 위계로 표시합니다.

Caption recipe와 구성 값, 적용 class, 실제 표시 예시
NameSizeWeightLHLetter spacingClass
Caption 1

helper text와 metadata

0.75rem4001.40text-caption-1

마지막 업데이트 2분 전

Token mapping5 properties
Family
--typography-caption-1-font-familyvar(--font-family-sans) → Pretendard, "Apple SD Gothic Neo", "Noto Sans KR", sans-serif
Size
--typography-caption-1-font-sizevar(--font-size-xs) → 0.75rem
Weight
--typography-caption-1-font-weightvar(--font-weight-regular) → 400
Line height
--typography-caption-1-line-heightvar(--line-height-140) → 1.4
Letter spacing
--typography-caption-1-letter-spacingvar(--letter-spacing-000) → 0
Caption 2

비필수 timestamp와 chart legend

0.6875rem4001.40.01emtext-caption-2

마지막 업데이트 2분 전

Token mapping5 properties
Family
--typography-caption-2-font-familyvar(--font-family-sans) → Pretendard, "Apple SD Gothic Neo", "Noto Sans KR", sans-serif
Size
--typography-caption-2-font-sizevar(--font-size-2xs) → 0.6875rem
Weight
--typography-caption-2-font-weightvar(--font-weight-regular) → 400
Line height
--typography-caption-2-line-heightvar(--line-height-140) → 1.4
Letter spacing
--typography-caption-2-letter-spacingvar(--letter-spacing-p010) → 0.01em

Overline

다음 콘텐츠의 범주를 먼저 알리는 짧은 kicker입니다.

Overline recipe와 구성 값, 적용 class, 실제 표시 예시
NameSizeWeightLHLetter spacingClass
Overline 1

section kicker와 category label

0.6875rem7001.40.08emtext-overline-1

Design foundation

Token mapping5 properties
Family
--typography-overline-1-font-familyvar(--font-family-sans) → Pretendard, "Apple SD Gothic Neo", "Noto Sans KR", sans-serif
Size
--typography-overline-1-font-sizevar(--font-size-2xs) → 0.6875rem
Weight
--typography-overline-1-font-weightvar(--font-weight-bold) → 700
Line height
--typography-overline-1-line-heightvar(--line-height-140) → 1.4
Letter spacing
--typography-overline-1-letter-spacingvar(--letter-spacing-p080) → 0.08em

Code

식별자와 코드의 문자 폭을 유지하는 mono 계층입니다.

Code recipe와 구성 값, 적용 class, 실제 표시 예시
NameSizeWeightLHLetter spacingClass
Code 1

큰 CLI 예시와 code lead

1rem4001.60text-code-1
import { Button } from '@amineslab/ui'
Token mapping5 properties
Family
--typography-code-1-font-familyvar(--font-family-mono) → "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace
Size
--typography-code-1-font-sizevar(--font-size-md) → 1rem
Weight
--typography-code-1-font-weightvar(--font-weight-regular) → 400
Line height
--typography-code-1-line-heightvar(--line-height-160) → 1.6
Letter spacing
--typography-code-1-letter-spacingvar(--letter-spacing-000) → 0
Code 2

기본 code block

0.875rem4001.50text-code-2
import { Button } from '@amineslab/ui'
Token mapping5 properties
Family
--typography-code-2-font-familyvar(--font-family-mono) → "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace
Size
--typography-code-2-font-sizevar(--font-size-sm) → 0.875rem
Weight
--typography-code-2-font-weightvar(--font-weight-regular) → 400
Line height
--typography-code-2-line-heightvar(--line-height-150) → 1.5
Letter spacing
--typography-code-2-letter-spacingvar(--letter-spacing-000) → 0
Code 3

token, table, dense code metadata

0.75rem4001.50text-code-3
import { Button } from '@amineslab/ui'
Token mapping5 properties
Family
--typography-code-3-font-familyvar(--font-family-mono) → "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace
Size
--typography-code-3-font-sizevar(--font-size-xs) → 0.75rem
Weight
--typography-code-3-font-weightvar(--font-weight-regular) → 400
Line height
--typography-code-3-line-heightvar(--line-height-150) → 1.5
Letter spacing
--typography-code-3-letter-spacingvar(--letter-spacing-000) → 0

HTML heading level과 recipe 이름은 같은 계약이 아닙니다.

문서 구조에 맞는 h1–h6를 먼저 선택하고 시각적 위계는 heading이나 title recipe로 지정합니다. Display는 모든 h1의 기본값이 아니라 짧은 hero 메시지를 위한 선택입니다.

Responsive composition

각 recipe의 다섯 값은 viewport에 따라 몰래 바뀌지 않습니다. 화면이 좁아지면 breakpoint에서 같은 family의 인접 단계로 recipe 전체를 명시적으로 교체합니다. Body, Label, Caption, Code는 원칙적으로 viewport와 관계없이 고정합니다.

Narrow · text-display-2

복잡함을 명료한 흐름으로

Wide · text-display-1

복잡함을 명료한 흐름으로

한 breakpoint에서 다섯 지표를 함께 바꿉니다.

Tailwind에서는 text-display-2 md:text-display-1처럼 recipe를 교체합니다. font size만 줄이고 기존 line height나 letter spacing을 남기지 않습니다. 모바일 input 값은 브라우저 자동 확대를 피하도록 16px 미만의 recipe를 사용하지 않습니다.

사용 기준

권장하는 사용
  • 글의 용도를 display, heading, title, body, label, caption, overline, code 중에서 먼저 고르고 크기 단계를 선택합니다.
피해야 할 사용
  • 크기만 보고 recipe를 고르거나 font size, line height, weight, letter spacing 중 일부만 분리해 덮어쓰지 마세요.

검증 기준

  • HTML 제목 레벨은 문서 구조로, typography recipe는 표현 크기로 정합니다.
  • 390px 화면과 200% 확대에서 display, 긴 토큰, code가 잘리거나 가로 스크롤을 만들지 않아야 합니다.
  • 본문은 읽기 폭을 약 60–75자로 제한하고 3줄 이상인 텍스트에 충분한 line height를 유지합니다.
  • 모바일 input 값에는 16px 미만의 typography recipe를 사용하지 않습니다.
  • 글꼴 파일은 소비 앱에서 불러오고, package recipe는 크기·줄 높이·자간·두께를 함께 적용합니다.