Toggle is a control that allows users to quickly move back and forth between settings or programs. Toggle controls can be found on almost every piece of software and hardware that includes an options list or preferences menu. It is also commonly used in experimentation to make data-driven optimizations.
The word toggle comes from the 18th century and refers to a pin passed through the eye of a rope to fasten it in place. It is still used for this purpose and for other kinds of fasteners. Toggle switches should have clear labels that describe what they will do when switched on or off. These should be descriptive enough that a user can read them without glancing at the switch. They should be positioned where they will be easily seen by the user and visually distinct from other types of controls.
Toggles should never require a Save or Confirm button to take effect. It’s better to replace them with a checkbox if this is necessary, and ideally this should be done when a change in state is made. The toggle should display a progress animation or some other indication of its current processing status when switching between states, to give the user confidence that the change has taken effect.
Toggle configuration can be managed with either a static file or with some form of centralized store, usually an existing application DB. Both of these approaches are fiddly and at a certain scale become impractical. In addition they are difficult to manage consistently across a fleet of servers and often require re-deployment to change an Experiment Toggle. To address this, many organizations choose to build-out some kind of admin UI for managing their feature flags and toggle configuration.