Rows of information or content items.
Алан Дэй (Allan Day)
aday@gnome.org

This work is licensed under a Creative Commons Attribution-Share Alike 4.0 International License.

# Списки

Список это один из основных элементов пользовательского интерфейса, служащий для представления информации или элементов управления. В GNOME 3 существуют два основных типа списков: стандартные списки и таблицы.

Боковые списки -- это отдельный шаблон проектирования, который также использует список.

# Когда использовать

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

В некоторых случаях для одних и тех же элементов можно использовать как списочное представление, так и сеточное. В этом случае списочное представление можно использовать для размещения информации о содержимом.

# Стандартные списки

Стандартные списки это наиболее распространённый тип списков. Старайтесь отдавать предпочтение стандартным спискам, а не таблицам.

In standard lists, each row is divided by separators, and changing the sort order is achieved by using a control outside the list itself.

## Стили

У стандартных списков существует два стиля: растянутый и встроенный. Растянутые списки полностью заполняют свои контейнеры, вокруг встроенных списков существуют отступы.

Растянутые списки выглядят проще и аккуратнее. Придерживайтесь этого стиля списков везде, где это возможно. Но есть случаи, когда растянутые списки использовать невозможно. Примеры, когда лучше использовать встроенные списки:

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

Когда в окне содержится несколько списков.

Когда необходимо выровнять список с другими управляющими элементами в окне.

## Изменяемые списки

Изменяемые списки позволяют пользователям добавлять и удалять элементы из списка. Изменяемыми могут быть как растянутые списки, так и встроенные.

Each row contains a remove button. If the number of items is short, the final list row should be used as an add button. Alternatively, if the list is long, the add button can be placed in a header bar or action bar.

# Таблицы

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

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

Порядок | Направление стрелок | Пример
--- | --- | ---
Естественный | Вниз | Алфавитный, по возрастанию чисел, по возрастанию дат, по признаку включённости
Обратный | Вверх | Обратный алфавитный порядок, по убыванию чисел, по убыванию дат, по признаку выключенности

# Поведение строк

В зависимости от типа списка поведение строк может изменяться, когда пользователь нажимает на них. По этому аспекту списки можно разделить на три вида:

Тип списка | Поведение строки
--- | ---
Навигация | Выделение строки открывает соответствующий элемент, для этого элемента открыв новое представление или диалоговое окно. Этот шаблон часто используется для списков элементов содержимого или для представления групп параметров.
Выбор | Элемент списка выбирается при нажатии на нём. Этот поход часто используется, когда требуется выбрать несколько конфигурационных параметров. Если требуется выбрать только один параметр, то это можно реализовать с помощью выпадающих списков. Выбранная строка должна выделяться ф
Edit | Выбор строки превращает строку в поле ввода, позволяющее изменять элемент строки.

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

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

Для разделения информации используйте различные выравнивания, цвет и насыщенность шрифта. Выделяйте главную информацию, для второстепенной информации используйте меньшую насыщенность шрифта.

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

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

Не используйте списки, когда количество элементов меньше пяти, только если количество элементов не может увеличиться в последствии. Для параметров вместо списков можно применить флаговые кнопки и кнопки-переключатели.

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

Если в списках используются значки, то применяйте символические значки, они проще для восприятия и не смещают на себя акцент.

Если список слишком длинный, добавьте возможность поиска, применив стандартный шаблон поиска.

# API reference

GtkListBox

GtkTreeView