Cal.comdesign-system

Segmented Radio Group

Exclusive form or filter value styled as a segmented control.

Use SegmentedRadioGroup when one value must always stay selected and the choice does not change the URL — billing period, a view mode, a status filter, a field type. It is a Radio Group with the shared segmented-control styles. Do not use Tabs here: there are no associated panels. For destination links, use Segmented Nav. See Segmented controls for the full pick list.

Example

Billing period on plans and the upgrade dialog. Copy is paraphrased.

apps/web · billing period
MonthlyAnnual25% off
apps/web/modules/billing/components/BillingPeriodToggle.tsx

Bookings list / calendar is icon-only. Height still comes from size="sm"; aspect-square px-0 makes the hit target square.

apps/web · bookings view
apps/web/modules/bookings/components/ViewToggleButton.tsx

API

Call sites

Example URLs

Not exhaustive — a few places you can open locally (e.g. http://localhost:3000) to see this in product.

Source

packages/coss-ui/src/shared/segmented-radio-group.tsx