Projects/Usability/HIG/Toggle Buttons: Difference between revisions

    From KDE TechBase
    < Projects‎ | Usability‎ | HIG
    No edit summary
    (6 intermediate revisions by the same user not shown)
    Line 8: Line 8:


    Example: A word processor should use toggle buttons to indicate the state of "Bold", "Italic" or "Underline" formatting.
    Example: A word processor should use toggle buttons to indicate the state of "Bold", "Italic" or "Underline" formatting.
    [[File:Toggle-button-formatting.png]]
    (Toggle buttons used in a rich text editor)


    ==When not to Use==
    ==When not to Use==
    Line 19: Line 22:
    ==Icon and Label==
    ==Icon and Label==


    There are two ways to label a toggle button:
    There are two ways to label a toggle button. You can either describe the state reached when the button is down or describe the current state.


    '''1. Describe the state which is reached when the button is down'''
    ===First option: Describe the state reached when the button is down===


    In this case the icon and label should not change when the button is down.
    In this case the icon and label should not change when the button is down.


    For example a button to toggle the visibility of a sidebar could say "Show Sidebar". It should still say "Show Sidebar" when the button is down: it should not be changed to "Hide Sidebar".
    Example: We create a toggle button to toggle the visibility of a sidebar. The label of this button is "Show Sidebar". When the button is toggled down, it should still say "Show Sidebar": it should not be changed to "Hide Sidebar".


    If you want to change the button text to "Hide Sidebar" when the sidebar is shown then you should use a normal button, not a toggle button.
    Think of the button as a check box: when you click a check box you do not expect its label to change. If it makes more sense to change the button text to "Hide Sidebar" when the sidebar is shown then you should use a normal button, not a toggle button.


    An alternative is to reduce the button to a noun if it is not ambiguous. In this example the button label could be reduced to "Sidebar".
    It is worth noting that unlike normal buttons, the label of a toggle button does not need to contain a verb, as long as there is no ambiguity. In this example the label can be reduced to "Sidebar".


    [[File:Toggle-button-summary.png]]
    [[File:Toggle-button-summary.png]]


    '''2. Describe the current state'''
    ===Second option: Describe the current state===
     
    In this case the label will often include a passive verb. For example a button to lock or unlock an element would say "Unlocked" when it is up and "Locked" when it is down. The icon should also change to match the label.
     
    [[File:Toggle-button-unlocked-locked.png]]
     
    ===Which option to use===


    In this case the label will often include a passive verb. For example a button to lock or unlock an element would say "Unlocked" when it is up and "Locked" when it is down. The icon should match the label.
    There is no strict rule to decide which option is the best, it depends on the context of your application. Note however that the second option has one drawback: since the label change, the button width will change as well. This can be annoying if the button is in the middle of a toolbar as it will cause all buttons after it to shift horizontally.

    Revision as of 15:39, 28 August 2010

    Definition

    A toggle button is a button which stays down when clicked once and goes up when clicked a second time.

    When to Use

    Use a toggle button to indicate a state.

    Example: A word processor should use toggle buttons to indicate the state of "Bold", "Italic" or "Underline" formatting.

    (Toggle buttons used in a rich text editor)

    When not to Use

    Do not use a toggle button to indicate an action.

    Example: A music player should not use a toggle button to implement a combined Play/Pause button. It should use a normal button and adjust the icon and label to represent the action which would be performed when clicked.

    Icon and Label

    There are two ways to label a toggle button. You can either describe the state reached when the button is down or describe the current state.

    First option: Describe the state reached when the button is down

    In this case the icon and label should not change when the button is down.

    Example: We create a toggle button to toggle the visibility of a sidebar. The label of this button is "Show Sidebar". When the button is toggled down, it should still say "Show Sidebar": it should not be changed to "Hide Sidebar".

    Think of the button as a check box: when you click a check box you do not expect its label to change. If it makes more sense to change the button text to "Hide Sidebar" when the sidebar is shown then you should use a normal button, not a toggle button.

    It is worth noting that unlike normal buttons, the label of a toggle button does not need to contain a verb, as long as there is no ambiguity. In this example the label can be reduced to "Sidebar".

    Second option: Describe the current state

    In this case the label will often include a passive verb. For example a button to lock or unlock an element would say "Unlocked" when it is up and "Locked" when it is down. The icon should also change to match the label.

    Which option to use

    There is no strict rule to decide which option is the best, it depends on the context of your application. Note however that the second option has one drawback: since the label change, the button width will change as well. This can be annoying if the button is in the middle of a toolbar as it will cause all buttons after it to shift horizontally.