Когда Gutenberg 9.0 приземлился ранее на этой неделе, он поставлялся с экспериментальным контролем заполнения для блока Group. Большинство пользователей не увидят его, если их тема не поддерживает функцию с помощью experimental-custom-spacingфлага.
Это не первый случай, который мы видели в блоке. Gutenberg 8.3 представил его для блока Cover. С тех пор в реализации ничего не изменилось.
Проблема с опцией настраиваемого интервала / заполнения заключается в том, что он создает встроенный стиль, который не настраивается в зависимости от дизайна темы. К счастью, эта функция все еще экспериментальная. Это означает, что у нас есть время пересмотреть, как это работает.
Если мы не избавимся от оставшейся иллюзии, что темы будут играть важную роль в будущем WordPress, а интерфейсный дизайн полностью укоренится в ядре, авторам тем потребуется определенный уровень контроля. И даже если темы повторяют путь динозавра, пользовательские номера отступов на уровне блоков будут создавать проблемы согласованности дизайна в будущем. Использование отступов в 100 пикселей может иметь смысл в текущем дизайне сайта, но 96 пикселей могут иметь смысл в будущем дизайне. Когда пользователь сегодня добавляет десятки или сотни блоков с настраиваемым отступом, это нанесет ущерб завтрашнему интервалу и ритму.
Кроме того, средний пользователь плохо разбирается в правилах дизайна. Наличие стандартизированной системы интервалов дало бы авторам темы контроль над выводом, давая конечным пользователям возможность настраивать внешний вид.
Я утверждал, что WordPress нужен какой-то каркас дизайна . Например, в Tailwind CSS есть определенные классы заполнения. То же самое с Bootstrap и почти всеми другими CSS-фреймворками. Сообщество веб-разработчиков пошло по этому пути. Это проторенный путь, и WordPress не вводит новшества, используя встроенные стили.
Если платформа WordPress собирается передать такую власть своим пользователям, она должна делать это таким образом, чтобы позволить дизайнерам заниматься своими делами, а не подталкивать пользователей к полупостоянному, встроенному суперу в своем контенте.
До Гутенберга я был бы категорически против идеи введения в WordPress каких-либо CSS или фреймворков. Однако платформа постоянно движется к тому, чтобы стать инструментом дизайна на основе пользовательского интерфейса, а не просто способом управления контентом. У пользователей будут варианты, связанные с дизайном, в глобальном масштабе вплоть до отдельных блоков. Пользователи должны иметь возможность настраивать заполнение блока в такой системе. Для этого им не нужно понимать CSS. Вместо этого в большинстве случаев пользователи должны иметь возможность настраивать отступы в зависимости от того, хотят ли они большего или меньшего интервала, а не конкретных значений CSS.
Я предлагаю полный набор стандартизированных классов заполнения. То же самое касается полей или других вариантов, связанных с дизайном, в будущем. Gutenberg / WordPress должен создать набор значений по умолчанию для этих классов, которые авторы темы могут переопределить в зависимости от своего дизайна.
Это не новая концепция. Дэйв Смит, разработчик Automattic, представил в 2019 году патч, который использовал именованные селекторы для интервалов в блоке Group. Он привел следующие аргументы в пользу выбора этого подхода вместо абсолютных значений:
Представьте, что вы дизайнер темы. Вы создаете свой CSS с интервалом, который идеально подходит для дизайна. Вы хотите обеспечить единообразие во всей вашей теме, даже если макет страницы создается конечным пользователем в редакторе блоков.
С подходом, который я использовал здесь, когда выбран размер, только классы добавляются в блок в DOM. Это дает создателю темы возможность указать в CSS нестандартные размеры, подходящие для его темы. Если они не захотят этого делать, то будут предоставлены разумные значения по умолчанию.
Используя пиксельный подход, мы привязываем пользователей блока к абсолютным значениям и просим их принять множество решений, которые они, вероятно, предпочли бы не принимать. Это также может привести к противоречивому визуальному восприятию.
Этот корабль уже шел и затонул с нестандартными цветами и размерами шрифта. Гутенберг имел возможность стандартизировать имена классов для этих опций, но оставил это на усмотрение авторов темы. В результате на рынке тем нет стандарта, а это означает, что выбор «большого» размера шрифта или «синего» цвета текста, предоставляемого темой, скорее всего, не будет перенесен в следующую тему пользователя. Теперь мы находимся на пороге гораздо большего количества вариантов, связанных с дизайном, поскольку WordPress движется к полному редактированию сайта. Пришло время рассмотреть некоторые стандарты имен классов, связанных с дизайном, и предоставить структуру, которую могут использовать все темы.
Гутенберг по-прежнему может предоставить возможность настраиваемого заполнения, как и для цветов и размеров шрифта. Пользователи, выбравшие этот путь, сделают явный выбор работать за пределами стандарта. Но давайте не будем идти по этому пути, позволяя пользователям устанавливать абсолютные значения интервала по умолчанию.