Extra Block Types (EBT) - New Layout Builder experience❗

Extra Block Types (EBT) - styled, customizable block types: Slideshows, Tabs, Cards, Accordions and many others. Built-in settings for background, DOM Box, javascript plugins. Experience the future of layout building today.

Demo EBT modules Download EBT modules

❗Extra Paragraph Types (EPT) - New Paragraphs experience

Extra Paragraph Types (EPT) - analogical paragraph based set of modules.

Demo EPT modules Download EPT modules

Scroll

Работа с breakpoints в Drupal 8

05/05/2020, by maria

В Drupal 8 нет пользовательского интерфейса для редактирования breakpoints. Из-за того, что breakpoints определены в файлах конфигурации, также невозможно предоставить пользовательский интерфейс в contrib.

Breakpoints используются для разделения высоты или ширины областей просмотра (экранов, принтеров и других типов вывода мультимедиа) на этапы и обеспечивают случай, когда адаптивный дизайн настраивается для правильного отображения на разных устройствах. Модуль Breakpoints стандартизирует использование breakpoints и позволяет модулям и темам выставлять или использовать breakpoints друг друга. Модуль Breakpoints отслеживает breakpoints по высоте, ширине и разрешению.

Обратите внимание, что ввод ваших breakpoints CSS в файл breakpoints.yml необходим только тогда, когда Drupal необходимо взаимодействовать с breakpoints, как в случае с модулем Responsive Images.

Терминология

Breakpoints

Breakpoints состоит из метки и медиа-запроса. Медиа-запросы - это формальный способ кодирования breakpoints. Например, breakpoints ширины в 40em записывается как медиа-запрос '(min-width: 40em)'. Breakpoints на самом деле являются просто медиа-запросами с некоторыми дополнительными метаданными, такими как информация об имени и множителе.

Темы и модули могут определять Breakpoints, создавая файл конфигурации с именем myThemeOrModule.breakpoints.yml, где myThemeOrModule - это название вашей темы или модуля.

Каждая запись в этом файле определяет одну Breakpoints, состоящую из имени компьютера, по которому уникально идентифицируется запись точки останова, например, bartik.mobile и его дочерние элементы, определяющие свойства точки останова:

  • label - удобочитаемая метка для breakpoint.
  • mediaQuery - собственно текст медиа-запроса, например, 'all and (min-width: 851px)'.
  • weight - Позиционный вес (заказ) для breakpoint.
  • multipliers - Поддерживаемые множители разрешения пикселей.

Примечание. Порядок расположения Breakpoints по значению их веса чрезвычайно важен. Breakpoints с наименьшей минимальной шириной должны иметь наименьший вес, а Breakpoints с наименьшей минимальной шириной должны иметь большее значение веса. По умолчанию модули упорядочивают Breakpoints от наименьшего к наибольшему. Однако модули могут изменить этот порядок в случае необходимости: например, модуль Responsive Image заботится о переупорядочении Breakpoints от самых больших до самых маленьких в зависимости от значения веса.

Пример (bartik.breakpoints.yml):

bartik.mobile:
  label: mobile
  mediaQuery: ''
  weight: 0
  multipliers:
    - 1x
bartik.narrow:
  label: narrow
  mediaQuery: 'all and (min-width: 560px) and (max-width: 850px)'
  weight: 1
  multipliers:
    - 1x
bartik.wide:
  label: wide
  mediaQuery: 'all and (min-width: 851px)'
  weight: 2
  multipliers:
    - 1x

Breakpoint group

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

Breakpoint group - это комбинация точек останова. Каждая тема или модуль может определять ноль или более breakpoint group. Breakpoint создается с помощью специальных идентификаторов и ключей Breakpoint. Указывать группу необязательно, если вы не укажете группу, группа будет называться так же, как ваша тема или модуль.

Например, в yourtheme.breakpoints.yml вы можете создать следующие две breakpoint groups:

yourtheme.group1.mobile:
  label: narrow
  mediaQuery: ''
  weight: 0
  multipliers:
    - 1x
  group: yourtheme.group1
yourtheme.group1.narrow:
  label: narrow
  mediaQuery: '(min-width: 560px)'
  weight: 0
  multipliers:
    - 1x
    - 2x
  group: yourtheme.group1
yourtheme.group1.wide:
  label: wide
  mediaQuery: '(min-width: 851px)'
  weight: 1
  multipliers:
    - 1x
    - 2x
  group: yourtheme.group1

yourtheme.group2.mobile:
  label: narrow
  mediaQuery: ''
  weight: 0
  multipliers:
    - 1x
  group: yourtheme.group2
yourtheme.group2.narrower:
  label: narrow
  mediaQuery: '(min-width: 400px)'
  weight: 0
  multipliers:
    - 1x
    - 2x
  group: yourtheme.group2
yourtheme.group2.wider:
  label: wide
  mediaQuery: '(min-width: 1001px)'
  weight: 1
  multipliers:
    - 1x
    - 2x
  group: yourtheme.group2

Запуск идентификатора breakpoints с именем машины темы или модуля, точки, а затем имени машины для группы, а затем использование того же идентификатора theme/module.group в ключе группы - это то, что создает breakpoint groups. Все breakpoint  с теми же наборами ключей появятся в одной breakpoint groups.

В настоящее время невозможно создать пользовательскую метку для breakpoint groups за пределами имени машины, которое отображается в ключе группы. Это то, что будет отображаться в качестве метки, например, при выборе breakpoint groups в пользовательском интерфейсе модуля Responsive Image.

Расширенное использование

Вы также можете добавить breakpoint в breakpoint groups, определенные другими модулями или темами, но вы должны использовать полное имя.

Например, в yourmodule.breakpoints.yml вы можете сделать следующее:

yourmodule.yourtheme.group2.superwide
  label: superwide
  mediaQuery: '(min-width: 1501px)'
  weight: 1
  multipliers:
    - 1x
    - 2x
  group: yourtheme.group2

Это добавит breakpoint, определенную в вашем модуле, к breakpoint groups, определенной в вашей теме.

Множители

Множители представляют собой меру разрешения устройства области просмотра, определяемую как соотношение между физическим размером пикселя активного устройства и независимым от устройства размером пикселя. Например, дисплеи «retina» имеют множитель 2x.

Модуль Breakpoint определяет множители 1x, 1,5x и 2x. При определении breakpoint модули и темы могут определять, какие множители применяются к каждой breakpoint.

Пример:

'1.5x' // supports Android
   '2x' // supports Mac retina display

Загрузить новые файлы  breakpoint

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

Ресурсы

Drupal’s online documentation is © 2000-2020 by the individual contributors and can be used in accordance with the Creative Commons License, Attribution-ShareAlike 2.0. PHP code is distributed under the GNU General Public License.