logo

Extra Block Types (EBT) - Nueva experiencia con Layout Builder❗

Extra Block Types (EBT): tipos de bloques con estilo y personalizables: Presentaciones de diapositivas, Pestañas, Tarjetas, Acordeones y muchos más. Configuraciones integradas para fondo, DOM Box y plugins de JavaScript. Experimenta hoy el futuro de la construcción de diseños.

Módulos de demostración EBT Descargar módulos EBT

❗Extra Paragraph Types (EPT) - Nueva experiencia con Paragraphs

Extra Paragraph Types (EPT): conjunto de módulos basado en párrafos de forma análoga.

Módulos de demostración EPT Descargar módulos EPT

Scroll

Trabajo con breakpoints en Drupal 8

19/06/2025, by Ivan

En Drupal 8 no existe una interfaz de usuario para editar breakpoints. Debido a que los breakpoints están definidos en archivos de configuración, tampoco es posible proveer una interfaz en contrib.

Los breakpoints se utilizan para dividir la altura o anchura de las áreas de visualización (pantallas, impresoras y otros tipos de salida multimedia) en etapas y proporcionar un caso donde el diseño responsivo se ajusta para mostrarse correctamente en diferentes dispositivos. El módulo Breakpoints estandariza el uso de breakpoints y permite que módulos y temas establezcan o utilicen los breakpoints de otros. El módulo Breakpoints rastrea breakpoints basados en altura, anchura y resolución.

Ten en cuenta que la introducción de tus breakpoints CSS en un archivo breakpoints.yml solo es necesaria cuando Drupal necesita interactuar con los breakpoints, como en el caso del módulo Responsive Images.

Términos

Breakpoints

Un breakpoint consiste en una etiqueta y una media query. Las media queries son la forma formal de codificar los breakpoints. Por ejemplo, un breakpoint de anchura de 40em se codifica como la media query '(min-width: 40em)'. Los breakpoints son en realidad simplemente media queries con algunos metadatos adicionales, como información de nombre y multiplicador.

Temas y módulos pueden definir breakpoints creando un archivo de configuración llamado myThemeOrModule.breakpoints.yml, donde myThemeOrModule es el nombre de tu tema o módulo.

Cada entrada en este archivo define un breakpoint, identificado de forma única por un nombre de máquina, por ejemplo bartik.mobile, y sus propiedades asociadas:

  • label – una etiqueta legible para el breakpoint.
  • mediaQuery – el texto de la media query, por ejemplo 'all and (min-width: 851px)'.
  • weight – peso posicional (orden) para el breakpoint.
  • multipliers – multiplicadores soportados para la resolución de píxeles.

Nota. El orden de los breakpoints basado en el valor de su peso es extremadamente importante. Los breakpoints con la menor anchura mínima deben tener el menor peso, y los breakpoints con la mayor anchura mínima deben tener un peso mayor. Por defecto, los módulos ordenan los breakpoints de menor a mayor. Sin embargo, módulos pueden cambiar este orden cuando sea necesario: por ejemplo, el módulo Responsive Image reordena los breakpoints de mayor a menor según el peso.

Ejemplo (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

Grupo de breakpoints

Los breakpoints pueden organizarse en grupos. Módulos y temas deben usar grupos para separar los breakpoints que deben usarse para diferentes propósitos, tales como breakpoints para diseños o breakpoints para determinar tamaños de imagen.

Un grupo de breakpoints es una combinación de breakpoints. Cada tema o módulo puede definir cero o más grupos de breakpoints. Un breakpoint se crea con un identificador especial y claves de breakpoint. No es obligatorio especificar un grupo; si no lo haces, el grupo tendrá el mismo nombre que tu tema o módulo.

Por ejemplo, en yourtheme.breakpoints.yml puedes crear estos dos grupos de breakpoints:

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

El prefijo del identificador de breakpoints con el nombre de máquina del tema o módulo, el nombre de la breakpoint y luego el nombre de máquina del grupo, y el uso del mismo identificador theme/module.group en la clave group, es lo que crea los grupos de breakpoints. Todos los breakpoints con las mismas claves aparecerán en un mismo grupo de breakpoints.

Actualmente no es posible crear una etiqueta personalizada para grupos de breakpoints fuera del nombre de máquina que aparece en la clave group. Esto será la etiqueta que se muestre, por ejemplo, al seleccionar grupos de breakpoints en la interfaz del módulo Responsive Image.

Uso avanzado

También puedes añadir un breakpoint a grupos de breakpoints definidos por otros módulos o temas, pero debes usar el nombre completo.

Por ejemplo, en yourmodule.breakpoints.yml puedes hacer lo siguiente:

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

Esto añadirá el breakpoint definido en tu módulo al grupo de breakpoints definido en tu tema.

Multiplicadores

Los multiplicadores son una medida de la resolución del dispositivo del área de visualización, definida como la relación entre el tamaño físico del píxel del dispositivo activo y el tamaño del píxel independiente del dispositivo. Por ejemplo, las pantallas “retina” tienen un multiplicador 2x.

El módulo Breakpoint define multiplicadores 1x, 1.5x y 2x. Al definir un breakpoint, módulos y temas pueden definir qué multiplicadores se aplican a cada breakpoint.

Ejemplo:

'1.5x' // soporta Android
'2x'   // soporta pantallas retina de Mac

Cargar nuevos archivos de breakpoint

Si añades un nuevo archivo de configuración de breakpoint durante las pruebas del tema, puedes reconstruir las cachés para que se detecten los nuevos breakpoints.

Recursos

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.