Create UI

Segmented Control

Navigation

About

A segmented control from the Create UI design system. Flat or grouped, rounded or pill, five sizes, leading and trailing slots, icon-only items and an animated selection indicator. Built with Radix Slot and Tailwind CSS v4.

Built with React and Tailwind. Copy the prompt and paste it into Claude Code, Cursor or Lovable: your agent adds Segmented Control to your project and fits it to your theme.

Code

How Segmented Control is used: the demo's code. The component's own source comes with a free account.

Usage.tsx

import {
  RiBillLine,
  RiChat1Line,
  RiFunctionLine,
  RiLayoutGridFill,
  RiLineChartLine,
  RiListUnordered,
  RiNotification3Line,
  RiSettings3Line,
} from "@create-ui/assets/icons"

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

export default function SegmentedControlShowcase() {
  return (
    <div className="flex flex-col items-center gap-6">
      <SegmentedControl
        variant="neutral"
        appearance="grouped"
        size="lg"
        defaultValue="all"
      >
        <SegmentedControlItem value="all" leading={<RiFunctionLine />}>
          All
        </SegmentedControlItem>
        <SegmentedControlItem
          value="messages"
          leading={<RiChat1Line />}
          trailing={<span>3</span>}
        >
          Messages
        </SegmentedControlItem>
        <SegmentedControlItem value="billing" leading={<RiBillLine />}>
          Billing
        </SegmentedControlItem>
        <SegmentedControlItem
          value="notifications"
          leading={<RiNotification3Line />}
          trailing={<span>7</span>}
          disabled
        >
          Notifications
        </SegmentedControlItem>
        <SegmentedControlItem value="settings" leading={<RiSettings3Line />}>
          Settings
        </SegmentedControlItem>
      </SegmentedControl>

      <div className="flex flex-wrap items-center justify-center gap-4">
        <SegmentedControl
          variant="primary"
          appearance="grouped"
          defaultValue="month"
        >
          <SegmentedControlItem value="day">Day</SegmentedControlItem>
          <SegmentedControlItem value="week">Week</SegmentedControlItem>
          <SegmentedControlItem value="month">Month</SegmentedControlItem>
          <SegmentedControlItem value="year">Year</SegmentedControlItem>
        </SegmentedControl>

        <SegmentedControl
          variant="neutral"
          shape="pill"
          appearance="grouped"
          defaultValue="grid"
        >
          <SegmentedControlItem value="grid" iconOnly aria-label="Grid view">
            <RiLayoutGridFill />
          </SegmentedControlItem>
          <SegmentedControlItem value="list" iconOnly aria-label="List view">
            <RiListUnordered />
          </SegmentedControlItem>
          <SegmentedControlItem value="chart" iconOnly aria-label="Chart view">
            <RiLineChartLine />
          </SegmentedControlItem>
        </SegmentedControl>
      </div>
    </div>
  )
}

Dependencies

More by Create UI

View all
  • Stepper

    Stepper

  • Avatar

    Avatar

  • App Store Badge

    App Store Badge

  • Social Login Button

    Social Login Button

More in Navigation

View all
  • Sidebar

    Sidebar

    235
  • Navbar with Theme Toggle

    Navbar with Theme Toggle

    43
  • Sidebar

    Sidebar

    339
  • Tabs

    Tabs

    60
  • Numberless Pagination with Text

    Numberless Pagination with Text

    11
  • Oversized 404 Numeral

    Oversized 404 Numeral

    50
  • Footer

    Footer

    446
  • Pagination

    Pagination

    43