Back to Tuist

ButtonGroup

noora/docs/components/buttongroup.md

4.204.04.5 KB
Original Source
<!-- Generated by scripts/generate-web-components.js. Do not edit directly. -->

ButtonGroup

Groups related controls into a compact segmented surface.

html
<noora-button-group>
  <noora-button-group-item value="day">Day</noora-button-group-item>
  <noora-button-group-item value="week">Week</noora-button-group-item>
</noora-button-group>

Attributes

AttributeType or allowed valuesDefaultDescription
sizesmall, medium, large"medium"Controls child dimensions.

Properties

PropertyType or allowed valuesDefaultDescription
itemsArray<Record<string, unknown>>[]Defines group items programmatically when declarative noora-button-group-item children are not used.

Events

EventTypeDescription
noora-selectCustomEvent<{ index: number; item: Record<string, unknown>; value: unknown }>Emitted when an enabled group item is selected.

Slots

SlotDescription
defaultDeclarative noora-button-group-item children.

Styling parts

PartDescription
groupThe group container.

Use noora-button-group-item children for declarative groups.

The items property remains available for data-driven rendering.

Sizes

Button groups range from small to large.

html
<noora-button-group size="small">
  <noora-button-group-item>First</noora-button-group-item>
  <noora-button-group-item>Second</noora-button-group-item>
  <noora-button-group-item>Third</noora-button-group-item>
</noora-button-group>
<noora-button-group size="medium">
  <noora-button-group-item>First</noora-button-group-item>
  <noora-button-group-item>Second</noora-button-group-item>
  <noora-button-group-item>Third</noora-button-group-item>
</noora-button-group>
<noora-button-group size="large">
  <noora-button-group-item>First</noora-button-group-item>
  <noora-button-group-item>Second</noora-button-group-item>
  <noora-button-group-item>Third</noora-button-group-item>
</noora-button-group>

Icon configurations

Compare labeled controls with icons, icon-only controls, and a mixture of both.

html
<noora-button-group size="medium">
  <noora-button-group-item icon-left="chevron_left">Previous</noora-button-group-item>
  <noora-button-group-item icon-left="chevron_left" icon-right="chevron_right">Both</noora-button-group-item>
  <noora-button-group-item icon-right="chevron_right">Next</noora-button-group-item>
</noora-button-group>

<noora-button-group size="medium">
  <noora-button-group-item icon="chevron_left" icon-only aria-label="Previous"></noora-button-group-item>
  <noora-button-group-item icon="chevron_right" icon-only aria-label="Next"></noora-button-group-item>
</noora-button-group>

<noora-button-group size="medium">
  <noora-button-group-item icon="chevron_left" icon-only aria-label="Previous"></noora-button-group-item>
  <noora-button-group-item>Page 1</noora-button-group-item>
  <noora-button-group-item>Page 2</noora-button-group-item>
  <noora-button-group-item icon="chevron_right" icon-only aria-label="Next"></noora-button-group-item>
</noora-button-group>

States

Compare a partially disabled group with a fully disabled group.

html
<noora-button-group size="medium">
  <noora-button-group-item>Available</noora-button-group-item>
  <noora-button-group-item disabled>Disabled</noora-button-group-item>
  <noora-button-group-item>Available</noora-button-group-item>
</noora-button-group>

<noora-button-group size="medium">
  <noora-button-group-item disabled>First</noora-button-group-item>
  <noora-button-group-item disabled>Second</noora-button-group-item>
  <noora-button-group-item disabled>Third</noora-button-group-item>
</noora-button-group>

Practical examples

Use groups for pagination controls and view switching.

html
<noora-button-group size="medium">
  <noora-button-group-item icon="chevron_left" icon-only aria-label="Previous"></noora-button-group-item>
  <noora-button-group-item selected>1</noora-button-group-item>
  <noora-button-group-item>2</noora-button-group-item>
  <noora-button-group-item>3</noora-button-group-item>
  <noora-button-group-item icon="chevron_right" icon-only aria-label="Next"></noora-button-group-item>
</noora-button-group>

<noora-button-group size="small">
  <noora-button-group-item selected>List</noora-button-group-item>
  <noora-button-group-item>Grid</noora-button-group-item>
  <noora-button-group-item>Card</noora-button-group-item>
</noora-button-group>