ComponentPorchlight CSS

Segmented Control

Compact inline switcher for binary/ternary toggles. CSS-only, native radio inputs.

51 components9 patterns46 stable5 experimental

Command

Search Porchlight

Segmented Control

The .pl-c-segmented is a pill-shaped inline switcher. Active segment gets accent styling via :has(:checked). Built on native radio inputs - keyboard accessible, no JavaScript.

Semantic HTML

<div class="pl-c-segmented" role="radiogroup" aria-label="View mode">
  <label class="pl-c-segmented__item">
    <input type="radio" name="view" checked />
    <span>List</span>
  </label>
  <label class="pl-c-segmented__item">
    <input type="radio" name="view" />
    <span>Grid</span>
  </label>
</div>

Class contract

Selector Role
.pl-c-segmented Container (pill, inline-flex).
.pl-c-segmented__item A label wrapping a radio input.
:has(input:checked) Active segment (accent fill).