What is a Toggle?
A toggle is a switch that allows you to choose between two states. It is common to see toggles in software when it comes to options or preferences menus where you can turn features on and off. The word is also used to describe switching back and forth between different programs or settings as in the example of toggling between the Caps Lock and Num Lock keys on a keyboard.
A small toggle is more compact in size and is used when you need to display the toggle within condensed spaces such as inside data table rows. Toggle must be accompanied by label text and action text to provide context.
Toggle is not intended to be a replacement for checkbox or button but rather is designed to be a more lightweight component that can be easily added to existing markup to enable the feature. The most appropriate markup depends on the functionality of the toggle and in some cases a checkbox might be a better fit such as when it is a default option or an indicator of whether something is active or not.
Using static files to manage Toggle Configuration can become cumbersome once you reach a certain scale as modifying the configuration is fiddly and ensuring consistency across a fleet of servers is difficult. In response to this many organizations move their toggle configuration into some type of centralized store, often an application DB.
Savvy teams view their Feature Toggle inventory as carrying a cost and aim to keep it as low as possible. For this reason they tend to test their release with all toggles flipped Off and also test with any toggles that they are planning on releasing flipped On. Some teams even go as far as to set “expiration dates” for their toggles which will fail a test (and potentially prevent the build from starting) if a flag is not removed before its expiry.