Radius

Radius (반경)

테마에 맞는 올바른 radius(둥근 모서리) 설정을 고르는 방법이에요.

출처: 문서

테마 설정 (Theme setting)

테마의 radius 설정은 컴포넌트에 적용되는 radius 계수를 관리해요.

<Theme radius="medium">
  <TextField.Root size="3" placeholder="Reply…">
    <TextField.Slot side="right" px="1">
      <Button size="2">Send</Button>
    </TextField.Slot>
  </TextField.Root>
</Theme>

none

Reply…

small

Reply…

medium

Reply…

large

Reply…

full

Reply…

결과로 나오는 border-radius는 맥락에 따라 달라지고 컴포넌트마다 달라요. 예를 들어 full로 설정하면 Button은 알약 모양이 되지만, Checkbox는 Radio와 혼동되지 않도록 절대 완전히 둥글게 되지 않아요.

<Theme radius="full">
  <Flex align="center" gap="3">
    <Button>Save</Button>

    <Switch defaultChecked />

    <Checkbox defaultChecked />
  </Flex>
</Theme>

Radius 오버라이드 (Radius overrides)

일부 컴포넌트는 자체 radius prop으로 radius 계수를 덮어쓸 수 있어요.

<Flex align="center" gap="3">
  <Button radius="none">Save</Button>

  <Button radius="small">Save</Button>

  <Button radius="medium">Save</Button>

  <Button radius="large">Save</Button>

  <Button radius="full">Save</Button>
</Flex>

Card, Dialog, Popover처럼 패널을 렌더링하는 컴포넌트는 radius prop이 없지만, 테마의 radius 설정을 상속받아요. radius prop은 대부분의 텍스트 기반 컴포넌트에서도 사용할 수 없어요.

Radius 스케일 (Radius scale)

컴포넌트에 사용되는 radius 값은 6단계 스케일에서 파생돼요.

1

2

3

4

5

6

특정 컴포넌트에 특정 단계를 직접 사용할 수는 없어요. radius prop은 단지 radius 계수만 설정하거든요. 하지만 radius 스케일을 사용해 자신만의 컴포넌트를 스타일링할 수는 있어요.

Radius 토큰은 CSS 변수로 접근할 수 있어요. 이 토큰들을 사용해 커스텀 컴포넌트를 스타일링하면 테마의 나머지 부분과 일관된 모습을 유지할 수 있어요.

/* Radius values that automatically respond to the radius factor */

var(--radius-1);

var(--radius-2);

var(--radius-3);

var(--radius-4);

var(--radius-5);

var(--radius-6);



/* A multiplier that controls the theme radius */

var(--radius-factor);



/*

 * A variable used to calculate a fully rounded radius.

 * Usually used within a CSS `max()` function.

 */

var(--radius-full);



/*

 * A variable used to calculate radius of a thumb element.

 * Usually used within a CSS `max()` function.

 */

var(--radius-thumb);

더 알아보기 (Learn more)

  • radius 단계는 --radius-factor를 곱한 값으로 반응하며, --radius-1부터 --radius-6까지 토큰을 사용할 수 있어요.