Legacy
CoreSegmentedControlGroup
세그먼트 컨트롤 그룹 컴포넌트
Usage
기본 사용법 (단일 선택)
import { useState } from 'react';
import { CoreSegmentedControlGroup, CoreSegmentedControl } from '@featuring-corp/components';
const [selected, setSelected] = useState('0');
<CoreSegmentedControlGroup
size="md"
value={selected}
onChange={(e, value) => setSelected(value)}
>
<CoreSegmentedControl selected={selected === '0'} onClick={() => setSelected('0')}>
Tab1
</CoreSegmentedControl>
<CoreSegmentedControl selected={selected === '1'} onClick={() => setSelected('1')}>
Tab2
</CoreSegmentedControl>
<CoreSegmentedControl selected={selected === '2'} onClick={() => setSelected('2')} disabled>
Tab3 (disabled)
</CoreSegmentedControl>
<CoreSegmentedControl selected={selected === '3'} onClick={() => setSelected('3')}>
Tab4
</CoreSegmentedControl>
</CoreSegmentedControlGroup>다중 선택
import { useState } from 'react';
import { CoreSegmentedControlGroup, CoreSegmentedControl } from '@featuring-corp/components';
const [selected, setSelected] = useState<string[]>([]);
const handleChange = (value: string) => {
if (selected.includes(value)) {
setSelected(selected.filter((item) => item !== value));
} else {
setSelected([...selected, value]);
}
};
<CoreSegmentedControlGroup
size="md"
multiple
value={selected}
onChange={(e, value) => handleChange(value)}
>
<CoreSegmentedControl selected={selected.includes('0')} onClick={() => handleChange('0')}>
Tab1
</CoreSegmentedControl>
<CoreSegmentedControl selected={selected.includes('1')} onClick={() => handleChange('1')}>
Tab2
</CoreSegmentedControl>
<CoreSegmentedControl selected={selected.includes('2')} onClick={() => handleChange('2')} disabled>
Tab3 (disabled)
</CoreSegmentedControl>
<CoreSegmentedControl selected={selected.includes('3')} onClick={() => handleChange('3')}>
Tab4
</CoreSegmentedControl>
</CoreSegmentedControlGroup>크기 설정
import { useState } from 'react';
import { CoreSegmentedControlGroup, CoreSegmentedControl } from '@featuring-corp/components';
const [selected, setSelected] = useState('0');
// Small
<CoreSegmentedControlGroup
size="sm"
value={selected}
onChange={(e, value) => setSelected(value)}
>
<CoreSegmentedControl selected={selected === '0'} onClick={() => setSelected('0')}>
Tab1
</CoreSegmentedControl>
<CoreSegmentedControl selected={selected === '1'} onClick={() => setSelected('1')}>
Tab2
</CoreSegmentedControl>
</CoreSegmentedControlGroup>
// Medium
<CoreSegmentedControlGroup
size="md"
value={selected}
onChange={(e, value) => setSelected(value)}
>
<CoreSegmentedControl selected={selected === '0'} onClick={() => setSelected('0')}>
Tab1
</CoreSegmentedControl>
<CoreSegmentedControl selected={selected === '1'} onClick={() => setSelected('1')}>
Tab2
</CoreSegmentedControl>
</CoreSegmentedControlGroup>
// Large
<CoreSegmentedControlGroup
size="lg"
value={selected}
onChange={(e, value) => setSelected(value)}
>
<CoreSegmentedControl selected={selected === '0'} onClick={() => setSelected('0')}>
Tab1
</CoreSegmentedControl>
<CoreSegmentedControl selected={selected === '1'} onClick={() => setSelected('1')}>
Tab2
</CoreSegmentedControl>
</CoreSegmentedControlGroup>세로 방향
import { useState } from 'react';
import { CoreSegmentedControlGroup, CoreSegmentedControl } from '@featuring-corp/components';
const [selected, setSelected] = useState('0');
<CoreSegmentedControlGroup
size="md"
orientation="vertical"
value={selected}
onChange={(e, value) => setSelected(value)}
>
<CoreSegmentedControl selected={selected === '0'} onClick={() => setSelected('0')}>
Tab1
</CoreSegmentedControl>
<CoreSegmentedControl selected={selected === '1'} onClick={() => setSelected('1')}>
Tab2
</CoreSegmentedControl>
<CoreSegmentedControl selected={selected === '2'} onClick={() => setSelected('2')}>
Tab3
</CoreSegmentedControl>
</CoreSegmentedControlGroup>Props
ComponentPropsWithoutRef<'div'> 타입을 확장한 컴포넌트입니다.
Prop
Type
CoreSegmentedControlGroupOrientation
Prop
Type
SegmentedControlSizeType
Prop
Type
스타일
기본 스타일 속성
Segmented Control Group:
display:flexgap:spacing-100(4px)padding:spacing-100(4px)border-radius:radius-100background-color:background-1box-shadow:inset 0 0 0 1px border[1]transition:0.2s
Size Variants (Group)
sm:height: 26pxmd:height: 32pxlg:height: 40px
Orientation Variants (Group)
horizontal:flex-direction: row(기본값)vertical:flex-direction: column