A toggle is a user interface control that allows users to update preferences, settings, or other types of information. They’re particularly suited for changing state of system functionalities like Airplane Mode or Bluetooth. They provide direct labels, standard visual design, and deliver immediate results when pressed. They’re more intuitive than radio buttons and tend to work better on mobile.
A Toggle has a defined set of states – Default, On, and Off – that can be switched between. A toggle can also have a fallback configuration that isn’t currently in use (ie. the status quo). A toggle can be set to automatically change its state after a specific interval of time. For example a Toggle can be configured to switch between On and Off every 10 seconds.
Toggles are commonly used to enable or disable features in a product and can be triggered by an event, such as a page load. They’re not a good fit for long forms where it might take some time for changes to apply.
When using Toggles it’s important to be consistent in the way that they’re labeled. Having one toggle with two different states can be confusing for users, especially when the toggles are placed next to each other.
Savvy teams view Feature Toggle as inventory that comes with a carrying cost and seek to keep this overhead low by making sure that they remove toggles that aren’t being used. To do this many teams add a task to their backlog when a toggle is first introduced and put “expiration dates” on the toggles so that they’ll fail a test (or even refuse to start an application!) once they’re no longer needed.