Алан Дэй (Allan Day)
aday@gnome.org
Калум Бенсон (Calum Benson)
Адам Элман (Adam Elman)
Сэт Никел (Seth Nickell)
Колин Робертсон (Colin Robertson)

# Кнопки

Кнопки — одни из самых распространённых элементов пользовательского интерфейса. Кнопки служат для выполнения действий, изменения параметров или областей просмотра, активируют инструменты, показывают диалоговые окна, всплывающие виджеты или другие элементы пользовательского интерфейса.

# Общие рекомендации

A button can contain an icon, button, or — more unusually — an image. Follow the icons and artwork guidelines when deciding which to use.

После нажатия кнопки пользователь ожидает увидеть результат своего действия в течение одной секунды.

В одном и том же окне все кнопки должны быть одной и той же ширины и высоты. Это обеспечит однородный внешний вид вашего интерфейса и сделает его проще в использовании.

Не назначайте действия, для выполнения которых требуется двойное нажатие или нажатие вспомогательной кнопки, поскольку их сложно выявлять и подобное поведение кнопок отличается от стандартного.

Если в интерфейсе есть кнопки, на которые не следует нажимать, то вместо того, чтобы показывать сообщения об ошибке при нажатии на такие кнопки, сделайте их нечувствительными.

Если несколько кнопок расположены рядом друг с другом, они должны быть одинаковые по высоте. Это особенно важно для пар Отмена, OK.

В диалоге одна из кнопок может быть назначена в качестве кнопки по умолчанию, которая активируется при нажатии на клавишу Enter. В кнопке по умолчанию должна использоваться отличная от остальных кнопок граница. Если нажатие на кнопку по умолчанию может привести к потере данных, не назначайте для окна кнопку по умолчанию.

# Текстовые кнопки

В качестве текстовой метки используйте глагол в повелительном наклонении. Например, Сохранить, Упорядочить. Для интерфейса на английском языке придерживайтесь правила применения прописных букв.

Используйте многоточие, если для завершения действия требуется дополнительный ввод от пользователя.

Применяйте ускорители, чтобы пользователь мог активировать кнопку с клавиатуры.

Метка должна быть короткой, чтобы кнопка не занимала слишком много места. Важно помнить, что длина метки изменяется после локализации.

# Кнопки-переключатели

Кнопки-переключатели выглядят как обычные кнопки, но вместо инициирования действия они применяются для изменения состояния. Кнопка-переключатель имеет два положения, включено (кнопка утоплена) и выключено (кнопка не утоплена).

# Связанные кнопки

Кнопки со схожей функциональностью можно группировать. Связывание — это распространённая практика, используемая для наборов кнопок-переключателей.

# Предлагаемые и деструктивные действия

Если у кноки есть особенно важная утвердительная роль, ей можно назначить специальный стиль, который называется предполагаемым. Этот стиль выделяет кнопку и позволяет отличить её от остальных.

Кнопки, которые вызывают разрушительные последствия, например удаление объектов, можно оформить в специальном стиле, который называется деструктивным. Этот стиль подсвечивает кнопку и действует как предупреждение для пользователя.

В каждой области просмотра можно использовать только одну предложенную и только одну деструктивную кнопку.

# API reference

GtkButton

GtkToggleButton