Lynx

Segmented Control

여러 옵션 중 하나를 선택하여 관련 콘텐츠를 즉시 필터링하거나 전환할 때 사용하는 컴포넌트입니다.

Engine ≥ 3.6
사용 가능 버전@seed-design/lynx-react@0.6.0, @seed-design/lynx-css@0.10.0
Lynx 예제를 불러오는 중입니다.

Installation

npx @seed-design/cli add ui:segmented-control

Props

SegmentedControl

valuedefaultValue 중 하나를 제공해야 선택된 항목과 Indicator를 표시할 수 있습니다.

Prop

Type

value?string | undefined
defaultValue?string | undefined
disabled?boolean | undefined
onValueChange?((value: string) => void) | undefined
style?CSSProperties | undefined
children?React.ReactNode
className?string | undefined

SegmentedControlItem

Prop

Type

childrenstring | number
valuestring
disabled?boolean | undefined
className?string | undefined
style?CSSProperties | undefined
bindtap?EventHandler<BaseTouchEvent<Target>> | undefined
main-thread:bindtap?EventHandler<BaseTouchEvent<Element>> | undefined

Usage

import {
  SegmentedControl,
  SegmentedControlItem,
} from "@/components/ui/segmented-control";

export function App() {
  return (
    <SegmentedControl defaultValue="hot" accessibility-label="정렬 기준">
      <SegmentedControlItem value="hot">인기순</SegmentedControlItem>
      <SegmentedControlItem value="new">최신순</SegmentedControlItem>
    </SegmentedControl>
  );
}

Registry의 SegmentedControl은 선택 Indicator를 자동으로 추가합니다.

Examples

Disabled

SegmentedControldisabled는 전체 항목을 비활성화합니다. 각 SegmentedControlItem도 따로 비활성화할 수 있습니다.

Lynx 예제를 불러오는 중입니다.

Long Label

Lynx 예제를 불러오는 중입니다.

Fixed Width

SegmentedControlstyle이나 className으로 너비를 지정할 수 있습니다.

Lynx 예제를 불러오는 중입니다.

Listening to Value Changes

onValueChange로 선택 값 변경을 감지할 수 있습니다. Controlled 모드에서는 value와 함께 사용합니다.

Lynx 예제를 불러오는 중입니다.

웹 버전과의 차이

항목React WebLynx
렌더링 요소HTML label, input네이티브 view, text
선택 이벤트input changebindtap, 공개 상태 이벤트는 onValueChange
접근성ARIA radiogroup, radioLynx accessibility-* 속성
IndicatorCSS grid와 custom propertyGrid layout과 custom property

Lynx 미지원 기능

  • HTML form 제출을 위한 ItemHiddenInput, name, form, inputProps
  • 키보드 focus와 focus-visible 상호작용
  • Registry SegmentedControlItemnotification prop

Lynx에는 대응하는 Notification Badge 컴포넌트가 없어 notification prop을 제공하지 않습니다. 항목 레이블은 문자열이나 숫자로 전달합니다.

Last updated on

목차