Segmented control
Segmented controls are helpful to show closely-related options users can choose from. They can be used to switch views for example.
Example
<div class="nj-segmented-control" role="group" aria-label="View" data-value="Item 1">
<button class="nj-segmented-control-btn" type="button" aria-pressed="true" data-value="Item 1">Item 1</button>
<button class="nj-segmented-control-btn" type="button" aria-pressed="false" data-value="Item 2">Item 2</button>
<button class="nj-segmented-control-btn" type="button" aria-pressed="false" data-value="Item 3">Item 3</button>
<button class="nj-segmented-control-btn" type="button" aria-pressed="false" data-value="Item 4">Item 4</button>
<button class="nj-segmented-control-btn" type="button" aria-pressed="false" data-value="Item 5">Item 5</button>
<button class="nj-segmented-control-btn" type="button" aria-pressed="false" data-value="Item 6">
<span aria-hidden="true" class="material-icons nj-segmented-control-btn__icon">av_timer</span>
<span>Item 6</span>
</button>
<button class="nj-segmented-control-btn" type="button" aria-pressed="false" disabled data-value="Item 7">Item 7</button>
</div>
Disabled
To disable a control, simply add the disabled
boolean attribute to the button
element.
You can have disabled checked radio buttons.
<div class="nj-segmented-control" role="group" aria-label="View" data-value="Item 1">
<button class="nj-segmented-control-btn" type="button" aria-pressed="true" data-value="Item 1">Item 1</button>
<button class="nj-segmented-control-btn" type="button" aria-pressed="false" data-value="Item 2" disabled>Item 2</button>
<button class="nj-segmented-control-btn" type="button" aria-pressed="false" data-value="Item 3">Item 3</button>
</div>
Size variations
Segmented control comes in 3 sizes:
- small:
.nj-segmented-control--sm
- medium: default
- large:
.nj-segmented-control--lg
Small:
Medium (Default):
Large:
<div style="display: flex; flex-direction: column; gap: var(--nj-size-space-24); align-items: flex-start">
<h5 style="margin: 0">Small:</h5>
<div class="nj-segmented-control nj-segmented-control--sm" role="group" aria-label="View" data-value="Item 5">
<button class="nj-segmented-control-btn" type="button" aria-pressed="false" data-value="Item 1">Item 1</button>
<button class="nj-segmented-control-btn" type="button" aria-pressed="false" data-value="Item 2">Item 2</button>
<button class="nj-segmented-control-btn" type="button" aria-pressed="false" data-value="Item 3">Item 3</button>
<button class="nj-segmented-control-btn" type="button" aria-pressed="false" data-value="Item 4">Item 4</button>
<button class="nj-segmented-control-btn" type="button" aria-pressed="true" data-value="Item 5">Item 5</button>
<button class="nj-segmented-control-btn" type="button" aria-pressed="false" data-value="Item 6">
<span aria-hidden="true" class="material-icons nj-segmented-control-btn__icon">av_timer</span>
<span>Item 6</span>
</button>
<button class="nj-segmented-control-btn" type="button" aria-pressed="false" disabled data-value="Item 7">Item 7</button>
</div>
<h5 style="margin: 0">Medium (Default):</h5>
<div class="nj-segmented-control" role="group" aria-label="View" data-value="Item 5">
<button class="nj-segmented-control-btn" type="button" aria-pressed="false" data-value="Item 1">Item 1</button>
<button class="nj-segmented-control-btn" type="button" aria-pressed="false" data-value="Item 2">Item 2</button>
<button class="nj-segmented-control-btn" type="button" aria-pressed="false" data-value="Item 3">Item 3</button>
<button class="nj-segmented-control-btn" type="button" aria-pressed="false" data-value="Item 4">Item 4</button>
<button class="nj-segmented-control-btn" type="button" aria-pressed="true" data-value="Item 5">Item 5</button>
<button class="nj-segmented-control-btn" type="button" aria-pressed="false" data-value="Item 6">
<span aria-hidden="true" class="material-icons nj-segmented-control-btn__icon">av_timer</span>
<span>Item 6</span>
</button>
<button class="nj-segmented-control-btn" type="button" aria-pressed="false" disabled data-value="Item 7">Item 7</button>
</div>
<h5 style="margin: 0">Large:</h5>
<div class="nj-segmented-control nj-segmented-control--lg" role="group" aria-label="View" data-value="Item 5">
<button class="nj-segmented-control-btn" type="button" aria-pressed="false" data-value="Item 1">Item 1</button>
<button class="nj-segmented-control-btn" type="button" aria-pressed="false" data-value="Item 2">Item 2</button>
<button class="nj-segmented-control-btn" type="button" aria-pressed="false" data-value="Item 3">Item 3</button>
<button class="nj-segmented-control-btn" type="button" aria-pressed="false" data-value="Item 4">Item 4</button>
<button class="nj-segmented-control-btn" type="button" aria-pressed="true" data-value="Item 5">Item 5</button>
<button class="nj-segmented-control-btn" type="button" aria-pressed="false" data-value="Item 6">
<span aria-hidden="true" class="material-icons nj-segmented-control-btn__icon">av_timer</span>
<span>Item 6</span>
</button>
<button class="nj-segmented-control-btn" type="button" aria-pressed="false" disabled data-value="Item 7">Item 7</button>
</div>
</div>
Icon only
<div class="nj-segmented-control" role="group" aria-label="View" data-value="Item 1">
<button class="nj-segmented-control-btn" type="button" aria-pressed="false" data-value="Item 1">
<span aria-hidden="true" class="material-icons nj-segmented-control-btn__icon">format_align_left</span>
</button>
<button class="nj-segmented-control-btn" type="button" aria-pressed="false" data-value="Item 2">
<span aria-hidden="true" class="material-icons nj-segmented-control-btn__icon">format_align_center</span>
</button>
<button class="nj-segmented-control-btn" type="button" aria-pressed="false" data-value="Item 3">
<span aria-hidden="true" class="material-icons nj-segmented-control-btn__icon">format_align_right</span>
</button>
<button class="nj-segmented-control-btn" type="button" aria-pressed="false" data-value="Item 4" disabled>
<span aria-hidden="true" class="material-icons nj-segmented-control-btn__icon">format_align_justify</span>
</button>
</div>