Skip to content

Cycle Button

A compact single-selection GUI control that displays only the current value and advances through a finite ordered option set on repeated activation, wrapping after the last value.

Version
v3 · 2026-09-19 · History
Domain-specific #
1609
Domain group
Professional & Organizational Practice
Origin domain
Human-Computer Interaction (HCI)
Subdomain
Graphical Control Elements → Human-Computer Interaction (HCI)
Aliases
Cycle gadget, Cycling button

Core Idea

A cycle button is a graphical single-selection control that occupies roughly one button-sized region, shows the currently selected option, and advances to the next member of a finite ordered set whenever the user activates it. After the last option it wraps to the first. Some implementations provide reverse cycling through a modifier or alternate input.

The control trades visibility for compactness. Radio buttons expose all options simultaneously; a list or menu reveals the set on demand; a cycle button shows only the current value and makes the user traverse states. The Amiga user-interface style guide describes the control as allowing one choice from several while only the selected choice remains visible, recommending it for attributes and warning that long option sets burden memory and repeated activation.

How would you explain it like I'm…

The Next-Choice Button

A cycle button is a button that shows one choice, like "small." Each time you press it, it changes to the next choice, like "medium," then "large," and after the last one it goes back to "small." It's like flipping through a little stack of cards where you can only see the top one.

Click-to-Next Choice Button

A cycle button is a button on a screen that lets you pick one option from a short list, but it only shows the option that is chosen right now. Every click moves it to the next option in the list, and after the last option it wraps around to the first. It saves space because it takes up only one button's worth of room. The downside is that you can't see all the choices at once, so a long list means lots of clicking and remembering. The word on the button tells you what is picked now, not what will happen when you click.

Wraparound Option Selector

A cycle button is a compact interface control for choosing exactly one option from a small, ordered set. It takes up about the space of a single button, displays the currently selected value, and advances to the next value each time it is activated, wrapping from the last option back to the first; some versions let you go backward with a modifier key. Compare radio buttons, which show every option at once, and a drop-down menu, which reveals the list when you open it: a cycle button shows only the current value, so you have to step through states to find the one you want. That trade of visibility for compactness makes it suited to short lists and a burden for long ones. Importantly, its label shows state (what is selected), unlike an ordinary command button whose label says what clicking will do.

 

A cycle button is a graphical single-selection widget occupying roughly one button-sized region. It displays the current member of a finite ordered set of options, and each activation replaces it with the successor, wrapping from the last option to the first; some implementations support reverse cycling through a modifier or alternate input. Its interaction loop is: current value → activation → successor value → visible replacement → optional wraparound. The design trades visibility for compactness: radio buttons expose every option simultaneously, lists and menus reveal the set on demand, while a cycle button reveals only the current value and makes users traverse states. The Amiga UI style guide describes it as allowing one choice from several with only the selection visible, recommends it for attributes, and warns that long option sets burden memory and repeated activation. Because the displayed text is state rather than an action label, it must be distinguished from a command button, which matters for accessibility semantics.

Scope of Application

Cycle buttons appear in compact preference panels, tool palettes, legacy desktop interfaces, embedded displays, musical controllers, and input-constrained applications. AmigaOS documented a CYCLE_KIND gadget whose current choice was displayed and whose click or shift-click advanced forward or backward.

The pattern fits a small, memorable, preferably ordered set: low/medium/high, month sequence, view mode, or a few rendering states. It performs poorly when options are numerous, unfamiliar, safety-critical, or unordered; direct presentation through radio buttons or a disclosed list then reduces hidden-state and traversal costs.

Clarity

The display must answer “what is selected now?” rather than ambiguously “what will happen if pressed?” If a button reading “Muted” indicates current state in one product and the next action in another, users cannot predict the transition. A stable field label plus a changing value—Quality: High—is clearer than an isolated changing word.

Manages Complexity

Cycle Button compresses a mutually exclusive choice into one control-sized area. The application stores a single index, renders its label, and maps activation to modular increment. This is useful on dense screens and limited controllers where a radio group or pop-up menu consumes scarce space or input operations.

Abstract Reasoning

State-machine model. Represent options as v0…v(n-1) and activation as i ← (i+1) mod n; reverse activation uses (i-1) mod n. Verify every state is reachable.

Traversal-cost test. Expected activations depend on starting and target distributions. If users frequently jump among distant values, a directly selectable list dominates.

Knowledge Transfer

The full identity transfers among GUI toolkits, desktop systems, embedded displays, and hardware controllers that render a software selection state. Using “cycle button” for a mechanical rotary selector is an analogy unless the compact display-and-replacement semantics remain.

The structural residue is Cycle plus finite state transition and interface. Those primes travel to seasons, protocols, and control loops; the widget's display, activation, selection, and accessibility rules keep it domain-specific.

Relationships to Other Abstractions

Local relationship map for Cycle ButtonParents appear above the current abstraction, mutual partners to the right, and children below. Node labels state whether each abstraction is prime or domain-specific; colors identify relation types.Cycle ButtonDOMAINPrime abstraction: Cycle — is a kind ofCyclePRIME

Current abstraction Cycle Button Domain-specific

Parents (1) — outgoing typed relations

  • Cycle Button is a kind of Cycle Prime

    cycle: the last option transitions back to the first.

Hierarchy path (1) — routes to 1 parentless root

Neighborhood in Abstraction Space

Cycle Button sits in a sparse region of the domain-specific corpus (98th percentile for distinctiveness): few abstractions share its structure, so a faithful description tends to retrieve it precisely.

Family — Unclustered & Miscellaneous (2769 abstractions)

Nearest neighbors

Computed from structural-signature embeddings · 2026-10-25