«Зебра» в таблицах

9 января, 20:22

Есть такой приём — выделить «зеброй» строки в таблице. То есть, подкрасить чётные и нечётные разным цветом. Может показаться, что такой вид таблицы наведёт порядок и поможет глазу скользить по строкам. Не наведёт и не поможет. Подсвечивая строки цветом мы добавляем информацию, которая не несёт смысла. То есть, увеличиваем нагрузку на внимание читателя без пользы для него. Подсветка создаёт шум, и вместо того, чтобы помогать, наоборот мешает — сливает все строки в единую серую массу. И делает акцент, там, где его не предполагалось (на каждой второй строке — а почему?). Также, подсветка строк через одну размывает разницу между строками и разделяет их на две визуальные группы. В большинстве случаев это не нужно.

Возьмём таблицу:

Она слишком широкая для таких данных, у неё лишние полоски между строками, которые добавляют шума, но опустим эти моменты, ради разбора примера с «зеброй»

Человек, который знает о «зебре» сделает так:

Хоть подложки под строки очень светлые, они всё равно бьют в глаза, отвлекают от данных и не сообщают информации. Была бы это широкая таблица с множеством колонок, всё равно бы пришлось водить пальцем или курсором по строкам, чтобы не сбиться.

Но я не призываю отказываться от «зебры» — предлагаю делать её менее заметной и добиваться правильного эффекта с помощью минимальных дизайнерских средств. Эти средства — отступы. Мощнейшие инструменты.

Чтобы сделать «зебру» не обязательно подкладывать что-то под каждую вторую строку. Можно сделать «строки из строк» объединив их в группы, например, по четыре. Так наш мозг легко воспринимает стоящие рядом сроки и их элементы. Глаз не теряется при пробеге по таким группам, потому что всегда рядом есть ориентир в виде пробела между группами. Такую таблицу легко сделать в макете, а хороший программист уместит такое поведение в одну-две строки кода.

Такая «зебра» хоть и лучше, но всё равно она довольно механическая. То есть, таблица ничего не знает о своих данных и разбивается на группы по не принадлежащему ей признаку. Чтобы это исправить можно объединить строки в группы, например, по дате.

Этот пост про таблицу, но на самом деле он про другое. Есть плохие вещи, которые признаны «общепринятыми», просто потому что часто встречаются — таких вещей миллиард и они повсюду. С другой стороны есть категоричные мнения, которые говорят не пользоваться плохими вещами и приёмами. Но надо посмотреть на проблему по-другому. «Зебра» появилась не просто так — она пыталась упростить считывание таблиц. И так получилось, что расхожим стало плохое решение (так вообще часто случается). Мы отвергаем это решение просто потому, что оно нам кажется неправильным, но не уделяем внимания самой проблеме. Лучше было бы направить внимание на корень проблемы и попытаться найти новое хорошее решение.