콘텐츠로 이동
RefineUI

Tree

파일, 폴더, 중첩 내비게이션용 확장 가능한 계층 목록.

  • src
    • components
      • Button.tsx
      • Tree.tsx
    • index.ts
  • package.json

Overview

Machine-readable contract from Component Spec.

component: treeexport: Treeversion: 1attributes: data-refineui=tree

Anatomy

Partdata-refineui
roottree
itemtree-item
item_chevrontree-item-chevron
item_contenttree-item-content
item_maintree-item-main
item_paneltree-item-panel
item_triggertree-item-trigger

Variants

AxisValues
sizesm, md, lg

States

ScopeCategoryValues
componentpseudofocus-visible
componentenvironmentforced-colors, dir

Accessibility

SlotElementRoleRequired attributes
treedivtree
tree-itemdivtreeitemaria-selected: required=true, type: boolean
tree-item-triggerbutton

Keyboard

KeyActionNative
ArrowDownnext-trigger
ArrowUpprevious-trigger
Homefirst-trigger
Endlast-trigger
Enteractivatetrue
Spaceactivatetrue

Focus

SectionPropertyValue
visualrequiredtrue
visualselector:focus-visible
behaviorrovingtrue

Layout

PropertyValue
directionlogical
rtltrue
npm install @refineui/react @refineui/tokens
import { Tree, TreeItem, TreeItemContent, TreeItemTrigger } from "@refineui/react";
<Tree defaultExpanded={["src"]} defaultSelected="button">
<TreeItem value="src">
<TreeItemTrigger>src</TreeItemTrigger>
<TreeItemContent>
<TreeItem value="button">
<TreeItemTrigger>Button.tsx</TreeItemTrigger>
</TreeItem>
</TreeItemContent>
</TreeItem>
<TreeItem value="package">
<TreeItemTrigger>package.json</TreeItemTrigger>
</TreeItem>
</Tree>

Foundation spacing, radius, color 별칭, typography 토큰으로 구성됩니다(Sidebar / Menu와 동일한 밀도). 셰브론으로 분기를 펼치고, 행 클릭으로 선택합니다. 화살표 키는 WAI-ARIA tree 패턴을 따릅니다.

PropDefaultTypeDescription
size"md""sm" | "md" | "lg"행 typography 크기.
expandedstring[]제어형 펼친 항목 값.
defaultExpandedstring[]비제어형 초기 펼침 값.
onExpandedChange(value: string[]) => void펼침이 변경될 때 호출됩니다.
selectedstring | null제어형 선택 항목 값.
defaultSelectedstring비제어형 초기 선택.
onSelectedChange(value: string | null) => void선택이 변경될 때 호출됩니다.
PropDefaultTypeDescription
valuestring고유 식별자(필수).
disabledfalseboolean선택과 펼침을 비활성화합니다.

포커스 가능한 행 레이블. 항목에 TreeItemContent가 있으면 셰브론을 표시합니다.

중첩 TreeItem 그룹. 부모가 펼쳐진 동안에만 마운트됩니다.