Library Renderer
This module improves page speed by intelligently attaching CSS and JavaScript libraries only when they are needed. It offers flexible options for triggering library attachments based on HTML elements, Twig templates, theme hooks, or theme suggestions. This allows for more efficient loading of assets, leading to better performance and user experience.
The library renderer provides component and DOM level rendering of libraries.
Using component or DOM level rendering will increase page speed by only attaching libraries as and when required.
Features
The module provides four options for attaching a library:
- html_tags: Attaches a library when HTML output contains a matching DOM element.
- templates: Attaches a library when an exact match template.html.twig file is found.
- theme_hooks: Attaches a library when a theme hook is invoked.
- theme_suggestions: Provides fuzzy template matching against template suggestions.
These options provide fine-grained control over how and when libraries are rendered. When combined with component-level CSS and JS files, page load speed is enhanced and you will achieve better results in tools like Page Speed Insights whilst enhancing user experience and reducing bandwidth.
Post-Installation
Once the module is installed you can upgrade your libraries.yml file by using the following example as a template:
example_library:
css:
component:
theme/dist/example.css: { minified: true }
js:
theme/dist/example.js: { minified: true }
dependencies:
- core/jquery
library_renderer:
html_tags:
pre: { }
code: { attributes: { class: 'language-php' } }
templates:
- field.html.twig
- foo.html.twig
theme_hooks:
- input__submit
- block
theme_suggestions:
- field__paragraph__example
- field__fooNote: the module allows combinations of renderers but please pay special attention to formatting YML files as it is prone to error.