Cursors

Cursors (커서)

상호작용 요소에 사용되는 커서를 커스터마이징하는 방법을 다뤄요.

출처: 문서

기본 커서 (Default cursors)

기본적으로, 다른 페이지로 연결되지 않는 상호작용 요소는 일반 화살표 커서를 사용해요. 이는 브라우저 기본값과도 일치해요. 다만 비활성화된 요소는 명시적으로 disabled 커서를 사용해요.

<Flex align="center" gap="4" wrap="wrap">
  <Flex align="center" gap="3" wrap="wrap">
    <Button>Button</Button>

    <Button asChild>
      <a href="#">Link</a>
    </Button>

    <Button disabled>Disabled</Button>
  </Flex>

  <Button variant="ghost">Ghost button</Button>

  <Link href="#" size="2">
    Link
  </Link>

  <Checkbox defaultChecked />

  <Switch defaultChecked />

  <Switch defaultChecked disabled />
</Flex>

커서 토큰 (Cursor tokens)

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

/* Available cursor tokens */

var(--cursor-button);

var(--cursor-checkbox);

var(--cursor-disabled);

var(--cursor-link);

var(--cursor-menu-item);

var(--cursor-radio);

var(--cursor-slider-thumb);

var(--cursor-slider-thumb-active);

var(--cursor-switch);

커스터마이징 (Customization)

상호작용 요소에는 포인터 커서를 쓰는 게 일반적이에요. Radix Themes의 커서는 토큰 시스템의 대응 CSS 변수를 덮어써서 커스터마이징할 수 있어요.

다음은 대부분의 상호작용 요소에 cursor: pointer를 적용하도록 커서 토큰을 커스터마이징하는 예시예요.

.radix-themes {
  --cursor-button: pointer;

  --cursor-checkbox: pointer;

  --cursor-disabled: default;

  --cursor-link: pointer;

  --cursor-menu-item: pointer;

  --cursor-radio: pointer;

  --cursor-slider-thumb: grab;

  --cursor-slider-thumb-active: grabbing;

  --cursor-switch: pointer;
}

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

더 알아보기 (Learn more)

  • 커서 토큰을 바꾸면 기본 동작을 유지하면서도 원하는 커서로 전역적으로 교체할 수 있어요.