Typography

Typography (타이포그래피)

타이포그래피를 사용하고 조정하는 안내 문서예요.

출처: 문서

기본 컴포넌트 (Base components)

Text와 Heading 컴포넌트를 사용해 제목과 본문을 렌더링해요. 이 컴포넌트들은 size와 weight prop을 공유하며, 앱 전체에서 일관된 타이포그래피를 보장하도록 내부 타입 시스템에 매핑돼요.

<Heading mb="2" size="4">Typographic principles</Heading>

<Text>The goal of typography is to relate font size, line height, and line width in a proportional way that maximizes beauty and makes reading easier and more pleasant.</Text>

포맷팅 컴포넌트 (Formatting components)

포맷팅 컴포넌트를 조합해 강조, 중요도 표시, 코드 표시 등을 추가할 수 있어요.

<Text>
  The <Em>most</Em> important thing to remember is, <Strong>stay positive</Strong>.
</Text>

타입 스케일 (Type scale)

타이포그래피 시스템은 9단계 size 스케일을 기반으로 해요. 각 단계에는 조합해서 사용하도록 설계된 대응하는 폰트 크기, 줄 높이, 자간 값이 있어요.

Aa

1

Aa

2

Aa

3

Aa

4

Aa

5

Aa

6

Aa

7

Aa

8

Aa

9

<Text size="6">The quick brown fox jumps over the lazy dog.</Text>
Step Size Letter spacing Line height
1 12px 0.0025em 16px
2 14px 0em 20px
3 16px 0em 24px
4 18px -0.0025em 26px
5 20px -0.005em 28px
6 24px -0.00625em 30px
7 28px -0.0075em 36px
8 35px -0.01em 40px
9 60px -0.025em 60px

폰트 굵기 (Font weight)

다음 굵기들이 지원돼요. 굵기는 커스터마이징해서 자신의 서체에 매핑할 수 있어요.

<Text size="6">
  <Flex direction="column">
    <Text weight="light">Light</Text>

    <Text weight="regular">Regular</Text>

    <Text weight="medium">Medium</Text>

    <Text weight="bold">Bold</Text>
  </Flex>
</Text>
Weight Default value
Light 300
Regular 400
Medium 500
Bold 700

폰트 패밀리 (Font family)

기본적으로 Radix Themes는 이식성과 가독성을 위해 시스템 폰트 스택을 사용해요. 다음 섹션에서 커스텀 폰트로 테마를 커스터마이징하는 방법을 알아보세요.

Type Default value
Text -apple-system, BlinkMacSystemFont, 'Segoe UI (Custom)', Roboto, 'Helvetica Neue', 'Open Sans (Custom)', system-ui, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji'
Code 'Menlo', 'Consolas (Custom)', 'Bitstream Vera Sans Mono', monospace, 'Apple Color Emoji', 'Segoe UI Emoji'
Emphasis 'Times New Roman', 'Times', serif
Quote 'Times New Roman', 'Times', serif

커스터마이징 (Customization)

Radix Themes 타이포그래피는 토큰 시스템의 대응 CSS 변수를 덮어써서 커스터마이징할 수 있어요. 타이포그래피 토큰의 전체 목록은 소스 코드를 참고해 주세요.

CSS가 Radix Themes 스타일보다 나중에 적용되어 우선순위를 가지도록 해야 해요.

커스텀 폰트 (Custom fonts)

자신만의 폰트를 제공할 수 있지만, import하고 제공하는 방법은 자유예요. 이름 붙인 폰트를 올바른 구문으로 지정하기만 하면 돼요.

테마에서 사용되는 폰트 패밀리를 커스터마이징하려면 대응하는 font-family 토큰을 다시 매핑해 주세요.

.radix-themes {
  --default-font-family:  /* Your custom default font */ --heading-font-family:
    /* Your custom font for <Heading> components */
    --code-font-family: /* Your custom font for <Code> components */
    --strong-font-family: /* Your custom font for <Strong> components */
    --em-font-family: /* Your custom font for <Em> components */
    --quote-font-family: /* Your custom font for <Quote> components */;
}

next/font 사용 (With next/font)

next/font로 커스텀 폰트를 불러오려면 variable 옵션을 사용해 CSS 변수 이름을 정의해 주세요. 그런 다음 그 CSS 변수 class를 HTML 문서에 추가해 주세요.

import { Inter } from "next/font/google";

const inter = Inter({
  subsets: ["latin"],

  display: "swap",

  variable: "--font-inter",
});

export default function RootLayout({ children }) {
  return (
    <html lang="en" className={inter.variable}>
      <body>{children}</body>
    </html>
  );
}

마지막으로 커스텀 CSS에서 CSS 변수를 할당해 주세요.

.radix-themes {
  --default-font-family: var(--font-inter);
}

app router를 실행 중이라면 CSS import 순서 문제가 발생할 수 있어요. 자세한 내용은 common styling issues를 참고해 주세요.

커스텀 폰트 굵기 (Custom font weights)

테마에서 사용되는 정확한 폰트 굵기를 커스터마이징하려면 대응하는 font-weight 토큰을 자신만의 값으로 다시 매핑해 주세요.

.radix-themes {
  --font-weight-light: 200;

  --font-weight-regular: 300;

  --font-weight-medium: 600;

  --font-weight-bold: 800;
}

고급 설정 (Advanced settings)

커스터마이징할 수 있는 고급 타이포그래피 기능이 몇 가지 있어요. 여기에는 특정 컴포넌트의 폰트 크기 배율, 폰트 스타일, 자간, 리딩 트림이 포함돼요. 예를 들어 헤딩이 기본 폰트보다 상대적으로 더 크게, 다른 리딩 트림 값으로, 그리고 더 타이트한 자간으로 렌더링되도록 커스터마이징할 수 있어요.

.radix-themes {
  --heading-font-family: "Untitled Sans", sans-serif;

  --heading-font-size-adjust: 1.05;

  --heading-font-style: normal;

  --heading-leading-trim-start: 0.42em;

  --heading-leading-trim-end: 0.38em;

  --heading-letter-spacing: -0.01em;
}

더 알아보기 (Learn more)

  • 커스텀 폰트를 지정하려면 --default-font-family 같은 토큰을 다시 매핑하고, 굵기·자간·리딩 트림도 세부 조정할 수 있어요.