Reference: Elevate Lookbook | Specs: DESIGN.md
Control buttons are segmented button groups used in toolbars, control panels, and filtering interfaces. They can be icon-only or include text labels, and support left/right icons with optional dropdown menus.
Control buttons in all four sizes (xs, sm, md, lg) with segment="none" (fully rounded, standalone).
<!-- XS (24px) -->
<button class="elv-control-button elv-control-button--xs elv-control-button--icon-only" type="button" aria-label="Controls">
<svg class="elv-control-button__icon" viewBox="0 0 20 20">...</svg>
</button>
<!-- SM (32px) -->
<button class="elv-control-button elv-control-button--sm elv-control-button--icon-only" type="button">...</button>
<!-- MD (40px) -->
<button class="elv-control-button elv-control-button--md elv-control-button--icon-only" type="button">...</button>
<!-- LG (48px) -->
<button class="elv-control-button elv-control-button--lg elv-control-button--icon-only" type="button">...</button>
Three-segment button group using left_cap, middle, and right_cap. Middle button is in active state.
<div class="elv-control-button-group">
<button class="elv-control-button elv-control-button--md elv-control-button--icon-only elv-control-button--left-cap" type="button" aria-label="Align left">
<svg class="elv-control-button__icon">...</svg>
</button>
<button class="elv-control-button elv-control-button--md elv-control-button--icon-only elv-control-button--middle is-active" type="button" aria-label="Align center" aria-pressed="true">
<svg class="elv-control-button__icon">...</svg>
</button>
<button class="elv-control-button elv-control-button--md elv-control-button--icon-only elv-control-button--right-cap" type="button" aria-label="Align right">
<svg class="elv-control-button__icon">...</svg>
</button>
</div>
Smaller 32px toolbar group with four segments showing view mode controls.
<div class="elv-control-button-group">
<button class="elv-control-button elv-control-button--sm elv-control-button--icon-only elv-control-button--left-cap is-active" type="button" aria-pressed="true">
<svg class="elv-control-button__icon">...</svg>
</button>
<button class="elv-control-button elv-control-button--sm elv-control-button--icon-only elv-control-button--middle" type="button">...</button>
<button class="elv-control-button elv-control-button--sm elv-control-button--icon-only elv-control-button--middle" type="button">...</button>
<button class="elv-control-button elv-control-button--sm elv-control-button--icon-only elv-control-button--right-cap" type="button">...</button>
</div>
Control buttons with text labels. Labels use Elevate Typography component styles (label variant).
<div class="elv-control-button-group">
<button class="elv-control-button elv-control-button--md elv-control-button--left-cap" type="button">
<span class="elv-control-button__label">Day</span>
</button>
<button class="elv-control-button elv-control-button--md elv-control-button--middle is-active" type="button" aria-pressed="true">
<span class="elv-control-button__label">Week</span>
</button>
<button class="elv-control-button elv-control-button--md elv-control-button--right-cap" type="button">
<span class="elv-control-button__label">Month</span>
</button>
</div>
Larger 48px control buttons combining left icons with text labels. First button is active.
<div class="elv-control-button-group">
<button class="elv-control-button elv-control-button--lg elv-control-button--left-cap is-active" type="button" aria-pressed="true">
<svg class="elv-control-button__icon">...</svg>
<span class="elv-control-button__label">Controls</span>
</button>
<button class="elv-control-button elv-control-button--lg elv-control-button--middle" type="button">
<svg class="elv-control-button__icon">...</svg>
<span class="elv-control-button__label">Favorites</span>
</button>
<button class="elv-control-button elv-control-button--lg elv-control-button--right-cap" type="button">
<svg class="elv-control-button__icon">...</svg>
<span class="elv-control-button__label">Add</span>
</button>
</div>
Small control buttons with labels and right-positioned icons (e.g., sort indicators).
<div class="elv-control-button-group">
<button class="elv-control-button elv-control-button--sm elv-control-button--left-cap" type="button">
<span class="elv-control-button__label">Name</span>
<svg class="elv-control-button__icon">...</svg>
</button>
<button class="elv-control-button elv-control-button--sm elv-control-button--middle is-active" type="button" aria-pressed="true">
<span class="elv-control-button__label">Date</span>
<svg class="elv-control-button__icon">...</svg>
</button>
<button class="elv-control-button elv-control-button--sm elv-control-button--right-cap" type="button">
<span class="elv-control-button__label">Size</span>
</button>
</div>
Control button with integrated dropdown indicator (separated by divider). Standalone button, not part of a group.
<button class="elv-control-button elv-control-button--md" type="button">
<svg class="elv-control-button__icon">...</svg>
<span class="elv-control-button__label">Options</span>
<div class="elv-control-button__dropdown">
<svg class="elv-control-button__icon">...</svg>
</div>
</button>
Side-by-side comparison of all four sizes with icon-only buttons in segmented groups.
Click to switch between different view modes. Active state persists.
Control buttons in disabled state with reduced opacity and cursor-not-allowed.
<button class="elv-control-button elv-control-button--md elv-control-button--icon-only" type="button" disabled>
<svg class="elv-control-button__icon">...</svg>
</button>
is-active class and aria-pressed="true" for toggle behavior