Skip to content

SegmentedControl

A horizontal segmented control for mutually exclusive option selection. Commonly used for tabs, filters, or view toggles.

import { SegmentedControl } from '@truongdq01/ui';
import { SegmentedControl } from '@truongdq01/ui';
import { useState } from 'react';
export function ViewToggle() {
const [selected, setSelected] = useState(0);
return (
<SegmentedControl
values={['Day', 'Week', 'Month']}
selectedIndex={selected}
onChange={setSelected}
/>
);
}
<SegmentedControl
segments={[
{ label: 'List', icon: 'list' },
{ label: 'Grid', icon: 'grid' },
{ label: 'Map', icon: 'map' },
]}
selectedIndex={selected}
onChange={setSelected}
/>
PropTypeDefaultDescription
valuesstring[]Simple string labels for each segment
segments{ label: string; icon?: string }[]Rich segment definitions with icons
selectedIndexnumberrequiredCurrently selected segment index
onChange(index: number) => voidrequiredCalled when selection changes
disabledbooleanfalseDisable all segments
size"sm" | "md" | "lg""md"Control size
colorSchemestring"brand"Active segment color
styleViewStyleContainer style override