{"jsonapi":{"version":"1.0","meta":{"links":{"self":{"href":"http:\/\/jsonapi.org\/format\/1.0\/"}}}},"data":[{"type":"node--project_module","id":"3757709f-8c87-4abf-8006-d943834102f9","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/3757709f-8c87-4abf-8006-d943834102f9?resourceVersion=id%3A20033103"},"working-copy":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/3757709f-8c87-4abf-8006-d943834102f9?resourceVersion=rel%3Aworking-copy"}},"attributes":{"drupal_internal__nid":2376659,"status":true,"title":"Crop API","created":"2014-11-17T15:21:17+00:00","changed":"2026-04-07T05:20:02+00:00","moderation_state":null,"body":{"value":"Provides basic API for image cropping. This module won\u0027t do much by itself. Users should pick one of UI modules that utilize this API:\r\n\r\n\u003Cul\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022\/project\/image_widget_crop\u0022\u003EImage widget crop\u003C\/a\u003E\u003C\/li\u003E\r\n\u003Cli\u003E\u003Ca href=\u0022\/project\/focal_point\u0022\u003EFocal point\u003C\/a\u003E\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\r\n\u003Ch3\u003ETechnical details\u003C\/h3\u003E\r\n\r\nInitial discussion can be found on \u003Ca href=\u0022https:\/\/www.drupal.org\/node\/2368945\u0022\u003Emanual crop issue queue\u003C\/a\u003E.\r\n\r\nCrop API logo was created by \u003Ca href=\u0022http:\/\/drupal.org\/u\/woprrr\u0022\u003E@woprrr\u003C\/a\u003E.","format":"1","processed":"\u003Cp\u003EProvides basic API for image cropping. This module won\u0027t do much by itself. Users should pick one of UI modules that utilize this API:\u003C\/p\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Ca href=\u0022\/project\/image_widget_crop\u0022 rel=\u0022nofollow\u0022\u003EImage widget crop\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022\/project\/focal_point\u0022 rel=\u0022nofollow\u0022\u003EFocal point\u003C\/a\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Ch3\u003ETechnical details\u003C\/h3\u003E\n\u003Cp\u003EInitial discussion can be found on \u003Ca href=\u0022https:\/\/www.drupal.org\/node\/2368945\u0022 rel=\u0022nofollow\u0022\u003Emanual crop issue queue\u003C\/a\u003E.\u003C\/p\u003E\n\u003Cp\u003ECrop API logo was created by \u003Ca href=\u0022http:\/\/drupal.org\/u\/woprrr\u0022 rel=\u0022nofollow\u0022\u003E@woprrr\u003C\/a\u003E.\u003C\/p\u003E","summary":""},"field_active_installs":"{\u00228.x-1.x\u0022:3306,\u00228.x-2.x\u0022:140979}","field_active_installs_total":144285,"field_composer_namespace":"drupal\/crop","field_core_semver_maximum":12000000,"field_core_semver_minimum":8000000,"field_issue_summary_template":null,"field_logo_url":{"uri":"https:\/\/git.drupalcode.org\/project\/crop\/-\/avatar","title":null,"options":[]},"field_project_has_releases":true,"field_project_machine_name":"crop","field_security_advisory_coverage":"covered"},"relationships":{"uid":{"data":{"type":"user--user","id":"45aa7efc-40a7-4cd3-a412-723ef2d49285","meta":{"drupal_internal__target_id":3260690}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/3757709f-8c87-4abf-8006-d943834102f9\/uid?resourceVersion=id%3A20033103"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/3757709f-8c87-4abf-8006-d943834102f9\/relationships\/uid?resourceVersion=id%3A20033103"}}},"field_development_status":{"data":{"type":"taxonomy_term--development_status","id":"e767288c-9800-4fb4-aeb8-8c311533838a","meta":{"drupal_internal__target_id":27274}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/3757709f-8c87-4abf-8006-d943834102f9\/field_development_status?resourceVersion=id%3A20033103"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/3757709f-8c87-4abf-8006-d943834102f9\/relationships\/field_development_status?resourceVersion=id%3A20033103"}}},"field_maintenance_status":{"data":{"type":"taxonomy_term--maintenance_status","id":"09a378d2-fd35-41f3-bff0-10d9801741a4","meta":{"drupal_internal__target_id":27269}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/3757709f-8c87-4abf-8006-d943834102f9\/field_maintenance_status?resourceVersion=id%3A20033103"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/3757709f-8c87-4abf-8006-d943834102f9\/relationships\/field_maintenance_status?resourceVersion=id%3A20033103"}}},"field_module_categories":{"data":[{"type":"taxonomy_term--module_categories","id":"86237004-3801-40cf-96b5-fe7d60efccb5","meta":{"drupal_internal__target_id":187}},{"type":"taxonomy_term--module_categories","id":"086cebcf-200f-4c34-886e-f9921919b292","meta":{"drupal_internal__target_id":189}},{"type":"taxonomy_term--module_categories","id":"68428c33-1db7-438d-b1b3-e23004e0982b","meta":{"drupal_internal__target_id":192}}],"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/3757709f-8c87-4abf-8006-d943834102f9\/field_module_categories?resourceVersion=id%3A20033103"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/3757709f-8c87-4abf-8006-d943834102f9\/relationships\/field_module_categories?resourceVersion=id%3A20033103"}}},"field_project_images":{"data":[{"type":"file--file","id":"ad73639c-9a26-4617-8877-4e5e64583277","meta":{"alt":"Crop API logo.","title":null,"width":512,"height":512,"drupal_internal__target_id":17452}}],"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/3757709f-8c87-4abf-8006-d943834102f9\/field_project_images?resourceVersion=id%3A20033103"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/3757709f-8c87-4abf-8006-d943834102f9\/relationships\/field_project_images?resourceVersion=id%3A20033103"}}}}},{"type":"node--project_module","id":"cc8efc2c-081a-4652-b078-13d641cd0ae6","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/cc8efc2c-081a-4652-b078-13d641cd0ae6?resourceVersion=id%3A20025182"},"working-copy":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/cc8efc2c-081a-4652-b078-13d641cd0ae6?resourceVersion=rel%3Aworking-copy"}},"attributes":{"drupal_internal__nid":1943336,"status":true,"title":"Entity Browser","created":"2013-03-14T20:33:40+00:00","changed":"2026-04-07T05:20:02+00:00","moderation_state":null,"body":{"value":"Goal of this module is to provide a generic entity browser\/picker\/selector. It can be used in any context where one needs to select few entities and do something with them.\r\n\r\nPossible use cases:\r\n\u003Cul\u003E\r\n\u003Cli\u003EPowerful entity reference widget\u003C\/li\u003E\r\n\u003Cli\u003EEmbedding entities into wysiwyg.\u003C\/li\u003E\r\n\u003Cli\u003EYou name it!\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\r\n\u003Ch2\u003EDocumentation\u003C\/h2\u003E\r\n\r\nPlease feel free to contribute to the \u003Ca href=\u0022https:\/\/www.drupal.org\/docs\/8\/modules\/entity-browser\u0022\u003Edocumentation\u003C\/a\u003E.\r\n\r\n\u003Ch2\u003EExamples\u003C\/h2\u003E\r\n\r\nEntity browser comes with an example module that can be used as a starting point. \r\n\r\nThere is also \u003Ca href=\u0022http:\/\/drupal.org\/project\/file_browser\u0022\u003EFile entity browser\u003C\/a\u003E module that creates a nice widget that allows you to upload files and select from file library. It uses standard entity browser plugins and does some tweaks and theming on top of that. \r\n\r\n\u003Ch2\u003EIntegrations\u003C\/h2\u003E\r\n\r\nEntity browser integrates with \u003Ca href=\u0022http:\/\/drupal.org\/project\/inline_entity_form\u0022\u003EInline entity form\u003C\/a\u003E. See \u003Ca href=\u0022https:\/\/www.drupal.org\/docs\/8\/modules\/entity-browser\/inline-entity-form\u0022\u003Edocumentation\u003C\/a\u003E for more info.\r\n\r\n\u003Ch2\u003EList of available plugins\u003C\/h2\u003E\r\n\r\n\u003Ch3\u003EDisplays\u003C\/h3\u003E\r\n\u003Cul\u003E\r\n  \u003Cli\u003EStandalone (part of main module)\u003C\/li\u003E\r\n  \u003Cli\u003EiFrame (part of main module)\u003C\/li\u003E\r\n  \u003Cli\u003EModal (part of main module)\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\r\n\u003Ch3\u003EWidget selectors\u003C\/h3\u003E\r\n\u003Cul\u003E\r\n  \u003Cli\u003EDropdown (part of main module)\u003C\/li\u003E\r\n  \u003Cli\u003ETabs (part of main module)\u003C\/li\u003E\r\n  \u003Cli\u003ESingle widget (part of main module)\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\r\n\u003Ch3\u003EWidgets\u003C\/h3\u003E\r\n\u003Cul\u003E\r\n  \u003Cli\u003EFile upload (part of main module)\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022http:\/\/drupal.org\/project\/media_entity_image\u0022\u003EMedia entity image upload\u003C\/a\u003E\u003C\/li\u003E\r\n  \u003Cli\u003EViews (part of main module)\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022http:\/\/drupal.org\/project\/dropzonejs\u0022\u003EDropzoneJS file upload\u003C\/a\u003E\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022http:\/\/drupal.org\/project\/dropzonejs\u0022\u003EDropzoneJS media entity image upload\u003C\/a\u003E\u003C\/li\u003E\r\n  \u003Cli\u003EEntity form (submodule in main repo)\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/media_elvis\u0022\u003EWoodwing Elvis DAM\u003C\/a\u003E\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/bynder\u0022\u003EBynder\u003C\/a\u003E\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\r\n\u003Ch3\u003ESelection displays\u003C\/h3\u003E\r\n\u003Cul\u003E\r\n  \u003Cli\u003ENo display (part of main module)\u003C\/li\u003E\r\n  \u003Cli\u003EMulti-step display (part of main module)\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\r\n\u003Ch2\u003EModules that use Entity browser\u003C\/h2\u003E\r\n\r\n\u003Cul\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022http:\/\/drupal.org\/project\/file_browser\u0022\u003EFile entity browser\u003C\/a\u003E\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022http:\/\/drupal.org\/project\/content_browser\u0022\u003EContent browser\u003C\/a\u003E\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/media_entity_browser\u0022\u003EMedia entity browser\u003C\/a\u003E\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/media\u0022\u003EMedia\u003C\/a\u003E\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/entity_browser_enhanced\u0022\u003EEntity browser enhanced\u003C\/a\u003E\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\r\n\r\n\u003Ch2\u003EDevelopment\u003C\/h2\u003E\r\n\r\nCheck \u003Ca href=\u0022https:\/\/www.drupal.org\/node\/2576683\u0022\u003Eroadmap meta issue\u003C\/a\u003E in order to see what current focus of development is. \r\n\r\nOur fancy logo was created by \u003Ca href=\u0022https:\/\/www.drupal.org\/u\/artnetik\u0022\u003EDavid Li\u010den\u003C\/a\u003E.\r\n\r\n\u003Cdiv class=\u0022messages warning\u0022\u003E\u003Cstrong\u003EThe previous Drupal 7 module has been moved to \u003Ca href=\u0022https:\/\/drupal.org\/project\/entity_type_browser\u0022\u003EEntity Type Browser module\u003C\/a\u003E\u003C\/strong\u003E\u003C\/div\u003E","format":"1","processed":"\u003Cdiv class=\u0022toc-filter\u0022\u003E\u003Cp\u003EGoal of this module is to provide a generic entity browser\/picker\/selector. It can be used in any context where one needs to select few entities and do something with them.\u003C\/p\u003E\n\u003Cp\u003EPossible use cases:\u003C\/p\u003E\n\u003Cul\u003E\n\u003Cli\u003EPowerful entity reference widget\u003C\/li\u003E\n\u003Cli\u003EEmbedding entities into wysiwyg.\u003C\/li\u003E\n\u003Cli\u003EYou name it!\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022documentation\u0022\u003EDocumentation\u003C\/h2\u003E\n\u003Cp\u003EPlease feel free to contribute to the \u003Ca href=\u0022https:\/\/www.drupal.org\/docs\/8\/modules\/entity-browser\u0022 rel=\u0022nofollow\u0022\u003Edocumentation\u003C\/a\u003E.\u003C\/p\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022examples\u0022\u003EExamples\u003C\/h2\u003E\n\u003Cp\u003EEntity browser comes with an example module that can be used as a starting point. \u003C\/p\u003E\n\u003Cp\u003EThere is also \u003Ca href=\u0022http:\/\/drupal.org\/project\/file_browser\u0022 rel=\u0022nofollow\u0022\u003EFile entity browser\u003C\/a\u003E module that creates a nice widget that allows you to upload files and select from file library. It uses standard entity browser plugins and does some tweaks and theming on top of that. \u003C\/p\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022integrations\u0022\u003EIntegrations\u003C\/h2\u003E\n\u003Cp\u003EEntity browser integrates with \u003Ca href=\u0022http:\/\/drupal.org\/project\/inline_entity_form\u0022 rel=\u0022nofollow\u0022\u003EInline entity form\u003C\/a\u003E. See \u003Ca href=\u0022https:\/\/www.drupal.org\/docs\/8\/modules\/entity-browser\/inline-entity-form\u0022 rel=\u0022nofollow\u0022\u003Edocumentation\u003C\/a\u003E for more info.\u003C\/p\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022list-of-available-plugins\u0022\u003EList of available plugins\u003C\/h2\u003E\n\u003Ch3 id=\u0022displays\u0022\u003EDisplays\u003C\/h3\u003E\n\u003Cul\u003E\n\u003Cli\u003EStandalone (part of main module)\u003C\/li\u003E\n\u003Cli\u003EiFrame (part of main module)\u003C\/li\u003E\n\u003Cli\u003EModal (part of main module)\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Ch3 id=\u0022widget-selectors\u0022\u003EWidget selectors\u003C\/h3\u003E\n\u003Cul\u003E\n\u003Cli\u003EDropdown (part of main module)\u003C\/li\u003E\n\u003Cli\u003ETabs (part of main module)\u003C\/li\u003E\n\u003Cli\u003ESingle widget (part of main module)\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Ch3 id=\u0022widgets\u0022\u003EWidgets\u003C\/h3\u003E\n\u003Cul\u003E\n\u003Cli\u003EFile upload (part of main module)\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022http:\/\/drupal.org\/project\/media_entity_image\u0022 rel=\u0022nofollow\u0022\u003EMedia entity image upload\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003EViews (part of main module)\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022http:\/\/drupal.org\/project\/dropzonejs\u0022 rel=\u0022nofollow\u0022\u003EDropzoneJS file upload\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022http:\/\/drupal.org\/project\/dropzonejs\u0022 rel=\u0022nofollow\u0022\u003EDropzoneJS media entity image upload\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003EEntity form (submodule in main repo)\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/media_elvis\u0022 rel=\u0022nofollow\u0022\u003EWoodwing Elvis DAM\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/bynder\u0022 rel=\u0022nofollow\u0022\u003EBynder\u003C\/a\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Ch3 id=\u0022selection-displays\u0022\u003ESelection displays\u003C\/h3\u003E\n\u003Cul\u003E\n\u003Cli\u003ENo display (part of main module)\u003C\/li\u003E\n\u003Cli\u003EMulti-step display (part of main module)\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022modules-that-use-entity-browser\u0022\u003EModules that use Entity browser\u003C\/h2\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Ca href=\u0022http:\/\/drupal.org\/project\/file_browser\u0022 rel=\u0022nofollow\u0022\u003EFile entity browser\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022http:\/\/drupal.org\/project\/content_browser\u0022 rel=\u0022nofollow\u0022\u003EContent browser\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/media_entity_browser\u0022 rel=\u0022nofollow\u0022\u003EMedia entity browser\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/media\u0022 rel=\u0022nofollow\u0022\u003EMedia\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/entity_browser_enhanced\u0022 rel=\u0022nofollow\u0022\u003EEntity browser enhanced\u003C\/a\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022development\u0022\u003EDevelopment\u003C\/h2\u003E\n\u003Cp\u003ECheck \u003Ca href=\u0022https:\/\/www.drupal.org\/node\/2576683\u0022 rel=\u0022nofollow\u0022\u003Eroadmap meta issue\u003C\/a\u003E in order to see what current focus of development is. \u003C\/p\u003E\n\u003Cp\u003EOur fancy logo was created by \u003Ca href=\u0022https:\/\/www.drupal.org\/u\/artnetik\u0022 rel=\u0022nofollow\u0022\u003EDavid Li\u010den\u003C\/a\u003E.\u003C\/p\u003E\n\u003Cdiv\u003E\u003Cstrong\u003EThe previous Drupal 7 module has been moved to \u003Ca href=\u0022https:\/\/drupal.org\/project\/entity_type_browser\u0022 rel=\u0022nofollow\u0022\u003EEntity Type Browser module\u003C\/a\u003E\u003C\/strong\u003E\u003C\/div\u003E\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\u003C\/div\u003E","summary":"Provides a flexible and generic entity browsing and selecting tool (using views and other browsers). It can be used to select, reference or embed entities into the editor. Highly configurable and extensible."},"field_active_installs":"{\u00228.x-1.x\u0022:2676,\u00228.x-2.x\u0022:89557}","field_active_installs_total":92233,"field_composer_namespace":"drupal\/entity_browser","field_core_semver_maximum":12000000,"field_core_semver_minimum":8000000,"field_issue_summary_template":null,"field_logo_url":null,"field_project_has_releases":true,"field_project_machine_name":"entity_browser","field_security_advisory_coverage":"covered"},"relationships":{"uid":{"data":{"type":"user--user","id":"45aa7efc-40a7-4cd3-a412-723ef2d49285","meta":{"drupal_internal__target_id":3260690}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/cc8efc2c-081a-4652-b078-13d641cd0ae6\/uid?resourceVersion=id%3A20025182"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/cc8efc2c-081a-4652-b078-13d641cd0ae6\/relationships\/uid?resourceVersion=id%3A20025182"}}},"field_development_status":{"data":{"type":"taxonomy_term--development_status","id":"e767288c-9800-4fb4-aeb8-8c311533838a","meta":{"drupal_internal__target_id":27274}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/cc8efc2c-081a-4652-b078-13d641cd0ae6\/field_development_status?resourceVersion=id%3A20025182"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/cc8efc2c-081a-4652-b078-13d641cd0ae6\/relationships\/field_development_status?resourceVersion=id%3A20025182"}}},"field_maintenance_status":{"data":{"type":"taxonomy_term--maintenance_status","id":"089406ad-304d-4737-80d1-2f08527ae49e","meta":{"drupal_internal__target_id":27271}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/cc8efc2c-081a-4652-b078-13d641cd0ae6\/field_maintenance_status?resourceVersion=id%3A20025182"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/cc8efc2c-081a-4652-b078-13d641cd0ae6\/relationships\/field_maintenance_status?resourceVersion=id%3A20025182"}}},"field_module_categories":{"data":[{"type":"taxonomy_term--module_categories","id":"86237004-3801-40cf-96b5-fe7d60efccb5","meta":{"drupal_internal__target_id":187}},{"type":"taxonomy_term--module_categories","id":"68428c33-1db7-438d-b1b3-e23004e0982b","meta":{"drupal_internal__target_id":192}}],"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/cc8efc2c-081a-4652-b078-13d641cd0ae6\/field_module_categories?resourceVersion=id%3A20025182"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/cc8efc2c-081a-4652-b078-13d641cd0ae6\/relationships\/field_module_categories?resourceVersion=id%3A20025182"}}},"field_project_images":{"data":[{"type":"file--file","id":"9fd9e5f8-a0d4-4108-87bd-e708fa9b568a","meta":{"alt":"Entity browser logo by David Li\u010den","title":null,"width":550,"height":320,"drupal_internal__target_id":18098}}],"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/cc8efc2c-081a-4652-b078-13d641cd0ae6\/field_project_images?resourceVersion=id%3A20025182"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/cc8efc2c-081a-4652-b078-13d641cd0ae6\/relationships\/field_project_images?resourceVersion=id%3A20025182"}}}}},{"type":"node--project_module","id":"6d69e847-c6aa-495b-9215-f7e61a0fea27","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/6d69e847-c6aa-495b-9215-f7e61a0fea27?resourceVersion=id%3A20028885"},"working-copy":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/6d69e847-c6aa-495b-9215-f7e61a0fea27?resourceVersion=rel%3Aworking-copy"}},"attributes":{"drupal_internal__nid":2144115,"status":true,"title":"Focal Point","created":"2013-11-26T03:03:08+00:00","changed":"2026-04-07T05:20:02+00:00","moderation_state":null,"body":{"value":"\u003Ch2\u003EABOUT\u003C\/h2\u003E\r\nFocal Point allows you to specify the portion of an image that is most important. This information can be used when the image is cropped or cropped and scaled so that you don\u0027t, for example, end up with an image that cuts off the subject\u0027s head.\r\n\r\n\u003Ch2\u003EDEPENDENCIES\u003C\/h2\u003E\r\n\u003Cdl\u003E\r\n  \u003Cdt\u003EDrupal 8\u003C\/dt\u003E\r\n    \u003Cdd\u003E\u003Ca href=\u0022\/project\/crop\u0022\u003ECrop API\u003C\/a\u003E\u003C\/dd\u003E\r\n    \u003Cdd\u003EImage (from Core)\u003C\/dd\u003E\r\n  \u003Cdt\u003EDrupal 7\u003C\/dt\u003E\r\n    \u003Cdd\u003E\u003Ca href=\u0022\/project\/entity\u0022\u003EEntity\u003C\/a\u003E\u003C\/dd\u003E \r\n    \u003Cdd\u003EImage (from Core)\u003C\/dd\u003E\r\n\u003C\/dl\u003E\r\n\r\n\u003Ch2\u003EUSAGE\u003C\/h2\u003E\r\nThanks to the folks at \u003Ca href=\u0022https:\/\/evolvingweb.ca\u0022\u003EEvolving Web\u003C\/a\u003E there is a \u003Ca href=\u0022https:\/\/www.youtube.com\/watch?v=VomfkogYOjc\u0022\u003Egreat tutorial\u003C\/a\u003E that shows you exactly how to set up Focal Point. \r\n\r\n\u003Ch3\u003ESTEP 1: Set up your image fields\u003C\/h3\u003E\r\n\u003Ch4\u003EFor D8...\u003C\/h4\u003E\r\nInstall the module as usual. Once enabled you will have a shiny new image field widget called \u0022Image (Focal Point)\u0022. Using this widget will allow your content editors to set the focal point at the desired position on the image (see below). \r\n\r\n\u003Ch4\u003EFor D7...\u003C\/h4\u003E\r\nInstall the module as usual. Once enabled all standard image fields will allow users to set a focal point by default. The D7 version also supports media image fields if you are using the \u003Ca href=\u0022\/project\/media\u0022\u003EMedia module\u003C\/a\u003E ( \u003E= 7.x-2.x). \r\n\r\n\r\n\u003Ch3\u003ESTEP 2: Set the focal point for an image\u003C\/h3\u003E\r\n\r\nTo set the focal point on an image, go to the content edit form (ex. the node edit form) and upload an image. You will notice a crosshair in the middle of the newly uploaded image. Drag this crosshair to the most important part of your image. Alternatively you can click on the important part of your image if dragging seems too daunting.\r\n\r\nAs a bonus, you can double-click the crosshair to see the exact coordinates (in percentages) of the focal point.\r\n\r\n\u003Ch3\u003ESTEP 3: Setup an image style to crop your image\u003C\/h3\u003E\r\nThe focal point module comes with two image effects:\r\n\u003Cul\u003E\r\n  \u003Cli\u003Efocal point crop\u003C\/li\u003E\r\n  \u003Cli\u003Efocal point crop and scale\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\nBoth effects will ensure that the user-defined focal point is as close to the center of your cropped image as possible. It guarantees the focal point will be not be cropped out of your image and that the image size will be the specified size.","format":"1","processed":"\u003Cdiv class=\u0022toc-filter\u0022\u003E\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022about\u0022\u003EABOUT\u003C\/h2\u003E\n\u003Cp\u003EFocal Point allows you to specify the portion of an image that is most important. This information can be used when the image is cropped or cropped and scaled so that you don\u0027t, for example, end up with an image that cuts off the subject\u0027s head.\u003C\/p\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022dependencies\u0022\u003EDEPENDENCIES\u003C\/h2\u003E\n\u003Cdl\u003E\n\u003Cdt\u003EDrupal 8\u003C\/dt\u003E\n\u003Cdd\u003E\u003Ca href=\u0022\/project\/crop\u0022 rel=\u0022nofollow\u0022\u003ECrop API\u003C\/a\u003E\u003C\/dd\u003E\n\u003Cdd\u003EImage (from Core)\u003C\/dd\u003E\n\u003Cdt\u003EDrupal 7\u003C\/dt\u003E\n\u003Cdd\u003E\u003Ca href=\u0022\/project\/entity\u0022 rel=\u0022nofollow\u0022\u003EEntity\u003C\/a\u003E\u003C\/dd\u003E\n\u003Cdd\u003EImage (from Core)\u003C\/dd\u003E\n\u003C\/dl\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022usage\u0022\u003EUSAGE\u003C\/h2\u003E\n\u003Cp\u003EThanks to the folks at \u003Ca href=\u0022https:\/\/evolvingweb.ca\u0022 rel=\u0022nofollow\u0022\u003EEvolving Web\u003C\/a\u003E there is a \u003Ca href=\u0022https:\/\/www.youtube.com\/watch?v=VomfkogYOjc\u0022 rel=\u0022nofollow\u0022\u003Egreat tutorial\u003C\/a\u003E that shows you exactly how to set up Focal Point. \u003C\/p\u003E\n\u003Ch3 id=\u0022step-1-set-up-your-image-fields\u0022\u003ESTEP 1: Set up your image fields\u003C\/h3\u003E\n\u003Ch4 id=\u0022for-d8\u0022\u003EFor D8...\u003C\/h4\u003E\n\u003Cp\u003EInstall the module as usual. Once enabled you will have a shiny new image field widget called \u0022Image (Focal Point)\u0022. Using this widget will allow your content editors to set the focal point at the desired position on the image (see below). \u003C\/p\u003E\n\u003Ch4 id=\u0022for-d7\u0022\u003EFor D7...\u003C\/h4\u003E\n\u003Cp\u003EInstall the module as usual. Once enabled all standard image fields will allow users to set a focal point by default. The D7 version also supports media image fields if you are using the \u003Ca href=\u0022\/project\/media\u0022 rel=\u0022nofollow\u0022\u003EMedia module\u003C\/a\u003E ( \u0026gt;= 7.x-2.x). \u003C\/p\u003E\n\u003Ch3 id=\u0022step-2-set-the-focal-point-for-an-image\u0022\u003ESTEP 2: Set the focal point for an image\u003C\/h3\u003E\n\u003Cp\u003ETo set the focal point on an image, go to the content edit form (ex. the node edit form) and upload an image. You will notice a crosshair in the middle of the newly uploaded image. Drag this crosshair to the most important part of your image. Alternatively you can click on the important part of your image if dragging seems too daunting.\u003C\/p\u003E\n\u003Cp\u003EAs a bonus, you can double-click the crosshair to see the exact coordinates (in percentages) of the focal point.\u003C\/p\u003E\n\u003Ch3 id=\u0022step-3-setup-an-image-style-to-crop-your-image\u0022\u003ESTEP 3: Setup an image style to crop your image\u003C\/h3\u003E\n\u003Cp\u003EThe focal point module comes with two image effects:\u003C\/p\u003E\n\u003Cul\u003E\n\u003Cli\u003Efocal point crop\u003C\/li\u003E\n\u003Cli\u003Efocal point crop and scale\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cp\u003EBoth effects will ensure that the user-defined focal point is as close to the center of your cropped image as possible. It guarantees the focal point will be not be cropped out of your image and that the image size will be the specified size.\u003C\/p\u003E\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\u003C\/div\u003E","summary":""},"field_active_installs":"{\u00228.x-1.x\u0022:7064,\u00222.x\u0022:12,\u00222.0.x\u0022:4691,\u00222.1.x\u0022:78811}","field_active_installs_total":90578,"field_composer_namespace":"drupal\/focal_point","field_core_semver_maximum":12000000,"field_core_semver_minimum":8000000,"field_issue_summary_template":null,"field_logo_url":null,"field_project_has_releases":true,"field_project_machine_name":"focal_point","field_security_advisory_coverage":"covered"},"relationships":{"uid":{"data":{"type":"user--user","id":"4e809440-75b7-4ca9-b1d9-11fb32fe8280","meta":{"drupal_internal__target_id":77375}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/6d69e847-c6aa-495b-9215-f7e61a0fea27\/uid?resourceVersion=id%3A20028885"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/6d69e847-c6aa-495b-9215-f7e61a0fea27\/relationships\/uid?resourceVersion=id%3A20028885"}}},"field_development_status":{"data":{"type":"taxonomy_term--development_status","id":"e767288c-9800-4fb4-aeb8-8c311533838a","meta":{"drupal_internal__target_id":27274}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/6d69e847-c6aa-495b-9215-f7e61a0fea27\/field_development_status?resourceVersion=id%3A20028885"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/6d69e847-c6aa-495b-9215-f7e61a0fea27\/relationships\/field_development_status?resourceVersion=id%3A20028885"}}},"field_maintenance_status":{"data":{"type":"taxonomy_term--maintenance_status","id":"089406ad-304d-4737-80d1-2f08527ae49e","meta":{"drupal_internal__target_id":27271}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/6d69e847-c6aa-495b-9215-f7e61a0fea27\/field_maintenance_status?resourceVersion=id%3A20028885"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/6d69e847-c6aa-495b-9215-f7e61a0fea27\/relationships\/field_maintenance_status?resourceVersion=id%3A20028885"}}},"field_module_categories":{"data":[{"type":"taxonomy_term--module_categories","id":"86237004-3801-40cf-96b5-fe7d60efccb5","meta":{"drupal_internal__target_id":187}},{"type":"taxonomy_term--module_categories","id":"754c04cb-6da2-42ba-9032-d64307f68f45","meta":{"drupal_internal__target_id":188}},{"type":"taxonomy_term--module_categories","id":"68428c33-1db7-438d-b1b3-e23004e0982b","meta":{"drupal_internal__target_id":192}}],"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/6d69e847-c6aa-495b-9215-f7e61a0fea27\/field_module_categories?resourceVersion=id%3A20028885"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/6d69e847-c6aa-495b-9215-f7e61a0fea27\/relationships\/field_module_categories?resourceVersion=id%3A20028885"}}},"field_project_images":{"data":[{"type":"file--file","id":"dc3950dc-4883-408c-937e-fde99ac8ea0f","meta":{"alt":"","title":null,"width":260,"height":230,"drupal_internal__target_id":12568}}],"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/6d69e847-c6aa-495b-9215-f7e61a0fea27\/field_project_images?resourceVersion=id%3A20028885"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/6d69e847-c6aa-495b-9215-f7e61a0fea27\/relationships\/field_project_images?resourceVersion=id%3A20028885"}}}}},{"type":"node--project_module","id":"f4d8830b-ea04-4ebb-a8e6-3660e7f84fbb","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/f4d8830b-ea04-4ebb-a8e6-3660e7f84fbb?resourceVersion=id%3A20005815"},"working-copy":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/f4d8830b-ea04-4ebb-a8e6-3660e7f84fbb?resourceVersion=rel%3Aworking-copy"}},"attributes":{"drupal_internal__nid":79477,"status":true,"title":"IMCE","created":"2006-08-19T02:06:25+00:00","changed":"2026-04-07T05:20:02+00:00","moderation_state":null,"body":{"value":"IMCE is a file manager featuring personal directories and quotas.\r\n\r\n\u003Ch3\u003EFeatures\u003C\/h3\u003E\r\n\u003Cul\u003E\r\n  \u003Cli\u003EUpload\/delete files, resize images.\u003C\/li\u003E\r\n  \u003Cli\u003ESupport for file systems: private, s3, google\u003C\/li\u003E\r\n  \u003Cli\u003EConfiguration per role: file size\/type, personal directories, quota\u003C\/li\u003E\r\n  \u003Cli\u003EEditor integrations: CKEditor, \u003Ca href=\u0022\/project\/bueditor\u0022\u003EBUEditor\u003C\/a\u003E, plain textareas. See README.txt for instructions.\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\r\n\u003Ch3\u003ETheme\/Js issues\u003C\/h3\u003E\r\nEnable \u0022Use admin theme for IMCE paths\u0022 option under Common settings at admin\/config\/media\/imce if you\u0027re experiencing theme issues.\r\n\r\n\u003Ch3\u003ECredits\u003C\/h3\u003E\r\nIMCE logo by \u003Ca href=\u0022\/u\/grienauer\u0022\u003ENico Grienauer (Grienauer)\u003C\/a\u003E.","format":"1","processed":"\u003Cdiv class=\u0022toc-filter\u0022\u003E\u003Cp\u003EIMCE is a file manager featuring personal directories and quotas.\u003C\/p\u003E\n\u003Ch3 id=\u0022features\u0022\u003EFeatures\u003C\/h3\u003E\n\u003Cul\u003E\n\u003Cli\u003EUpload\/delete files, resize images.\u003C\/li\u003E\n\u003Cli\u003ESupport for file systems: private, s3, google\u003C\/li\u003E\n\u003Cli\u003EConfiguration per role: file size\/type, personal directories, quota\u003C\/li\u003E\n\u003Cli\u003EEditor integrations: CKEditor, \u003Ca href=\u0022\/project\/bueditor\u0022 rel=\u0022nofollow\u0022\u003EBUEditor\u003C\/a\u003E, plain textareas. See README.txt for instructions.\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Ch3 id=\u0022theme-js-issues\u0022\u003ETheme\/Js issues\u003C\/h3\u003E\n\u003Cp\u003EEnable \u0022Use admin theme for IMCE paths\u0022 option under Common settings at admin\/config\/media\/imce if you\u0027re experiencing theme issues.\u003C\/p\u003E\n\u003Ch3 id=\u0022credits\u0022\u003ECredits\u003C\/h3\u003E\n\u003Cp\u003EIMCE logo by \u003Ca href=\u0022\/u\/grienauer\u0022 rel=\u0022nofollow\u0022\u003ENico Grienauer (Grienauer)\u003C\/a\u003E.\u003C\/p\u003E\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\u003C\/div\u003E","summary":"A file manager featuring personal directories and quotas."},"field_active_installs":"{\u00228.x-1.x\u0022:5373,\u00228.x-2.x\u0022:15464,\u00223.0.x\u0022:10305,\u00223.x\u0022:1,\u00223.1.x\u0022:58724}","field_active_installs_total":89867,"field_composer_namespace":"drupal\/imce","field_core_semver_maximum":12000000,"field_core_semver_minimum":8000000,"field_issue_summary_template":null,"field_logo_url":{"uri":"https:\/\/git.drupalcode.org\/project\/imce\/-\/avatar","title":null,"options":[]},"field_project_has_releases":true,"field_project_machine_name":"imce","field_security_advisory_coverage":"covered"},"relationships":{"uid":{"data":{"type":"user--user","id":"66dde292-bfd9-479f-932e-25e8c466f2ee","meta":{"drupal_internal__target_id":9910}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/f4d8830b-ea04-4ebb-a8e6-3660e7f84fbb\/uid?resourceVersion=id%3A20005815"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/f4d8830b-ea04-4ebb-a8e6-3660e7f84fbb\/relationships\/uid?resourceVersion=id%3A20005815"}}},"field_development_status":{"data":{"type":"taxonomy_term--development_status","id":"e767288c-9800-4fb4-aeb8-8c311533838a","meta":{"drupal_internal__target_id":27274}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/f4d8830b-ea04-4ebb-a8e6-3660e7f84fbb\/field_development_status?resourceVersion=id%3A20005815"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/f4d8830b-ea04-4ebb-a8e6-3660e7f84fbb\/relationships\/field_development_status?resourceVersion=id%3A20005815"}}},"field_maintenance_status":{"data":{"type":"taxonomy_term--maintenance_status","id":"089406ad-304d-4737-80d1-2f08527ae49e","meta":{"drupal_internal__target_id":27271}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/f4d8830b-ea04-4ebb-a8e6-3660e7f84fbb\/field_maintenance_status?resourceVersion=id%3A20005815"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/f4d8830b-ea04-4ebb-a8e6-3660e7f84fbb\/relationships\/field_maintenance_status?resourceVersion=id%3A20005815"}}},"field_module_categories":{"data":[{"type":"taxonomy_term--module_categories","id":"86237004-3801-40cf-96b5-fe7d60efccb5","meta":{"drupal_internal__target_id":187}},{"type":"taxonomy_term--module_categories","id":"68428c33-1db7-438d-b1b3-e23004e0982b","meta":{"drupal_internal__target_id":192}}],"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/f4d8830b-ea04-4ebb-a8e6-3660e7f84fbb\/field_module_categories?resourceVersion=id%3A20005815"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/f4d8830b-ea04-4ebb-a8e6-3660e7f84fbb\/relationships\/field_module_categories?resourceVersion=id%3A20005815"}}},"field_project_images":{"data":[{"type":"file--file","id":"6d0a7960-ebd7-420a-b476-7ed1393e032e","meta":{"alt":"IMCE 3","title":null,"width":1019,"height":883,"drupal_internal__target_id":17218}}],"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/f4d8830b-ea04-4ebb-a8e6-3660e7f84fbb\/field_project_images?resourceVersion=id%3A20005815"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/f4d8830b-ea04-4ebb-a8e6-3660e7f84fbb\/relationships\/field_project_images?resourceVersion=id%3A20005815"}}}}},{"type":"node--project_module","id":"c7d3ac4c-1a68-4409-9079-6c28e73e90c1","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/c7d3ac4c-1a68-4409-9079-6c28e73e90c1?resourceVersion=id%3A20042291"},"working-copy":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/c7d3ac4c-1a68-4409-9079-6c28e73e90c1?resourceVersion=rel%3Aworking-copy"}},"attributes":{"drupal_internal__nid":2887125,"status":true,"title":"Svg Image","created":"2017-06-18T14:21:09+00:00","changed":"2026-04-07T05:20:02+00:00","moderation_state":null,"body":{"value":"This module changes default image field widget and formatter to allow use SVG image with the standard Image field.\r\n\r\n\u003Cdiv class=\u0022note-version\u0022\u003E\r\nUsing SVG Image module \u003Cstrong\u003Eyou will not have to use another field type\u003C\/strong\u003E to load SVG image. Load SVG files into the Image field, it is not needed to create file field or special \u0022SVG\u0022 type field.\r\n\u003C\/div\u003E\r\n\u003C!--break--\u003E\r\nDon\u0027t forget to add svg file extension into the list of the allowed image extensions in the field settings.\r\n\r\n\u003Cstrong\u003EFeatures\u003C\/strong\u003E  (beyond the main functionality):\r\n\u003Cul\u003E\r\n  \u003Cli\u003EAbility to select width and height of the image in formatter settings\u003C\/li\u003E\r\n  \u003Cli\u003EAbility to render svg image as \u0026lt;img\u0026gt; or \u0026lt;svg\u0026gt; tags.\u003C\/li\u003E\r\n  \u003Cli\u003EResponsive image support. Please activate \u003Cstrong\u003Esvg_image_responsive\u003C\/strong\u003E submodule to get such functionality\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\r\n\r\nIf you met any problems with this module - feel free to create an issue.\r\n\r\nOther modules:\r\n\u003Cul\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/svg_image_field\u0022 title=\u0022SVG image field\u0022\u003ESVG image field\u003C\/a\u003E - Provides another field type used for SVG image uploading.\u003C\/li\u003E\r\n\u003Cli\u003E \u003Ca href=\u0022https:\/\/www.drupal.org\/project\/svg_formatter\u0022 title=\u0022SVG Formatter\u0022\u003ESVG Formatter\u003C\/a\u003E - Module adds ability to display field with type \u0022file\u0022 as SVG image.\u003C\/li\u003E\r\n\u003C\/ul\u003E","format":"1","processed":"\u003Cp\u003EThis module changes default image field widget and formatter to allow use SVG image with the standard Image field.\u003C\/p\u003E\n\u003Cdiv class=\u0022note-version\u0022\u003E\nUsing SVG Image module \u003Cstrong\u003Eyou will not have to use another field type\u003C\/strong\u003E to load SVG image. Load SVG files into the Image field, it is not needed to create file field or special \u0022SVG\u0022 type field.\n\u003C\/div\u003E\n\u003Cp\u003EDon\u0027t forget to add svg file extension into the list of the allowed image extensions in the field settings.\u003C\/p\u003E\n\u003Cp\u003E\u003Cstrong\u003EFeatures\u003C\/strong\u003E  (beyond the main functionality):\u003C\/p\u003E\n\u003Cul\u003E\n\u003Cli\u003EAbility to select width and height of the image in formatter settings\u003C\/li\u003E\n\u003Cli\u003EAbility to render svg image as \u0026lt;img\u0026gt; or \u0026lt;svg\u0026gt; tags.\u003C\/li\u003E\n\u003Cli\u003EResponsive image support. Please activate \u003Cstrong\u003Esvg_image_responsive\u003C\/strong\u003E submodule to get such functionality\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cp\u003EIf you met any problems with this module - feel free to create an issue.\u003C\/p\u003E\n\u003Cp\u003EOther modules:\u003C\/p\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/svg_image_field\u0022 rel=\u0022nofollow\u0022\u003ESVG image field\u003C\/a\u003E - Provides another field type used for SVG image uploading.\u003C\/li\u003E\n\u003Cli\u003E \u003Ca href=\u0022https:\/\/www.drupal.org\/project\/svg_formatter\u0022 rel=\u0022nofollow\u0022\u003ESVG Formatter\u003C\/a\u003E - Module adds ability to display field with type \u0022file\u0022 as SVG image.\u003C\/li\u003E\n\u003C\/ul\u003E","summary":""},"field_active_installs":"{\u00228.x-1.x\u0022:9969,\u00223.x\u0022:10,\u00223.0.x\u0022:10772,\u00223.1.x\u0022:1183,\u00223.2.x\u0022:59648}","field_active_installs_total":81582,"field_composer_namespace":"drupal\/svg_image","field_core_semver_maximum":12000000,"field_core_semver_minimum":8000000,"field_issue_summary_template":null,"field_logo_url":{"uri":"https:\/\/git.drupalcode.org\/project\/svg_image\/-\/avatar","title":null,"options":[]},"field_project_has_releases":true,"field_project_machine_name":"svg_image","field_security_advisory_coverage":"covered"},"relationships":{"uid":{"data":{"type":"user--user","id":"0de8e322-97e1-40d5-b668-54d0b4ba1c35","meta":{"drupal_internal__target_id":2870933}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/c7d3ac4c-1a68-4409-9079-6c28e73e90c1\/uid?resourceVersion=id%3A20042291"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/c7d3ac4c-1a68-4409-9079-6c28e73e90c1\/relationships\/uid?resourceVersion=id%3A20042291"}}},"field_development_status":{"data":{"type":"taxonomy_term--development_status","id":"219c1cf2-dd7f-474b-9dd5-a26643fbc699","meta":{"drupal_internal__target_id":27276}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/c7d3ac4c-1a68-4409-9079-6c28e73e90c1\/field_development_status?resourceVersion=id%3A20042291"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/c7d3ac4c-1a68-4409-9079-6c28e73e90c1\/relationships\/field_development_status?resourceVersion=id%3A20042291"}}},"field_maintenance_status":{"data":{"type":"taxonomy_term--maintenance_status","id":"cee844e2-68b5-489d-bafa-6a0ade2b6dfd","meta":{"drupal_internal__target_id":27273}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/c7d3ac4c-1a68-4409-9079-6c28e73e90c1\/field_maintenance_status?resourceVersion=id%3A20042291"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/c7d3ac4c-1a68-4409-9079-6c28e73e90c1\/relationships\/field_maintenance_status?resourceVersion=id%3A20042291"}}},"field_module_categories":{"data":[{"type":"taxonomy_term--module_categories","id":"754c04cb-6da2-42ba-9032-d64307f68f45","meta":{"drupal_internal__target_id":188}},{"type":"taxonomy_term--module_categories","id":"86237004-3801-40cf-96b5-fe7d60efccb5","meta":{"drupal_internal__target_id":187}},{"type":"taxonomy_term--module_categories","id":"68428c33-1db7-438d-b1b3-e23004e0982b","meta":{"drupal_internal__target_id":192}}],"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/c7d3ac4c-1a68-4409-9079-6c28e73e90c1\/field_module_categories?resourceVersion=id%3A20042291"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/c7d3ac4c-1a68-4409-9079-6c28e73e90c1\/relationships\/field_module_categories?resourceVersion=id%3A20042291"}}},"field_project_images":{"data":[],"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/c7d3ac4c-1a68-4409-9079-6c28e73e90c1\/field_project_images?resourceVersion=id%3A20042291"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/c7d3ac4c-1a68-4409-9079-6c28e73e90c1\/relationships\/field_project_images?resourceVersion=id%3A20042291"}}}}},{"type":"node--project_module","id":"69a48101-118f-4a05-9fd0-0db36e797efa","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/69a48101-118f-4a05-9fd0-0db36e797efa?resourceVersion=id%3A20015730"},"working-copy":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/69a48101-118f-4a05-9fd0-0db36e797efa?resourceVersion=rel%3Aworking-copy"}},"attributes":{"drupal_internal__nid":1243930,"status":true,"title":"Video Embed Field","created":"2011-08-09T14:23:58+00:00","changed":"2026-04-07T05:20:02+00:00","moderation_state":null,"body":{"value":"\u003Cdiv class=\u0022note\u0022\u003E\r\n\u003Ch2\u003EImportant note:\u003C\/h2\u003E\r\nIf you are installing this module for integration with a media library, core already contains all the tools required for embedding remotely hosted videos. This module should no longer be required for most use cases and should be avoided if possible. For more information see the documentation for \u003Ca href=\u0022https:\/\/www.drupal.org\/docs\/8\/core\/modules\/media\/creating-and-configuring-media-types\u0022\u003Econfiguring remote video in core\u003C\/a\u003E or \u003Cstrong\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/docs\/8\/modules\/video-embed-field\/migrating-to-core-media#comment-13322557\u0022\u003Emigrating to core media from Video Embed Field\u003C\/a\u003E\u003C\/strong\u003E.\u003C\/div\u003E\r\n\r\nVideo Embed field creates a simple field type that allows you to embed videos from YouTube and Vimeo and show their thumbnail previews simply by entering the video\u0027s url.\r\n\r\n\u003Cp style=\u0022text-align:center;\u0022\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/files\/issues\/fields_3.jpg\u0022 target=\u0022_blank\u0022\u003E\u003Cimg src=\u0022https:\/\/www.drupal.org\/files\/issues\/fields_3.jpg\u0022 width=\u002237.5%\u0022 alt=\u0022Video Field\u0022\u003E\u003C\/a\u003E \u0026nbsp;\u003Ca href=\u0022https:\/\/www.drupal.org\/files\/issues\/wysiwyg_6.jpg\u0022 target=\u0022_blank\u0022\u003E\u003Cimg src=\u0022https:\/\/www.drupal.org\/files\/issues\/wysiwyg_6.jpg\u0022 width=\u002261%\u0022 alt=\u0022WYSIWYG embed\u0022\u003E\u003C\/a\u003E\u003C\/p\u003E\r\n\r\n\u003Cp\u003EAbove on the left is an example of using the video field type (displaying an embedded video as well as thumbnail previews of related videos) and on the right is an example of the wysiwyg integration, allowing you to embed videos into ckeditor.\u003C\/p\u003E\r\n\r\n\u003Ch3\u003EFeatures\u003C\/h3\u003E\r\n\r\n\u003Cul\u003E\r\n  \u003Cli\u003EResponsive out the box, optionally make your videos scale proportionally to their container.\u003C\/li\u003E\r\n  \u003Cli\u003ELarge contrib ecosystem of video providers supported.\u003C\/li\u003E\r\n  \u003Cli\u003EEasily pluggable, write simple plugins to support any video platform or provider.\u003C\/li\u003E\r\n  \u003Cli\u003ERobust URL matching to support an array of possible inputs.\u003C\/li\u003E\r\n  \u003Cli\u003EDisplay videos in a modal window, with Colorbox support.\u003C\/li\u003E\r\n  \u003Cli\u003EDisplay thumbnails with image style support.\u003C\/li\u003E\r\n  \u003Cli\u003ERole based autoplay override, allows configured roles to suppress video autoplay.\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/node\/2688349\u0022\u003EEasily overridable\u003C\/a\u003E embed markup.\r\n  \u003Cli\u003EA direct WYSIWYG integration, provided by the video_embed_wysiwyg sub-module.\u003C\/li\u003E\r\n  \u003Cli\u003EIntegration with the \u003Ca href=\u0022\/project\/media_entity\u0022\u003Emedia_entity\u003C\/a\u003E module for websites using the media suite of modules.\u003C\/li\u003E\r\n  \u003Cli\u003EMigrations to D8 from D7 as well as the D6 emfield module.\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\r\n\u003Ch3\u003EVideo Providers\u003C\/h3\u003E\r\n\r\nVimeo and YouTube are provided by default, but a number of contrib modules exist for other providers:\r\n\r\n\u003Ctable\u003E\r\n\u003Ctr\u003E\r\n\u003Ctd\u003E\r\n\u003Cul\u003E\r\n  \u003Cli\u003EYouTube and Vimeo (packaged with the module)\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/video_embed_facebook\u0022\u003EFacebook\u003C\/a\u003E\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/video_embed_vine\u0022\u003EVine\u003C\/a\u003E\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/video_embed_dailymotion\u0022\u003EDailymotion\u003C\/a\u003E\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/video_embed_instagram\u0022\u003EInstagram\u003C\/a\u003E\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/video_embed_ted\u0022\u003ETed\u003C\/a\u003E\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/video_embed_aol\u0022\u003EAOL\u003C\/a\u003E\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/video_embed_wistia\u0022\u003EWistia\u003C\/a\u003E\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/video_embed_google_drive\u0022\u003EGoogle Drive\u003C\/a\u003E\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/video_embed_html5\u0022\u003EHTML5\u003C\/a\u003E\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/video_embed_hudl\u0022\u003EHudl\u003C\/a\u003E\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/video_embed_peertube\u0022\u003EPeertube\u003C\/a\u003E\u003C\/li\u003E\r\n\r\n\u003C\/ul\u003E\r\n\u003C\/td\u003E\r\n\u003Ctd\u003E\r\n\u003Cul\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/video_embed_metacafe\u0022\u003EMetacafe\u003C\/a\u003E\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/video_embed_myspace\u0022\u003EMySpace\u003C\/a\u003E\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/video_embed_rutube\u0022\u003ERutube\u003C\/a\u003E\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/video_embed_youku\u0022\u003EYouku\u003C\/a\u003E\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/video_embed_dreambroker\u0022\u003EDreambroker\u003C\/a\u003E\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/video_embed_vidyard\u0022\u003EVidyard\u003C\/a\u003E\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/video_embed_brightcove\u0022\u003EBrightcove\u003C\/a\u003E\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/video_embed_hulu\u0022\u003EHulu\u003C\/a\u003E\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/video_embed_jwplayer\u0022\u003E JW Player\u003C\/a\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/video_embed_vzaar\u0022\u003E Vzaar\u003C\/a\u003E\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/video_embed_twentythree\u0022\u003ETwentyThree \u003C\/a\u003E\u003C\/li\u003E\r\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/video_embed_kaltura\u0022\u003EKaltura\u003C\/a\u003E\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\u003C\/td\u003E\r\n\u003C\/tr\u003E\r\n\u003C\/table\u003E\r\n\r\n\u003Ch3\u003EConfiguration\u003C\/h3\u003E\r\n\r\nOnce a video field has been created, simply configure how it should be displayed using the \u0027Video\u0027 or \u0027Thumbnail\u0027 field formatter. Each of these field formatters contain standard configuration options which allow you to customise how the content is displayed. In the Drupal 7 version \u0027styles\u0027 can be created which control the display for different video providers, however in the Drupal 8 version, the configuration for all the field formatters are standardized across all video providers.\r\n\r\n\u003Ch4\u003E\u003Ca href=\u0022\/project\/media_entity\u0022\u003EMedia Entity\u003C\/a\u003E Integration\u003C\/h4\u003E\r\n\r\nFor websites using the media suite of modules for Drupal 8, video_embed_field comes with a media_entity integration. This allows you to create a media bundle specifically for storing embeddable videos and use these alongside your other media bundles.\r\n\r\n\u003Ch4\u003EVideo WYSIWYG Integration\u003C\/h4\u003E\r\n\r\nIf you are not using the media suite of modules, there is a direct integration with the WYSIWYG. To use, make sure you have the \u0022video_embed_wysiwyg\u0022 module enabled. Visit \u0022Configuration\u0022 \u003E \u0022Text formats and editors\u0022 \u003E \u0022Configure\u0022 your chosen editor. Then drag the video icon onto the ckeditor toolbar and make sure the \u0022Video Embed WYSIWYG\u0022 input filter is enabled.\r\n\r\n\u003Ch3\u003EFor Developers\u003C\/h3\u003E\r\n\r\nFor the Drupal 7 version, see \u003Ca href=\u0022http:\/\/cgit.drupalcode.org\/video_embed_field\/tree\/video_embed_field.api.php?id=7.x-2.0-beta8\u0022\u003Evideo_embed_field.api.php\u003C\/a\u003E for information on how to create a video provider. For Drupal 8, you can implement a \u0027VideoEmbedProvider\u0027 plugin to allow other video platforms to be supported. For examples of this, see the \u003Ca href=\u0022http:\/\/cgit.drupalcode.org\/video_embed_field\/tree\/src\/Plugin\/video_embed_field\/Provider?h=8.x-1.x\u0022\u003Eplugins directory\u003C\/a\u003E. More information for developers using the Drupal 8 version can be found \u003Ca href=\u0022https:\/\/www.drupal.org\/node\/2688349\u0022\u003Ehere\u003C\/a\u003E.\r\n\r\n\u003Ch3\u003ESupport\u003C\/h3\u003E\r\nFor support updating to the latest version on the Drupal 7 version, see the \u003Ca href=\u0022https:\/\/www.drupal.org\/node\/2322455#update-notes\u0022\u003Edocumentation page\u003C\/a\u003E. All other issues can be reported in the issue queue.\r\n\r\n\u003Ch3\u003EVersion 3.x\u003C\/h3\u003E\r\n\r\n\u003Ch3\u003E\u26a0\ufe0f Breaking changes from 8.x-2.x\u003C\/h3\u003E\r\n\u003Cul\u003E\r\n  \u003Cli\u003EA new \u003Ccode\u003Efile_system\u003C\/code\u003E parameter has been added to the \u003Ccode\u003EProviderPluginBase\u003C\/code\u003E constructor. Please update your custom providers accordingly if you need the thumbnail download feature.\u003C\/li\u003E\r\n  \u003Cli\u003ETwo new parameters have been added to the \u003Ccode\u003ErenderEmbedCode\u003C\/code\u003E provider method to improve accessibility (\u003Ccode\u003Eiframe\u003C\/code\u003E).\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\r\n\u003Ch2\u003EMedia Entity Support: Which version should I use?\u003C\/h2\u003E\r\n\r\nIf you are using the 1.x branch of \u003Ca href=\u0022https:\/\/www.drupal.org\/project\/media_entity\u0022\u003EMedia Entity\u003C\/a\u003E, you should continue using the 1.x branch of this module.\r\n\r\nIf you are building a new site and want to use the new Media in core 8.4.0 or higher, you should use the 2.x branch of this module.\r\n\r\nIf you have an existing site with Media Entity 1.x and you want to upgrade to Media in core check the upgrade instructions on the \u003Ca href=\u0022https:\/\/www.drupal.org\/project\/media_entity\u0022\u003EMedia Entity\u003C\/a\u003E module page for more information on that process.","format":"1","processed":"\u003Cdiv class=\u0022toc-filter\u0022\u003E\u003Cdiv class=\u0022note\u0022\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022important-note\u0022\u003EImportant note:\u003C\/h2\u003E\n\u003Cp\u003EIf you are installing this module for integration with a media library, core already contains all the tools required for embedding remotely hosted videos. This module should no longer be required for most use cases and should be avoided if possible. For more information see the documentation for \u003Ca href=\u0022https:\/\/www.drupal.org\/docs\/8\/core\/modules\/media\/creating-and-configuring-media-types\u0022 rel=\u0022nofollow\u0022\u003Econfiguring remote video in core\u003C\/a\u003E or \u003Cstrong\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/docs\/8\/modules\/video-embed-field\/migrating-to-core-media#comment-13322557\u0022 rel=\u0022nofollow\u0022\u003Emigrating to core media from Video Embed Field\u003C\/a\u003E\u003C\/strong\u003E.\u003C\/p\u003E\u003C\/div\u003E\n\u003Cp\u003EVideo Embed field creates a simple field type that allows you to embed videos from YouTube and Vimeo and show their thumbnail previews simply by entering the video\u0027s url.\u003C\/p\u003E\n\u003Cp\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/files\/issues\/fields_3.jpg\u0022 rel=\u0022nofollow\u0022\u003E\u003Cimg src=\u0022\/core\/misc\/icons\/e32700\/error.svg\u0022 width=\u002216\u0022 alt=\u0022Image removed.\u0022 title=\u0022This image has been removed. For security reasons, only images from the local domain are allowed.\u0022 height=\u002216\u0022 class=\u0022filter-image-invalid\u0022\u003E\u003C\/a\u003E \u0026nbsp;\u003Ca href=\u0022https:\/\/www.drupal.org\/files\/issues\/wysiwyg_6.jpg\u0022 rel=\u0022nofollow\u0022\u003E\u003Cimg src=\u0022\/core\/misc\/icons\/e32700\/error.svg\u0022 width=\u002216\u0022 alt=\u0022Image removed.\u0022 title=\u0022This image has been removed. For security reasons, only images from the local domain are allowed.\u0022 height=\u002216\u0022 class=\u0022filter-image-invalid\u0022\u003E\u003C\/a\u003E\u003C\/p\u003E\n\u003Cp\u003EAbove on the left is an example of using the video field type (displaying an embedded video as well as thumbnail previews of related videos) and on the right is an example of the wysiwyg integration, allowing you to embed videos into ckeditor.\u003C\/p\u003E\n\u003Ch3 id=\u0022features\u0022\u003EFeatures\u003C\/h3\u003E\n\u003Cul\u003E\n\u003Cli\u003EResponsive out the box, optionally make your videos scale proportionally to their container.\u003C\/li\u003E\n\u003Cli\u003ELarge contrib ecosystem of video providers supported.\u003C\/li\u003E\n\u003Cli\u003EEasily pluggable, write simple plugins to support any video platform or provider.\u003C\/li\u003E\n\u003Cli\u003ERobust URL matching to support an array of possible inputs.\u003C\/li\u003E\n\u003Cli\u003EDisplay videos in a modal window, with Colorbox support.\u003C\/li\u003E\n\u003Cli\u003EDisplay thumbnails with image style support.\u003C\/li\u003E\n\u003Cli\u003ERole based autoplay override, allows configured roles to suppress video autoplay.\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/node\/2688349\u0022 rel=\u0022nofollow\u0022\u003EEasily overridable\u003C\/a\u003E embed markup.\n\u003C\/li\u003E\u003Cli\u003EA direct WYSIWYG integration, provided by the video_embed_wysiwyg sub-module.\u003C\/li\u003E\n\u003Cli\u003EIntegration with the \u003Ca href=\u0022\/project\/media_entity\u0022 rel=\u0022nofollow\u0022\u003Emedia_entity\u003C\/a\u003E module for websites using the media suite of modules.\u003C\/li\u003E\n\u003Cli\u003EMigrations to D8 from D7 as well as the D6 emfield module.\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Ch3 id=\u0022video-providers\u0022\u003EVideo Providers\u003C\/h3\u003E\n\u003Cp\u003EVimeo and YouTube are provided by default, but a number of contrib modules exist for other providers:\u003C\/p\u003E\n\u003Ctable\u003E\n\u003Ctr\u003E\n\u003Ctd\u003E\n\u003Cul\u003E\n\u003Cli\u003EYouTube and Vimeo (packaged with the module)\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/video_embed_facebook\u0022 rel=\u0022nofollow\u0022\u003EFacebook\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/video_embed_vine\u0022 rel=\u0022nofollow\u0022\u003EVine\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/video_embed_dailymotion\u0022 rel=\u0022nofollow\u0022\u003EDailymotion\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/video_embed_instagram\u0022 rel=\u0022nofollow\u0022\u003EInstagram\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/video_embed_ted\u0022 rel=\u0022nofollow\u0022\u003ETed\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/video_embed_aol\u0022 rel=\u0022nofollow\u0022\u003EAOL\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/video_embed_wistia\u0022 rel=\u0022nofollow\u0022\u003EWistia\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/video_embed_google_drive\u0022 rel=\u0022nofollow\u0022\u003EGoogle Drive\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/video_embed_html5\u0022 rel=\u0022nofollow\u0022\u003EHTML5\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/video_embed_hudl\u0022 rel=\u0022nofollow\u0022\u003EHudl\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/video_embed_peertube\u0022 rel=\u0022nofollow\u0022\u003EPeertube\u003C\/a\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/td\u003E\n\u003Ctd\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/video_embed_metacafe\u0022 rel=\u0022nofollow\u0022\u003EMetacafe\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/video_embed_myspace\u0022 rel=\u0022nofollow\u0022\u003EMySpace\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/video_embed_rutube\u0022 rel=\u0022nofollow\u0022\u003ERutube\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/video_embed_youku\u0022 rel=\u0022nofollow\u0022\u003EYouku\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/video_embed_dreambroker\u0022 rel=\u0022nofollow\u0022\u003EDreambroker\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/video_embed_vidyard\u0022 rel=\u0022nofollow\u0022\u003EVidyard\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/video_embed_brightcove\u0022 rel=\u0022nofollow\u0022\u003EBrightcove\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/video_embed_hulu\u0022 rel=\u0022nofollow\u0022\u003EHulu\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/video_embed_jwplayer\u0022 rel=\u0022nofollow\u0022\u003E JW Player\u003C\/a\u003E\n\u003C\/li\u003E\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/video_embed_vzaar\u0022 rel=\u0022nofollow\u0022\u003E Vzaar\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/video_embed_twentythree\u0022 rel=\u0022nofollow\u0022\u003ETwentyThree \u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/video_embed_kaltura\u0022 rel=\u0022nofollow\u0022\u003EKaltura\u003C\/a\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/td\u003E\n\u003C\/tr\u003E\n\u003C\/table\u003E\n\u003Ch3 id=\u0022configuration\u0022\u003EConfiguration\u003C\/h3\u003E\n\u003Cp\u003EOnce a video field has been created, simply configure how it should be displayed using the \u0027Video\u0027 or \u0027Thumbnail\u0027 field formatter. Each of these field formatters contain standard configuration options which allow you to customise how the content is displayed. In the Drupal 7 version \u0027styles\u0027 can be created which control the display for different video providers, however in the Drupal 8 version, the configuration for all the field formatters are standardized across all video providers.\u003C\/p\u003E\n\u003Ch4 id=\u0022media-entity-integration\u0022\u003EMedia Entity Integration\u003C\/h4\u003E\n\u003Cp\u003EFor websites using the media suite of modules for Drupal 8, video_embed_field comes with a media_entity integration. This allows you to create a media bundle specifically for storing embeddable videos and use these alongside your other media bundles.\u003C\/p\u003E\n\u003Ch4 id=\u0022video-wysiwyg-integration\u0022\u003EVideo WYSIWYG Integration\u003C\/h4\u003E\n\u003Cp\u003EIf you are not using the media suite of modules, there is a direct integration with the WYSIWYG. To use, make sure you have the \u0022video_embed_wysiwyg\u0022 module enabled. Visit \u0022Configuration\u0022 \u0026gt; \u0022Text formats and editors\u0022 \u0026gt; \u0022Configure\u0022 your chosen editor. Then drag the video icon onto the ckeditor toolbar and make sure the \u0022Video Embed WYSIWYG\u0022 input filter is enabled.\u003C\/p\u003E\n\u003Ch3 id=\u0022for-developers\u0022\u003EFor Developers\u003C\/h3\u003E\n\u003Cp\u003EFor the Drupal 7 version, see \u003Ca href=\u0022http:\/\/cgit.drupalcode.org\/video_embed_field\/tree\/video_embed_field.api.php?id=7.x-2.0-beta8\u0022 rel=\u0022nofollow\u0022\u003Evideo_embed_field.api.php\u003C\/a\u003E for information on how to create a video provider. For Drupal 8, you can implement a \u0027VideoEmbedProvider\u0027 plugin to allow other video platforms to be supported. For examples of this, see the \u003Ca href=\u0022http:\/\/cgit.drupalcode.org\/video_embed_field\/tree\/src\/Plugin\/video_embed_field\/Provider?h=8.x-1.x\u0022 rel=\u0022nofollow\u0022\u003Eplugins directory\u003C\/a\u003E. More information for developers using the Drupal 8 version can be found \u003Ca href=\u0022https:\/\/www.drupal.org\/node\/2688349\u0022 rel=\u0022nofollow\u0022\u003Ehere\u003C\/a\u003E.\u003C\/p\u003E\n\u003Ch3 id=\u0022support\u0022\u003ESupport\u003C\/h3\u003E\n\u003Cp\u003EFor support updating to the latest version on the Drupal 7 version, see the \u003Ca href=\u0022https:\/\/www.drupal.org\/node\/2322455#update-notes\u0022 rel=\u0022nofollow\u0022\u003Edocumentation page\u003C\/a\u003E. All other issues can be reported in the issue queue.\u003C\/p\u003E\n\u003Ch3 id=\u0022version-3-x\u0022\u003EVersion 3.x\u003C\/h3\u003E\n\u003Ch3 id=\u0022breaking-changes-from-8-x-2-x\u0022\u003E\u26a0\ufe0f Breaking changes from 8.x-2.x\u003C\/h3\u003E\n\u003Cul\u003E\n\u003Cli\u003EA new \u003Ccode\u003Efile_system\u003C\/code\u003E parameter has been added to the \u003Ccode\u003EProviderPluginBase\u003C\/code\u003E constructor. Please update your custom providers accordingly if you need the thumbnail download feature.\u003C\/li\u003E\n\u003Cli\u003ETwo new parameters have been added to the \u003Ccode\u003ErenderEmbedCode\u003C\/code\u003E provider method to improve accessibility (\u003Ccode\u003Eiframe\u003C\/code\u003E).\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022media-entity-support-which-version-should-i-use\u0022\u003EMedia Entity Support: Which version should I use?\u003C\/h2\u003E\n\u003Cp\u003EIf you are using the 1.x branch of \u003Ca href=\u0022https:\/\/www.drupal.org\/project\/media_entity\u0022 rel=\u0022nofollow\u0022\u003EMedia Entity\u003C\/a\u003E, you should continue using the 1.x branch of this module.\u003C\/p\u003E\n\u003Cp\u003EIf you are building a new site and want to use the new Media in core 8.4.0 or higher, you should use the 2.x branch of this module.\u003C\/p\u003E\n\u003Cp\u003EIf you have an existing site with Media Entity 1.x and you want to upgrade to Media in core check the upgrade instructions on the \u003Ca href=\u0022https:\/\/www.drupal.org\/project\/media_entity\u0022 rel=\u0022nofollow\u0022\u003EMedia Entity\u003C\/a\u003E module page for more information on that process.\u003C\/p\u003E\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\u003C\/div\u003E","summary":"Video Embed field creates a simple field type that allows you to embed videos from YouTube and Vimeo and show their thumbnail previews simply by entering the video\u0027s url."},"field_active_installs":"{\u00228.x-1.x\u0022:3357,\u00228.x-2.x\u0022:54062,\u00223.0.x\u0022:19486,\u00223.x\u0022:73,\u00223.1.x\u0022:93}","field_active_installs_total":77071,"field_composer_namespace":"drupal\/video_embed_field","field_core_semver_maximum":12000000,"field_core_semver_minimum":8000000,"field_issue_summary_template":null,"field_logo_url":null,"field_project_has_releases":true,"field_project_machine_name":"video_embed_field","field_security_advisory_coverage":"covered"},"relationships":{"uid":{"data":{"type":"user--user","id":"f30523fc-5428-4d45-b59b-d25fb80ac58e","meta":{"drupal_internal__target_id":855980}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/69a48101-118f-4a05-9fd0-0db36e797efa\/uid?resourceVersion=id%3A20015730"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/69a48101-118f-4a05-9fd0-0db36e797efa\/relationships\/uid?resourceVersion=id%3A20015730"}}},"field_development_status":{"data":{"type":"taxonomy_term--development_status","id":"219c1cf2-dd7f-474b-9dd5-a26643fbc699","meta":{"drupal_internal__target_id":27276}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/69a48101-118f-4a05-9fd0-0db36e797efa\/field_development_status?resourceVersion=id%3A20015730"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/69a48101-118f-4a05-9fd0-0db36e797efa\/relationships\/field_development_status?resourceVersion=id%3A20015730"}}},"field_maintenance_status":{"data":{"type":"taxonomy_term--maintenance_status","id":"cee844e2-68b5-489d-bafa-6a0ade2b6dfd","meta":{"drupal_internal__target_id":27273}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/69a48101-118f-4a05-9fd0-0db36e797efa\/field_maintenance_status?resourceVersion=id%3A20015730"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/69a48101-118f-4a05-9fd0-0db36e797efa\/relationships\/field_maintenance_status?resourceVersion=id%3A20015730"}}},"field_module_categories":{"data":[{"type":"taxonomy_term--module_categories","id":"3322058a-a158-4806-ac5b-9bcabc95edac","meta":{"drupal_internal__target_id":185}},{"type":"taxonomy_term--module_categories","id":"68428c33-1db7-438d-b1b3-e23004e0982b","meta":{"drupal_internal__target_id":192}},{"type":"taxonomy_term--module_categories","id":"dcb48e9f-6afa-4842-8ef6-44b90b083fcc","meta":{"drupal_internal__target_id":200}}],"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/69a48101-118f-4a05-9fd0-0db36e797efa\/field_module_categories?resourceVersion=id%3A20015730"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/69a48101-118f-4a05-9fd0-0db36e797efa\/relationships\/field_module_categories?resourceVersion=id%3A20015730"}}},"field_project_images":{"data":[],"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/69a48101-118f-4a05-9fd0-0db36e797efa\/field_project_images?resourceVersion=id%3A20015730"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/69a48101-118f-4a05-9fd0-0db36e797efa\/relationships\/field_project_images?resourceVersion=id%3A20015730"}}}}},{"type":"node--project_module","id":"a9d18ca5-50a5-4758-9538-77635705996d","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/a9d18ca5-50a5-4758-9538-77635705996d?resourceVersion=id%3A20006461"},"working-copy":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/a9d18ca5-50a5-4758-9538-77635705996d?resourceVersion=rel%3Aworking-copy"}},"attributes":{"drupal_internal__nid":152075,"status":true,"title":"Embed","created":"2007-06-15T15:58:46+00:00","changed":"2026-04-07T05:20:02+00:00","moderation_state":null,"body":{"value":"A framework module to help smooth the developer experience of offering embeddable things using the Drupal 8 WYSIWYG editor.\r\n\r\n\u003Ch3\u003ERelated Modules\u003C\/h3\u003E\r\n\u003Cul\u003E\r\n \u003Cli\u003E\u003Ca href=\u0022\/project\/entity_embed\u0022\u003EEntity Embed\u003C\/a\u003E\u003C\/li\u003E\r\n \u003Cli\u003E\u003Ca href=\u0022\/project\/element_embed\u0022\u003EElement Embed\u003C\/a\u003E\u003C\/li\u003E\r\n \u003Cli\u003E\u003Ca href=\u0022\/project\/url_embed\u0022\u003EURL Embed\u003C\/a\u003E\u003C\/li\u003E\r\n \u003Cli\u003E\u003Ca href=\u0022\/project\/views_entity_embed\u0022\u003EView Entity Embed\u003C\/a\u003E\u003C\/li\u003E\r\n \u003Cli\u003E\u003Ca href=\u0022\/project\/paragraphs_entity_embed\u0022\u003EParagraphs Entity Embed\u003C\/a\u003E\u003C\/li\u003E\r\n\u003C\/ul\u003E","format":"1","processed":"\u003Cp\u003EA framework module to help smooth the developer experience of offering embeddable things using the Drupal 8 WYSIWYG editor.\u003C\/p\u003E\n\u003Ch3\u003ERelated Modules\u003C\/h3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Ca href=\u0022\/project\/entity_embed\u0022 rel=\u0022nofollow\u0022\u003EEntity Embed\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022\/project\/element_embed\u0022 rel=\u0022nofollow\u0022\u003EElement Embed\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022\/project\/url_embed\u0022 rel=\u0022nofollow\u0022\u003EURL Embed\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022\/project\/views_entity_embed\u0022 rel=\u0022nofollow\u0022\u003EView Entity Embed\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022\/project\/paragraphs_entity_embed\u0022 rel=\u0022nofollow\u0022\u003EParagraphs Entity Embed\u003C\/a\u003E\u003C\/li\u003E\n\u003C\/ul\u003E","summary":""},"field_active_installs":"{\u00228.x-1.x\u0022:74382,\u00222.0.x\u0022:1}","field_active_installs_total":74383,"field_composer_namespace":"drupal\/embed","field_core_semver_maximum":12000000,"field_core_semver_minimum":8000000,"field_issue_summary_template":null,"field_logo_url":null,"field_project_has_releases":true,"field_project_machine_name":"embed","field_security_advisory_coverage":"covered"},"relationships":{"uid":{"data":{"type":"user--user","id":"45aa7efc-40a7-4cd3-a412-723ef2d49285","meta":{"drupal_internal__target_id":3260690}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/a9d18ca5-50a5-4758-9538-77635705996d\/uid?resourceVersion=id%3A20006461"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/a9d18ca5-50a5-4758-9538-77635705996d\/relationships\/uid?resourceVersion=id%3A20006461"}}},"field_development_status":{"data":{"type":"taxonomy_term--development_status","id":"219c1cf2-dd7f-474b-9dd5-a26643fbc699","meta":{"drupal_internal__target_id":27276}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/a9d18ca5-50a5-4758-9538-77635705996d\/field_development_status?resourceVersion=id%3A20006461"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/a9d18ca5-50a5-4758-9538-77635705996d\/relationships\/field_development_status?resourceVersion=id%3A20006461"}}},"field_maintenance_status":{"data":{"type":"taxonomy_term--maintenance_status","id":"cee844e2-68b5-489d-bafa-6a0ade2b6dfd","meta":{"drupal_internal__target_id":27273}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/a9d18ca5-50a5-4758-9538-77635705996d\/field_maintenance_status?resourceVersion=id%3A20006461"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/a9d18ca5-50a5-4758-9538-77635705996d\/relationships\/field_maintenance_status?resourceVersion=id%3A20006461"}}},"field_module_categories":{"data":[{"type":"taxonomy_term--module_categories","id":"86237004-3801-40cf-96b5-fe7d60efccb5","meta":{"drupal_internal__target_id":187}},{"type":"taxonomy_term--module_categories","id":"68428c33-1db7-438d-b1b3-e23004e0982b","meta":{"drupal_internal__target_id":192}}],"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/a9d18ca5-50a5-4758-9538-77635705996d\/field_module_categories?resourceVersion=id%3A20006461"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/a9d18ca5-50a5-4758-9538-77635705996d\/relationships\/field_module_categories?resourceVersion=id%3A20006461"}}},"field_project_images":{"data":[],"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/a9d18ca5-50a5-4758-9538-77635705996d\/field_project_images?resourceVersion=id%3A20006461"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/a9d18ca5-50a5-4758-9538-77635705996d\/relationships\/field_project_images?resourceVersion=id%3A20006461"}}}}},{"type":"node--project_module","id":"cb9ce805-f909-4892-90a7-7f48e6764b55","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/cb9ce805-f909-4892-90a7-7f48e6764b55?resourceVersion=id%3A20037666"},"working-copy":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/cb9ce805-f909-4892-90a7-7f48e6764b55?resourceVersion=rel%3Aworking-copy"}},"attributes":{"drupal_internal__nid":2663268,"status":true,"title":"Blazy","created":"2016-02-05T10:06:31+00:00","changed":"2026-04-07T05:20:02+00:00","moderation_state":null,"body":{"value":"Provides integration with \u003Ca href=\u0022https:\/\/github.com\/dinbror\/blazy\u0022\u003EbLazy\u003C\/a\u003E and or \u003Ca href=\u0022https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/API\/Intersection_Observer_API\u0022\u003EIntersection Observer API\u003C\/a\u003E (IO), or \u003Ca href=\u0022https:\/\/web.dev\/native-lazy-loading\/\u0022\u003ENative lazy loading\u003C\/a\u003E to lazy load and multi-serve images to save bandwidth and server requests. The user will have faster load times and save data usage if they don\u0027t browse the whole page.\r\nA friend of mobile devices. Do not let images, especially \u003Ca href=\u0022http:\/\/www.stevesouders.com\/blog\/2009\/06\/03\/using-iframes-sparingly\/\u0022\u003Eiframes\u003C\/a\u003E, kill mobile device traffics.\r\n\r\n\u003Ch2 id=\u0022blazy-requirements\u0022\u003ERequirements\u003C\/h2\u003E\r\n\u003Cul\u003E\r\n  \u003Cli\u003E3.x: PHP8+, core Media, and core Layout discovery for Blazy layout sub-module.\u003C\/li\u003E\r\n  \u003Cli\u003E8.x-2.x: core Media.\u003C\/li\u003E\r\n  \u003Cli\u003E8.x-1.x: core Image.\u003C\/li\u003E\r\n   \u003Cli\u003E7.x: PHP 7.4+ since 1.4, core Image, \u003Ca href=\u0022https:\/\/drupal.org\/project\/libraries\u0022\u003Elibraries\u003C\/a\u003E and one of autoloader modules, \u003Ca href=\u0022https:\/\/git.drupalcode.org\/project\/blazy\/blob\/7.x-1.x\/docs\/README.md#requirements\u0022\u003Eread more\u003C\/a\u003E\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Cstrong\u003E\u003Ca href=\u0022https:\/\/github.com\/dinbror\/blazy\u0022\u003EbLazy library\u003C\/a\u003E\u003C\/strong\u003E library (\u003E= v1.6.0):\r\n    \u003Cul\u003E\r\n      \u003Cli\u003EDownload bLazy from https:\/\/github.com\/dinbror\/blazy\u003C\/li\u003E\r\n      \u003Cli\u003EExtract it as is, rename \u003Cstrong\u003Eblazy-master\u003C\/strong\u003E to \u003Cstrong\u003Eblazy\u003C\/strong\u003E, so the assets are at:\r\n    \u003Cem\u003E\/libraries\/blazy\/blazy.min.js\u003C\/em\u003E\r\n    \u003Cem\u003E\/libraries\/blazy\/blazy.js\u003C\/em\u003E\r\n      \u003Cstrong\u003EEnsures both files are present due to branch changes.\u003C\/strong\u003E\r\n      \u003C\/li\u003E\r\n    \u003C\/ul\u003E\r\n   Since 8.x-2.6, it is no longer required. Instead included as a forked fallback to play nice between Native lazy, IO and old approaches, \u003Ca href=\u0022https:\/\/www.drupal.org\/project\/blazy\/issues\/3258851\u0022\u003Eread more\u003C\/a\u003E.\r\n  \u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\r\n\u003Ch2 id=\u0022blazy-versions\u0022\u003EVersions\u003C\/h2\u003E\r\n\u003Cul\u003E\r\n    \u003Cli\u003E3.x: D9.4 - D11+.\u003C\/li\u003E\r\n    \u003Cli\u003E8.x-2.x+: D8.8 - D10, archived. A transition from ME\/ VEF to core Media.\u003C\/li\u003E\r\n    \u003Cli\u003E8.x-1.x, dead as per \u003Ca href=\u0022https:\/\/www.drupal.org\/project\/video_embed_field\/\u0022\u003EVEF\u003C\/a\u003E deprecation notice.\u003C\/li\u003E\r\n    \u003Cli\u003E7.x requires a proper installation, see \u003Ca href=\u0022#blazy-installation\u0022\u003EInstallation\u003C\/a\u003E. It supports optional contrib \u003Ca href=\u0022https:\/\/drupal.org\/project\/media\u0022\u003EMedia\u003C\/a\u003E and \u003Ca href=\u0022https:\/\/drupal.org\/project\/views\u0022\u003EViews\u003C\/a\u003E. Has \u003Ca href=\u0022https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/API\/Intersection_Observer_API\u0022\u003EIntersection Observer API\u003C\/a\u003E.\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\r\n\u003Ch2 id=\u0022blazy-installation\u0022\u003EInstallation\u003C\/h2\u003E\r\n\u003Ch3\u003EManual:\u003C\/h3\u003E\r\nInstall the module as usual:\u003Cbr\u003E\r\n\u003Cul\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/git.drupalcode.org\/project\/blazy\/blob\/7.x-1.x\/docs\/README.md#installation\u0022\u003EBlazy 7.x installation with autoloader\u003C\/a\u003E.\r\n  \u003Ca href=\u0022https:\/\/www.drupal.org\/docs\/7\/extend\/installing-modules\u0022\u003EDrupal 7\u003C\/a\u003Cli\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/docs\/8\/extending-drupal-8\/installing-drupal-8-modules\u0022\u003EDrupal 8\u003C\/a\u003E\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\u003Ch3\u003EComposer:\u003C\/h3\u003E\r\nCheck out \u003Ca href=\u0022https:\/\/git.drupalcode.org\/project\/blazy\/-\/blob\/3.0.x\/docs\/COMPOSER.md?ref_type=heads\u0022\u003Ehere\u003C\/a\u003E.\r\n\r\n\u003Ch2 id=\u0022blazy-features\u0022\u003EFeatures\u003C\/h2\u003E\r\n\u003Cul\u003E\r\n  \u003Cli\u003EWorks absurdly fine at IE9 for Blazy 2.6+.\u003C\/li\u003E\r\n  \u003Cli\u003EWorks without JavaScript within\/without JavaScript browsers aka decoupled lazyload scripts since 2.6.\u003C\/li\u003E\r\n \u003Cli\u003EWorks at AMP pages. Or static\/ archived sites ala Tome, HTTrack, etc.\u003C\/li\u003E\r\n  \u003Cli\u003ESupports modern Native lazyload since \u003Ca href=\u0022https:\/\/www.drupal.org\/project\/blazy\/issues\/3104542\u0022\u003Eincubation\u003C\/a\u003E before Firefox or core had it, or old \u003Ccode\u003Edata-[src|srcset]\u003C\/code\u003E since eons.\u003C\/li\u003E\r\n  \u003Cli\u003ECore Media with oEmbed, Image, Responsive image. Works with \u003Ccode\u003E\u003Cimg\u003E\u003C\/code\u003E \u003Ca href=\u0022https:\/\/drupal.org\/node\/2752865\u0022\u003Eand\u003C\/a\u003E \u003Ccode\u003E\u003Cpicture\u003E\u003C\/code\u003E elements.\u003C\/li\u003E\r\n  \u003Cli\u003ECSS background lazyloading.\u003C\/li\u003E\r\n  \u003Cli\u003E(Responsive|picture|plain) image, (remote|local) video within lightboxes (2.3+): builtin Flybox aka non-disruptive lightbox aka picture in picture window (2.17+), \u003Ca href=\u0022https:\/\/github.com\/dimsemenov\/Magnific-Popup\u0022\u003EMagnific Popup\u003C\/a\u003E, \u003Ca href=\u0022http:\/\/drupal.org\/project\/colorbox\u0022\u003EColorbox\u003C\/a\u003E, \u003Ca href=\u0022https:\/\/www.drupal.org\/project\/blazy_photoswipe\u0022\u003EPhotoSwipe\u003C\/a\u003E, \u003Ca href=\u0022https:\/\/drupal.org\/project\/splidebox\u0022\u003ESplidebox\u003C\/a\u003E, etc. Be sure to \u003Ca href=\u0022https:\/\/git.drupalcode.org\/project\/blazy\/-\/blob\/8.x-2.x\/docs\/README.md#lightboxes\u0022\u003Eread more\u003C\/a\u003E.\u003C\/li\u003E\r\n  \u003Cli\u003EA simple effortless CSS loading indicator.\u003C\/li\u003E\r\n  \u003Cli\u003ESimple builtin shortcodes for inline galleries, hardcoded or entity-embed like, read more at \u003Cem\u003E\/filter\/tips\u003C\/em\u003E.\u003C\/li\u003E\r\n  \u003Cli\u003EIt doesn\u0027t take over all images, so it can be enabled as needed via Blazy formatters, or its supporting modules.\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\r\n\u003Ch2 id=\u0022blazy-features2\u0022\u003EAdditional features\u003C\/h2\u003E\r\n\u003Cul\u003E\r\n  \u003Cli\u003EBlazy dynamic layout sub-module for Layout Builder since 3.0.1.\u003C\/li\u003E\r\n  \u003Cli\u003ESupports SVG since 2.17.\u003C\/li\u003E\r\n  \u003Cli\u003ESupports inline images and iframes with lightboxes via Blazy Filter. \u003C\/li\u003E\r\n \u003Cli\u003ECSS3 masonry, Grid Foundation, Flexbox, Native Grid  for Views, fields, texts, Blazy Filter (8.x-2.5+). Also available as configurable layouts for Layout Builder since 3.0.1.\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\r\n\u003Ch2 id=\u0022blazy-usages\u0022\u003EUsages\u003C\/h2\u003E\r\nEnable Blazy UI which can be uninstalled at production later. Go to \u003Cem\u003E\/admin\/config\/media\/blazy\u003C\/em\u003E to manage few global options.\r\n\r\n\u003Ch3\u003E\u003Cstrong\u003EBlazy\u003C\/strong\u003E as field formatters\u003C\/h3\u003E\r\n\u003Cul\u003E\r\n  \u003Cli\u003EGo to \u003Cem\u003EManage display\u003C\/em\u003E page, e.g.: \r\n   \u003Cem\u003E\/admin\/structure\/types\/manage\/page\/display\u003C\/em\u003E\u003C\/li\u003E\r\n   \u003Cli\u003EFind \u003Cstrong\u003EBlazy\u003C\/strong\u003E formatter under \u003Cstrong\u003EManage display\u003C\/strong\u003E.\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\r\n\u003Ch3 id=\u0022blazy-filter\u0022\u003E\u003Cstrong\u003EBlazy Filter\u003C\/strong\u003E as HTML filter\u003C\/h3\u003E\r\n\u003Cul\u003E\r\n  \u003Cli\u003EVisit \u003Cstrong\u003E\/admin\/config\/content\/formats\/full_html\u003C\/strong\u003E, etc.\u003C\/li\u003E\r\n  \u003Cli\u003EEnable \u003Cstrong\u003EBlazy Filter\u003C\/strong\u003E.\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\r\n\u003Ch3\u003E\u003Cstrong\u003EBlazy Grid\u003C\/strong\u003E as Views style\u003C\/h3\u003E\r\n\u003Cul\u003E\r\n  \u003Cli\u003EVisit \u003Cstrong\u003E\/admin\/structure\/views\u003C\/strong\u003E.\u003C\/li\u003E\r\n  \u003Cli\u003EAdd a new Blazy Grid under Format.\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\r\n\u003Ch3\u003E\u003Cstrong\u003EBlazy Layout\u003C\/strong\u003E for Layout Builder\u003C\/h3\u003E\r\n\u003Cul\u003E\r\n  \u003Cli\u003EEnable the included Blazy Layout sub-module at \u003Cem\u003E\/admin\/modules\u003C\/em\u003E.\u003C\/li\u003E\r\n  \u003Cli\u003EVisit any Layout Builder pages, normally at content entities like Content type Manage display pages for defaults, or \u003Cem\u003E\/node\/123\/layout\u003C\/em\u003E for its derivatives.\u003C\/li\u003E\r\n  \u003Cli\u003EAdd a Blazy dynamic layout when adding a section. Configure the amount of regions, a layout engine, and a few more options.\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\r\n\u003Cstrong\u003EProgrammatically\u003C\/strong\u003E:\r\nCheck out \u003Ca href=\u0022https:\/\/cgit.drupalcode.org\/blazy\/tree\/blazy.api.php?h=8.x-2.x\u0022\u003Eblazy.api.php\u003C\/a\u003E for details.\r\n\r\n\u003Ch2 id=\u0022blazy-enhancements\u0022\u003EEnhancements\u003C\/h2\u003E\r\nBlazy works with fields, and Views, and supports a few enhancements.\r\n\r\n\u003Cdiv class=\u0022container clearfix\u0022\u003E\r\n  \u003Cdiv class=\u0022grid-5\u0022\u003E\r\n  \u003Ch2 id=\u0022blazy-integration\u0022\u003EIntegration\u003C\/h2\u003E\r\n\u003Cul\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/drupal.org\/project\/ajaxin\u0022\u003EAjaxin\u003C\/a\u003E\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/drupal.org\/project\/io\u0022\u003EIntersection Observer\u003C\/a\u003E with IO Entity Browser\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/drupal.org\/project\/gridstack\u0022\u003EGridStack\u003C\/a\u003E\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/drupal.org\/project\/outlayer\u0022\u003EOutlayer\u003C\/a\u003E\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/drupal.org\/project\/mason\u0022\u003EMason\u003C\/a\u003E\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/drupal.org\/project\/intense\u0022\u003EIntense\u003C\/a\u003E\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/drupal.org\/project\/blazy_photoswipe\u0022\u003EBlazy PhotoSwipe\u003C\/a\u003E\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/drupal.org\/project\/slick\u0022\u003ESlick\u003C\/a\u003E\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/drupal.org\/project\/slick_lightbox\u0022\u003ESlick Lightbox\u003C\/a\u003E\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/drupal.org\/project\/splide\u0022\u003ESplide\u003C\/a\u003E\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/drupal.org\/project\/splidebox\u0022\u003ESplidebox\u003C\/a\u003E\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/drupal.org\/project\/slick_browser\u0022\u003ESlick Browser\u003C\/a\u003E\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/drupal.org\/project\/slick_views\u0022\u003ESlick Views\u003C\/a\u003E\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/drupal.org\/project\/jumper\u0022\u003EJumper\u003C\/a\u003E (Jump Anywhere)\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/drupal.org\/project\/zooming\u0022\u003EZooming\u003C\/a\u003E\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/drupal.org\/project\/elevatezoomplus\u0022\u003EElevateZoom Plus\u003C\/a\u003E\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/blazy_video_embed_field\u0022\u003EBlazy Video Embed Field\u003C\/a\u003E\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/drupal.org\/project\/ultimenu\u0022\u003EUtimenu\u003C\/a\u003E\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\u003C\/div\u003E\r\n\u003Cdiv class=\u0022grid-7 omega\u0022\u003E\r\n\u003Ch2 id=\u0022blazy-optional-features\u0022\u003EOptional Features\u003C\/h2\u003E\r\n\u003Cul\u003E\r\n  \u003Cli\u003EViews fields:\r\n\u003Cem\u003EFile ER and Media integration, see \u003Ca href=\u0022http:\/\/drupal.org\/project\/slick_browser\u0022\u003ESlick Browser\u003C\/a\u003E. Suitable for huge galleries with lightboxes, or multimedia switcher.\u003C\/em\u003E\u003C\/li\u003E\r\n  \u003Cli\u003EViews style plugin \u003Cstrong\u003EBlazy Grid\u003C\/strong\u003E: \r\n\u003Cem\u003E\u003Cem\u003ECSS3 Masonry\u003C\/em\u003E and \u003Cem\u003EBlock Grid Foundation\u003C\/em\u003E, \u003Cem\u003ENative Grid\u003C\/em\u003E.\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Cstrong\u003EDeprecated at 2.x for core Media\u003C\/strong\u003E: \r\n\u003Cem\u003EBlazy Video, Blazy Image with VEM via \u003Ca href=\u0022https:\/\/www.drupal.org\/project\/video_embed_field\u0022\u003EVideo Embed Media\u003C\/a\u003E.\u003C\/em\u003E\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\u003C\/div\u003E\r\n\u003C\/div\u003E\r\n\r\n\u003Ch2 id=\u0022performance-results\u0022\u003EHow much can Blazy help performance?\u003C\/h2\u003E\r\nThis may vary, just a quick illustration on Blazy performance. On private benchmarks, Blazy saves a page with lots of images from 14MB to 3MB (A few jumbo slideshow images + tons of thumbnail previews), 200 http requests to 20, loading time 30s to 3s. Elevating performance grade from F\/E to A\/B via gtmetrix. Overall ~5-10x better. Combining Blazy with other performance tools such as AdvAgg, etc. will obviously make optimum results with less efforts.\r\n\r\n\u003Ch2 id=\u0022blazy-recommended\u0022\u003ERecommended modules\u003C\/h2\u003E\r\nFor better admin help page with markdown, either way will do:\r\n\u003Cul\u003E\r\n  \u003Cli\u003E\u003Ccode\u003Ecomposer require league\/commonmark\u003C\/code\u003E\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/markdown\u0022\u003EMarkdown\u003C\/a\u003E\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\r\n\u003Ch2 id=\u0022blazy-troubleshootings\u0022\u003ETroubleshootings\u003C\/h2\u003E\r\n\u003Cul\u003E\r\n  \u003Cli\u003ECheck out \u003Ca href=\u0022https:\/\/git.drupalcode.org\/project\/blazy\/-\/blob\/3.0.x\/docs\/TROUBLESHOOTING.md?ref_type=heads\u0022\u003Etroubleshooting\u003C\/a\u003E.\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\r\n\u003Ch2 id=\u0022blazy-faqs\u0022\u003EQuick FAQS\u003C\/h2\u003E\r\n\u003Cul\u003E\r\n  \u003Cli\u003E\u003Cstrong\u003EQ\u003C\/strong\u003E: \u003Cem\u003EIs Blazy deprecated by core lazy loading attribute?\u003C\/em\u003E\r\n\u003Cstrong\u003EA\u003C\/strong\u003E: As of this writing, native lazyloading only supports image and iframe, not DIV nor local video, etc. Depreciation might happen if core superseded or covered 90% features (\u003Cem\u003ECSS background, aspect ratio, lightboxes, carousel, masonry grid, fullscreen video, graceful degradation for oldies, media player etc.\u003C\/em\u003E). All cosmetics, and the little details that Blazy has to offer with contrib integrations, colorbox, carousel, svg, animate.css, etc. are less likely entering core. Even if media players, lightboxes and carousels were in core, there are still some added values that Blazy can offer and do with contribs. A DRY buster ala CTools, in the least. Shortly, nope. Check out [#3172307]\u003C\/li\u003E\r\n\u003Cli\u003E\u003Cstrong\u003EQ\u003C\/strong\u003E:\u003Cem\u003E Set aside extra features, except lazyload, with that in core, Blazy is not needed!\u003C\/em\u003E\r\n\u003Cstrong\u003EA\u003C\/strong\u003E: With due respects, a narrow POV at best -- toxic positivity, like cutting glass with a glorified hammer. Read Core Web Vitals. Consider BC, SVG, CSP, LCP with different media placements above or below the fold, client and server preloading, proper slider integration with LCP, not to mention other media types, etc. Core or even other lazyload modules don\u0027t address them all, Blazy does.\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Cstrong\u003EQ\u003C\/strong\u003E: \u003Cem\u003EWhat is the correlation between lazy loading and Blazy Grid for texts and Views fields\/ contents? Texts don\u0027t lazy load. \u003C\/em\u003E\r\n\u003Cstrong\u003EA\u003C\/strong\u003E: The focus is lazy loading as noted in the \u003Cstrong\u003EFeatures\u003C\/strong\u003E. Around lazy loading, we have requirements to make image\/ media fields displayed in a grid such as lightbox galleries. Grid for Texts and Views are just bonuses thanks to re-usability. Grid is also the recommended alternative to carousels based on some A\/B testings.\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Cstrong\u003EQ\u003C\/strong\u003E: \u003Cem\u003EI don\u0027t use Media, why required?\u003C\/em\u003E\r\n\u003Cstrong\u003EA\u003C\/strong\u003E: When you add a new plain old image says at \u003Ccode\u003E\/admin\/structure\/types\/manage\/page\/fields\/add-field\u003C\/code\u003E, Drupal speaks authoritatively: \r\n\u003Cem\u003EUse \u003Cstrong\u003EMedia\u003C\/strong\u003E reference fields for most files, images, audio, videos, and remote media. Use \u003Cstrong\u003EFile\u003C\/strong\u003E or \u003Cstrong\u003EImage\u003C\/strong\u003E reference fields when creating your own media types, or for legacy files and images created before enabling the Media module. For more information, see the Media help page.\u003C\/em\u003E\r\n\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Cstrong\u003EQ\u003C\/strong\u003E: \u003Cem\u003EWhy are many modules dependent on Blazy?\u003C\/em\u003E\r\n\u003Cstrong\u003EA\u003C\/strong\u003E: Read more 5-year-old noble intentions \u003Ca href=\u0022https:\/\/git.drupalcode.org\/project\/blazy\/-\/tree\/8.x-1.0-alpha2\/src\/Dejavu\u0022\u003Ehere\u003C\/a\u003E. Shortly, DRY.\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\r\n\u003Ch2 id=\u0022blazy-known-issues\u0022\u003EKnown issues\/ limitations\u003C\/h2\u003E\r\n\u003Cul\u003E\r\n  \u003Cli\u003EBlazy formatter embedded\/ rewritten within Views UI \u003Cstrong\u003ERewrite results\u003C\/strong\u003E has issues, check \u003Ca href=\u0022https:\/\/drupal.org\/node\/2930084\u0022\u003Ethis\u003C\/a\u003E and \u003Ca href=\u0022https:\/\/www.drupal.org\/node\/2908861\u0022\u003Ethat\u003C\/a\u003E out.\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/git.drupalcode.org\/project\/blazy\/blob\/7.x-1.x\/docs\/README.md#known-issues\u0022\u003EBlazy 7.x installation with autoloader\u003C\/a\u003E.\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\r\n\u003Cdiv id=\u0022blazy-sop\u0022 class=\u0022messages status\u0022\u003E\r\n\u003Ch2\u003EUpdate SOP\u003C\/h2\u003E\r\nRead \u003Ca href=\u0022https:\/\/git.drupalcode.org\/project\/blazy\/-\/blob\/3.0.x\/docs\/UPDATING.md?ref_type=heads\u0022\u003Eupdate SOP\u003C\/a\u003E whenever updating Blazy and its related modules.\r\n\r\nWhenever updating Blazy, please make sure Blazy\u0027s sub-modules are updated to their latest versions as well, \u003Ca href=\u0022https:\/\/git.drupalcode.org\/project\/blazy\/-\/blob\/3.0.x\/docs\/README.md?ref_type=heads#-first-things-first\u0022\u003Eread more\u003C\/a\u003E.\r\n\u003C\/div\u003E\r\n\r\n\u003Ch2 id=\u0022blazy-issues\u0022\u003ESubmitting issues or patches\u003C\/h2\u003E\r\nPlease check \u003Ca href=\u0022https:\/\/git.drupalcode.org\/project\/blazy\/-\/blob\/3.0.x\/docs\/CONTRIBUTION.md?ref_type=heads#submitting-patches-or-issues\u0022\u003Ethis\u003C\/a\u003E out before submitting issues, or patches.\r\n\r\n\r\n\u003Cdiv class=\u0022note-version\u0022\u003E\r\n\u003Ch4 id=\u0022blazy-upgrade\u0022\u003EUpgrading from 1.x to 2.x or 3+\u003C\/h4\u003E\r\nUpgrading from 1.x is not supported, yet. Meaning it will not automatically work without fixing the caveats below. Yet hardly an issue seeing the 2.x increasing installs.\r\n\r\nShould you need to upgrade, to minimize issues, do it one at a time, sequential, not parallel:\r\n\u003Col\u003E\r\n  \u003Cli\u003ECore Drupal\u003C\/li\u003E\r\n  \u003Cli\u003ECore Media (auto-installed, yet install it beforehand for safety)\u003C\/li\u003E\r\n  \u003Cli\u003EMedia entity (ME)\u003C\/li\u003E\r\n  \u003Cli\u003EVideo Embed Field (VEF)\u003C\/li\u003E\r\n  \u003Cli\u003EBlazy and sub-modules (must be parallel here and match branch numbers _if available: 2.x for 2.x, etc.)\u003C\/li\u003E\r\n\u003C\/ol\u003E\r\n\r\n\u003Cdiv id=\u0022blazy-upgrade-warning\u0022 class=\u0022messages warning\u0022\u003E\r\n\u003Cstrong\u003EBe sure you succeed on upgrading them before proceeding to Blazy!\u003C\/strong\u003E\r\nMost reported issues are if you have ME and VEF. Both are \u003Ccode\u003Eoptional\u003C\/code\u003E integrations, the main reason for sequential upgrade, not Blazy\u0027s requirements.\r\n\r\nIf you don\u0027t have them, a matter of matching sub-module branches.\r\n\u003C\/div\u003E\r\n\r\n\u003Ch3\u003ESequential number is expected: \u003C\/h3\u003E\r\n1.x -\u003E 2.x (contains deprecated stuffs to avoid WSOD) -\u003E 3+.\r\nJumping from 1.x to 3.x, bypassing 2.x, may likely cause WSOD due to added\/ removed services, formatters, database updates, etc. which must be checked and performed in 2.x.\r\n\r\nNew sites starting with branches 2.x or 3.x post D8.6 with core Media should be no issues here on.\r\n\r\n\u003Ch3\u003EPreparations:\u003C\/h3\u003E\r\n\u003Cul\u003E\r\n  \u003Cli\u003EPrepare for the worst! Backup aka restore point.\u003C\/li\u003E\r\n  \u003Cli\u003EInspirations: \u003Ca href=\u0022https:\/\/www.drupal.org\/node\/3127793\u0022\u003Ehappy\u003C\/a\u003E or \u003Ca href=\u0022https:\/\/www.drupal.org\/node\/3046291\u0022\u003Esad\u003C\/a\u003E\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/node\/3103018\u0022\u003EChange records\u003C\/a\u003E: Twig, CSS and custom Breakpoints removed for core Responsive image. Deprecated stuffs, including formatters, are intact at 2.x to avoid WSOD till you have time to change them-- gone at 3.x, though.\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\r\n\u003Ch3\u003EExecution:\u003C\/h3\u003E\r\n\u003Cul\u003E\r\n  \u003Cli\u003E\u003Ccode\u003Edrush cr\u003C\/code\u003E \u003Ccode\u003Edrush updb\u003C\/code\u003E \u003Ccode\u003Edrush cr\u003C\/code\u003E for each sequence. Or see \u003Ca href=\u0022https:\/\/git.drupalcode.org\/project\/blazy\/-\/blob\/3.0.x\/docs\/UPDATING.md?ref_type=heads\u0022\u003Eupdate SOP\u003C\/a\u003E for details. _If CLI \u003Ccode\u003Edrush updb\u003C\/code\u003E failed, as a few reported, try Drupal UI. At best, \u003Ccode\u003Edrush cr\u003C\/code\u003E, hardly failed.\u003C\/li\u003E\r\n  \u003Cli\u003EOnly if any issues, re-visit Blazy, Field or Views UI for new options, and re-save them as needed.\u003C\/li\u003E\r\n  \u003Cli\u003EIt should (hopefully) be as easy as upgrading Drupal. Best wishes!\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\r\n\u003Ch3\u003ECommon error causes:\u003C\/h3\u003E\r\nMostly due to added\/ removed services not being recognized.\r\n\u003Cul\u003E\r\n  \u003Cli\u003EFailing to clear cache.\u003C\/li\u003E\r\n  \u003Cli\u003EParallel upgrade. On the contrary, Blazy and sub-modules require parallel one.\u003C\/li\u003E\r\n  \u003Cli\u003EMismatched Blazy sub-module branches.\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\r\n\u003Ch3 id=\u0022blazy-upgrade3\u0022\u003EUpgrading from 2.x or 3+\u003C\/h3\u003E\r\nBe sure to first update old Blazy and it\u0027s sub-modules to the latest 2.x, and fix Blazy error, if any, at admin status reports page before running the following.\r\n \r\n\u003Ccode\u003Ecomposer require drupal\/slick_extras:^2.0 drupal\/slick_views:^3.0 drupal\/slick:^3.0 drupal\/blazy:^3.0 -W -n\r\n\r\ndrush cr\r\ndrush updb\r\ndrush cr\u003C\/code\u003E\r\n\r\nThis is what parallel upgrade is -- composer require them all once. Remove or add more sub-modules as needed. \u003Ccode\u003E-W -n\u003C\/code\u003E is not required, but handy and quick.\r\n\r\nBlazy 3.x moved Blazy UI sub-module into a sub-folder. No issues for composer as long as you follow \u003Cstrong\u003EUpdate SOP\u003C\/strong\u003E. Yet see \u003Cstrong\u003EOOT\u003C\/strong\u003E section below, or more in \u003Ca href=\u0022https:\/\/git.drupalcode.org\/project\/blazy\/-\/blob\/3.0.x\/docs\/UPDATING.md?ref_type=heads#wsod-worst-case-update-sop\u0022\u003Eupdate SOP \u003E WSOD\u003C\/a\u003E  if any issues.\r\n\r\nOnly if you were still using VEF and stuck for a reason. Steps:\r\n\u003Cul\u003E\r\n  \u003Cli\u003EReplace Blazy Video (deprecated) formatter with \u003Ca href=\u0022https:\/\/www.drupal.org\/project\/blazy_video_embed_field\u0022\u003EBVEF\u003C\/a\u003E at Field or Views UI before upgrading to 3.x.\u003C\/li\u003E\r\n  \u003Cli\u003EProceed with upgrade steps as outlined above, excluding Media (Entity) and VEF.\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\r\nFailing to clear cache and mismatched branches are the most potential errors here on.\r\nPotential oversight for manual FTP upgrade. For Composer, it is smart and helpful with suggestions before proceeding to not trespass\/ mismatch branches. See OOT below.\r\n\r\n\u003Ch3 id=\u0022blazy-bc\u0022\u003ENotable lingering 1.x issues and fixes on 3.x\u003C\/h3\u003E\r\nYou are here at Blazy 3.x, and only applicable if Blazy formatter 1.x-2.x is never re-saved till 3.x since the removal of Breakpoints option at last 2.x-RC (8.x-2.0-rc7). \r\n\r\nSkip if Breakpoints option is never in sight (2.0 full release).\r\n\r\nThe removal of old 1.x Breakpoints for Responsive image, see \u003Cstrong\u003EPreparations\u003C\/strong\u003E section above, may cause saving 3.x forms fail. It was no issues at 2.x, but would be at 3.x, when deprecated stuffs were removed. \r\n\u003Cstrong\u003ESolutions\u003C\/strong\u003E:\r\n\u003Cul\u003E\r\n  \u003Cli\u003EOpen Blazy formatter form whether in Field UI Manage display, or Views UI LHS pages.\u003C\/li\u003E\r\n   \u003Cli\u003EHit Update or Apply buttons. This is the only cure to sync database and codebase.\u003C\/li\u003E\r\n  \u003Cli\u003ESave the form.\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\nThis is another reason why 1.x upgrade is not supported due to no upgrade path is provided. The fix above is fairly easy, though.\r\n\r\n\u003Ch3 id=\u0022blazy-oot\u0022\u003EOOT: FTP or GIT Upgrades\u003C\/h3\u003E\r\nIf using Composer locally, but using FTP or GIT repo (e.g. cPanel commands pulling from GIT) on productions, be sure to selectively \u003Cstrong\u003Edelete\u003C\/strong\u003E (manually or with commands) old folders first, not merging the new folders with the old ones. Merging folders (normally where PHP lives like vendor, core, modules, themes, etc.) will definitely cause issues and headaches due to likely namespace re-location or organization. Composer takes care of old folder deletion, but not FTP nor GIT repo pull via cPanel, etc.\r\n\u003C\/div\u003E\r\n","format":"1","processed":"\u003Cdiv class=\u0022toc-filter\u0022\u003E\u003Cp\u003EProvides integration with \u003Ca href=\u0022https:\/\/github.com\/dinbror\/blazy\u0022 rel=\u0022nofollow\u0022\u003EbLazy\u003C\/a\u003E and or \u003Ca href=\u0022https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/API\/Intersection_Observer_API\u0022 rel=\u0022nofollow\u0022\u003EIntersection Observer API\u003C\/a\u003E (IO), or \u003Ca href=\u0022https:\/\/web.dev\/native-lazy-loading\/\u0022 rel=\u0022nofollow\u0022\u003ENative lazy loading\u003C\/a\u003E to lazy load and multi-serve images to save bandwidth and server requests. The user will have faster load times and save data usage if they don\u0027t browse the whole page.\u003Cbr\u003E\nA friend of mobile devices. Do not let images, especially \u003Ca href=\u0022http:\/\/www.stevesouders.com\/blog\/2009\/06\/03\/using-iframes-sparingly\/\u0022 rel=\u0022nofollow\u0022\u003Eiframes\u003C\/a\u003E, kill mobile device traffics.\u003C\/p\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022blazy-requirements-01\u0022\u003ERequirements\u003C\/h2\u003E\n\u003Cul\u003E\n\u003Cli\u003E3.x: PHP8+, core Media, and core Layout discovery for Blazy layout sub-module.\u003C\/li\u003E\n\u003Cli\u003E8.x-2.x: core Media.\u003C\/li\u003E\n\u003Cli\u003E8.x-1.x: core Image.\u003C\/li\u003E\n\u003Cli\u003E7.x: PHP 7.4+ since 1.4, core Image, \u003Ca href=\u0022https:\/\/drupal.org\/project\/libraries\u0022 rel=\u0022nofollow\u0022\u003Elibraries\u003C\/a\u003E and one of autoloader modules, \u003Ca href=\u0022https:\/\/git.drupalcode.org\/project\/blazy\/blob\/7.x-1.x\/docs\/README.md#requirements\u0022 rel=\u0022nofollow\u0022\u003Eread more\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cstrong\u003E\u003Ca href=\u0022https:\/\/github.com\/dinbror\/blazy\u0022 rel=\u0022nofollow\u0022\u003EbLazy library\u003C\/a\u003E\u003C\/strong\u003E library (\u0026gt;= v1.6.0):\n\u003Cul\u003E\n\u003Cli\u003EDownload bLazy from \u003Ca href=\u0022https:\/\/github.com\/dinbror\/blazy\u0022 rel=\u0022nofollow\u0022\u003Ehttps:\/\/github.com\/dinbror\/blazy\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003EExtract it as is, rename \u003Cstrong\u003Eblazy-master\u003C\/strong\u003E to \u003Cstrong\u003Eblazy\u003C\/strong\u003E, so the assets are at:\u003Cbr\u003E\n    \u003Cem\u003E\/libraries\/blazy\/blazy.min.js\u003C\/em\u003E\u003Cbr\u003E\n    \u003Cem\u003E\/libraries\/blazy\/blazy.js\u003C\/em\u003E\u003Cbr\u003E\n      \u003Cstrong\u003EEnsures both files are present due to branch changes.\u003C\/strong\u003E\n      \u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cp\u003E   Since 8.x-2.6, it is no longer required. Instead included as a forked fallback to play nice between Native lazy, IO and old approaches, \u003Ca href=\u0022https:\/\/www.drupal.org\/project\/blazy\/issues\/3258851\u0022 rel=\u0022nofollow\u0022\u003Eread more\u003C\/a\u003E.\n  \u003C\/p\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022blazy-versions-01\u0022\u003EVersions\u003C\/h2\u003E\n\u003Cul\u003E\n\u003Cli\u003E3.x: D9.4 - D11+.\u003C\/li\u003E\n\u003Cli\u003E8.x-2.x+: D8.8 - D10, archived. A transition from ME\/ VEF to core Media.\u003C\/li\u003E\n\u003Cli\u003E8.x-1.x, dead as per \u003Ca href=\u0022https:\/\/www.drupal.org\/project\/video_embed_field\/\u0022 rel=\u0022nofollow\u0022\u003EVEF\u003C\/a\u003E deprecation notice.\u003C\/li\u003E\n\u003Cli\u003E7.x requires a proper installation, see \u003Ca href=\u0022#blazy-installation\u0022 rel=\u0022nofollow\u0022\u003EInstallation\u003C\/a\u003E. It supports optional contrib \u003Ca href=\u0022https:\/\/drupal.org\/project\/media\u0022 rel=\u0022nofollow\u0022\u003EMedia\u003C\/a\u003E and \u003Ca href=\u0022https:\/\/drupal.org\/project\/views\u0022 rel=\u0022nofollow\u0022\u003EViews\u003C\/a\u003E. Has \u003Ca href=\u0022https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/API\/Intersection_Observer_API\u0022 rel=\u0022nofollow\u0022\u003EIntersection Observer API\u003C\/a\u003E.\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022blazy-installation-01\u0022\u003EInstallation\u003C\/h2\u003E\n\u003Ch3 id=\u0022manual\u0022\u003EManual:\u003C\/h3\u003E\n\u003Cp\u003EInstall the module as usual:\u003Cbr\u003E\u003C\/p\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/git.drupalcode.org\/project\/blazy\/blob\/7.x-1.x\/docs\/README.md#installation\u0022 rel=\u0022nofollow\u0022\u003EBlazy 7.x installation with autoloader\u003C\/a\u003E.\u003Cbr\u003E\n  \u003Ca href=\u0022https:\/\/www.drupal.org\/docs\/7\/extend\/installing-modules\u0022 rel=\u0022nofollow\u0022\u003EDrupal 7\u003C\/a\u003E\n\u003C\/li\u003E\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/docs\/8\/extending-drupal-8\/installing-drupal-8-modules\u0022 rel=\u0022nofollow\u0022\u003EDrupal 8\u003C\/a\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Ch3 id=\u0022composer\u0022\u003EComposer:\u003C\/h3\u003E\n\u003Cp\u003ECheck out \u003Ca href=\u0022https:\/\/git.drupalcode.org\/project\/blazy\/-\/blob\/3.0.x\/docs\/COMPOSER.md?ref_type=heads\u0022 rel=\u0022nofollow\u0022\u003Ehere\u003C\/a\u003E.\u003C\/p\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022blazy-features-01\u0022\u003EFeatures\u003C\/h2\u003E\n\u003Cul\u003E\n\u003Cli\u003EWorks absurdly fine at IE9 for Blazy 2.6+.\u003C\/li\u003E\n\u003Cli\u003EWorks without JavaScript within\/without JavaScript browsers aka decoupled lazyload scripts since 2.6.\u003C\/li\u003E\n\u003Cli\u003EWorks at AMP pages. Or static\/ archived sites ala Tome, HTTrack, etc.\u003C\/li\u003E\n\u003Cli\u003ESupports modern Native lazyload since \u003Ca href=\u0022https:\/\/www.drupal.org\/project\/blazy\/issues\/3104542\u0022 rel=\u0022nofollow\u0022\u003Eincubation\u003C\/a\u003E before Firefox or core had it, or old \u003Ccode\u003Edata-[src|srcset]\u003C\/code\u003E since eons.\u003C\/li\u003E\n\u003Cli\u003ECore Media with oEmbed, Image, Responsive image. Works with \u003Ccode\u003E\u003Cimg src=\u0022\/core\/misc\/icons\/e32700\/error.svg\u0022 alt=\u0022Image removed.\u0022 title=\u0022This image has been removed. For security reasons, only images from the local domain are allowed.\u0022 height=\u002216\u0022 width=\u002216\u0022 class=\u0022filter-image-invalid\u0022\u003E\u003C\/code\u003E \u003Ca href=\u0022https:\/\/drupal.org\/node\/2752865\u0022 rel=\u0022nofollow\u0022\u003Eand\u003C\/a\u003E \u003Ccode\u003E\u003Cbr\u003E\n\u003C\/code\u003E elements.\u003C\/li\u003E\n\u003Cli\u003ECSS background lazyloading.\u003C\/li\u003E\n\u003Cli\u003E(Responsive|picture|plain) image, (remote|local) video within lightboxes (2.3+): builtin Flybox aka non-disruptive lightbox aka picture in picture window (2.17+), \u003Ca href=\u0022https:\/\/github.com\/dimsemenov\/Magnific-Popup\u0022 rel=\u0022nofollow\u0022\u003EMagnific Popup\u003C\/a\u003E, \u003Ca href=\u0022http:\/\/drupal.org\/project\/colorbox\u0022 rel=\u0022nofollow\u0022\u003EColorbox\u003C\/a\u003E, \u003Ca href=\u0022https:\/\/www.drupal.org\/project\/blazy_photoswipe\u0022 rel=\u0022nofollow\u0022\u003EPhotoSwipe\u003C\/a\u003E, \u003Ca href=\u0022https:\/\/drupal.org\/project\/splidebox\u0022 rel=\u0022nofollow\u0022\u003ESplidebox\u003C\/a\u003E, etc. Be sure to \u003Ca href=\u0022https:\/\/git.drupalcode.org\/project\/blazy\/-\/blob\/8.x-2.x\/docs\/README.md#lightboxes\u0022 rel=\u0022nofollow\u0022\u003Eread more\u003C\/a\u003E.\u003C\/li\u003E\n\u003Cli\u003EA simple effortless CSS loading indicator.\u003C\/li\u003E\n\u003Cli\u003ESimple builtin shortcodes for inline galleries, hardcoded or entity-embed like, read more at \u003Cem\u003E\/filter\/tips\u003C\/em\u003E.\u003C\/li\u003E\n\u003Cli\u003EIt doesn\u0027t take over all images, so it can be enabled as needed via Blazy formatters, or its supporting modules.\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022blazy-features2-01\u0022\u003EAdditional features\u003C\/h2\u003E\n\u003Cul\u003E\n\u003Cli\u003EBlazy dynamic layout sub-module for Layout Builder since 3.0.1.\u003C\/li\u003E\n\u003Cli\u003ESupports SVG since 2.17.\u003C\/li\u003E\n\u003Cli\u003ESupports inline images and iframes with lightboxes via Blazy Filter. \u003C\/li\u003E\n\u003Cli\u003ECSS3 masonry, Grid Foundation, Flexbox, Native Grid  for Views, fields, texts, Blazy Filter (8.x-2.5+). Also available as configurable layouts for Layout Builder since 3.0.1.\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022blazy-usages-01\u0022\u003EUsages\u003C\/h2\u003E\n\u003Cp\u003EEnable Blazy UI which can be uninstalled at production later. Go to \u003Cem\u003E\/admin\/config\/media\/blazy\u003C\/em\u003E to manage few global options.\u003C\/p\u003E\n\u003Ch3 id=\u0022blazy-as-field-formatters\u0022\u003E\u003Cstrong\u003EBlazy\u003C\/strong\u003E as field formatters\u003C\/h3\u003E\n\u003Cul\u003E\n\u003Cli\u003EGo to \u003Cem\u003EManage display\u003C\/em\u003E page, e.g.:\u003Cbr\u003E\n   \u003Cem\u003E\/admin\/structure\/types\/manage\/page\/display\u003C\/em\u003E\u003C\/li\u003E\n\u003Cli\u003EFind \u003Cstrong\u003EBlazy\u003C\/strong\u003E formatter under \u003Cstrong\u003EManage display\u003C\/strong\u003E.\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Ch3 id=\u0022blazy-filter-01\u0022\u003E\u003Cstrong\u003EBlazy Filter\u003C\/strong\u003E as HTML filter\u003C\/h3\u003E\n\u003Cul\u003E\n\u003Cli\u003EVisit \u003Cstrong\u003E\/admin\/config\/content\/formats\/full_html\u003C\/strong\u003E, etc.\u003C\/li\u003E\n\u003Cli\u003EEnable \u003Cstrong\u003EBlazy Filter\u003C\/strong\u003E.\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Ch3 id=\u0022blazy-grid-as-views-style\u0022\u003E\u003Cstrong\u003EBlazy Grid\u003C\/strong\u003E as Views style\u003C\/h3\u003E\n\u003Cul\u003E\n\u003Cli\u003EVisit \u003Cstrong\u003E\/admin\/structure\/views\u003C\/strong\u003E.\u003C\/li\u003E\n\u003Cli\u003EAdd a new Blazy Grid under Format.\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Ch3 id=\u0022blazy-layout-for-layout-builder\u0022\u003E\u003Cstrong\u003EBlazy Layout\u003C\/strong\u003E for Layout Builder\u003C\/h3\u003E\n\u003Cul\u003E\n\u003Cli\u003EEnable the included Blazy Layout sub-module at \u003Cem\u003E\/admin\/modules\u003C\/em\u003E.\u003C\/li\u003E\n\u003Cli\u003EVisit any Layout Builder pages, normally at content entities like Content type Manage display pages for defaults, or \u003Cem\u003E\/node\/123\/layout\u003C\/em\u003E for its derivatives.\u003C\/li\u003E\n\u003Cli\u003EAdd a Blazy dynamic layout when adding a section. Configure the amount of regions, a layout engine, and a few more options.\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cp\u003E\u003Cstrong\u003EProgrammatically\u003C\/strong\u003E:\u003Cbr\u003E\nCheck out \u003Ca href=\u0022https:\/\/cgit.drupalcode.org\/blazy\/tree\/blazy.api.php?h=8.x-2.x\u0022 rel=\u0022nofollow\u0022\u003Eblazy.api.php\u003C\/a\u003E for details.\u003C\/p\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022blazy-enhancements-01\u0022\u003EEnhancements\u003C\/h2\u003E\n\u003Cp\u003EBlazy works with fields, and Views, and supports a few enhancements.\u003C\/p\u003E\n\u003Cdiv\u003E\n\u003Cdiv\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022blazy-integration-01\u0022\u003EIntegration\u003C\/h2\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/drupal.org\/project\/ajaxin\u0022 rel=\u0022nofollow\u0022\u003EAjaxin\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/drupal.org\/project\/io\u0022 rel=\u0022nofollow\u0022\u003EIntersection Observer\u003C\/a\u003E with IO Entity Browser\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/drupal.org\/project\/gridstack\u0022 rel=\u0022nofollow\u0022\u003EGridStack\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/drupal.org\/project\/outlayer\u0022 rel=\u0022nofollow\u0022\u003EOutlayer\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/drupal.org\/project\/mason\u0022 rel=\u0022nofollow\u0022\u003EMason\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/drupal.org\/project\/intense\u0022 rel=\u0022nofollow\u0022\u003EIntense\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/drupal.org\/project\/blazy_photoswipe\u0022 rel=\u0022nofollow\u0022\u003EBlazy PhotoSwipe\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/drupal.org\/project\/slick\u0022 rel=\u0022nofollow\u0022\u003ESlick\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/drupal.org\/project\/slick_lightbox\u0022 rel=\u0022nofollow\u0022\u003ESlick Lightbox\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/drupal.org\/project\/splide\u0022 rel=\u0022nofollow\u0022\u003ESplide\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/drupal.org\/project\/splidebox\u0022 rel=\u0022nofollow\u0022\u003ESplidebox\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/drupal.org\/project\/slick_browser\u0022 rel=\u0022nofollow\u0022\u003ESlick Browser\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/drupal.org\/project\/slick_views\u0022 rel=\u0022nofollow\u0022\u003ESlick Views\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/drupal.org\/project\/jumper\u0022 rel=\u0022nofollow\u0022\u003EJumper\u003C\/a\u003E (Jump Anywhere)\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/drupal.org\/project\/zooming\u0022 rel=\u0022nofollow\u0022\u003EZooming\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/drupal.org\/project\/elevatezoomplus\u0022 rel=\u0022nofollow\u0022\u003EElevateZoom Plus\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/blazy_video_embed_field\u0022 rel=\u0022nofollow\u0022\u003EBlazy Video Embed Field\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/drupal.org\/project\/ultimenu\u0022 rel=\u0022nofollow\u0022\u003EUtimenu\u003C\/a\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/div\u003E\n\u003Cdiv\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022blazy-optional-features-01\u0022\u003EOptional Features\u003C\/h2\u003E\n\u003Cul\u003E\n\u003Cli\u003EViews fields:\u003Cbr\u003E\n\u003Cem\u003EFile ER and Media integration, see \u003Ca href=\u0022http:\/\/drupal.org\/project\/slick_browser\u0022 rel=\u0022nofollow\u0022\u003ESlick Browser\u003C\/a\u003E. Suitable for huge galleries with lightboxes, or multimedia switcher.\u003C\/em\u003E\u003C\/li\u003E\n\u003Cli\u003EViews style plugin \u003Cstrong\u003EBlazy Grid\u003C\/strong\u003E:\u003Cbr\u003E\n\u003Cem\u003E\u003Cem\u003ECSS3 Masonry\u003C\/em\u003E and \u003Cem\u003EBlock Grid Foundation\u003C\/em\u003E, \u003Cem\u003ENative Grid\u003C\/em\u003E.\u003C\/em\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cstrong\u003EDeprecated at 2.x for core Media\u003C\/strong\u003E:\u003Cbr\u003E\n\u003Cem\u003EBlazy Video, Blazy Image with VEM via \u003Ca href=\u0022https:\/\/www.drupal.org\/project\/video_embed_field\u0022 rel=\u0022nofollow\u0022\u003EVideo Embed Media\u003C\/a\u003E.\u003C\/em\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/div\u003E\n\u003C\/div\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022performance-results-01\u0022\u003EHow much can Blazy help performance?\u003C\/h2\u003E\n\u003Cp\u003EThis may vary, just a quick illustration on Blazy performance. On private benchmarks, Blazy saves a page with lots of images from 14MB to 3MB (A few jumbo slideshow images + tons of thumbnail previews), 200 http requests to 20, loading time 30s to 3s. Elevating performance grade from F\/E to A\/B via gtmetrix. Overall ~5-10x better. Combining Blazy with other performance tools such as AdvAgg, etc. will obviously make optimum results with less efforts.\u003C\/p\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022blazy-recommended-01\u0022\u003ERecommended modules\u003C\/h2\u003E\n\u003Cp\u003EFor better admin help page with markdown, either way will do:\u003C\/p\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Ccode\u003Ecomposer require league\/commonmark\u003C\/code\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/markdown\u0022 rel=\u0022nofollow\u0022\u003EMarkdown\u003C\/a\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022blazy-troubleshootings-01\u0022\u003ETroubleshootings\u003C\/h2\u003E\n\u003Cul\u003E\n\u003Cli\u003ECheck out \u003Ca href=\u0022https:\/\/git.drupalcode.org\/project\/blazy\/-\/blob\/3.0.x\/docs\/TROUBLESHOOTING.md?ref_type=heads\u0022 rel=\u0022nofollow\u0022\u003Etroubleshooting\u003C\/a\u003E.\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022blazy-faqs-01\u0022\u003EQuick FAQS\u003C\/h2\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cstrong\u003EQ\u003C\/strong\u003E: \u003Cem\u003EIs Blazy deprecated by core lazy loading attribute?\u003C\/em\u003E\u003Cbr\u003E\n\u003Cstrong\u003EA\u003C\/strong\u003E: As of this writing, native lazyloading only supports image and iframe, not DIV nor local video, etc. Depreciation might happen if core superseded or covered 90% features (\u003Cem\u003ECSS background, aspect ratio, lightboxes, carousel, masonry grid, fullscreen video, graceful degradation for oldies, media player etc.\u003C\/em\u003E). All cosmetics, and the little details that Blazy has to offer with contrib integrations, colorbox, carousel, svg, animate.css, etc. are less likely entering core. Even if media players, lightboxes and carousels were in core, there are still some added values that Blazy can offer and do with contribs. A DRY buster ala CTools, in the least. Shortly, nope. Check out [#3172307]\u003C\/li\u003E\n\u003Cli\u003E\u003Cstrong\u003EQ\u003C\/strong\u003E:\u003Cem\u003E Set aside extra features, except lazyload, with that in core, Blazy is not needed!\u003C\/em\u003E\u003Cbr\u003E\n\u003Cstrong\u003EA\u003C\/strong\u003E: With due respects, a narrow POV at best -- toxic positivity, like cutting glass with a glorified hammer. Read Core Web Vitals. Consider BC, SVG, CSP, LCP with different media placements above or below the fold, client and server preloading, proper slider integration with LCP, not to mention other media types, etc. Core or even other lazyload modules don\u0027t address them all, Blazy does.\u003C\/li\u003E\n\u003Cli\u003E\u003Cstrong\u003EQ\u003C\/strong\u003E: \u003Cem\u003EWhat is the correlation between lazy loading and Blazy Grid for texts and Views fields\/ contents? Texts don\u0027t lazy load. \u003C\/em\u003E\u003Cbr\u003E\n\u003Cstrong\u003EA\u003C\/strong\u003E: The focus is lazy loading as noted in the \u003Cstrong\u003EFeatures\u003C\/strong\u003E. Around lazy loading, we have requirements to make image\/ media fields displayed in a grid such as lightbox galleries. Grid for Texts and Views are just bonuses thanks to re-usability. Grid is also the recommended alternative to carousels based on some A\/B testings.\u003C\/li\u003E\n\u003Cli\u003E\u003Cstrong\u003EQ\u003C\/strong\u003E: \u003Cem\u003EI don\u0027t use Media, why required?\u003C\/em\u003E\u003Cbr\u003E\n\u003Cstrong\u003EA\u003C\/strong\u003E: When you add a new plain old image says at \u003Ccode\u003E\/admin\/structure\/types\/manage\/page\/fields\/add-field\u003C\/code\u003E, Drupal speaks authoritatively:\u003Cbr\u003E\n\u003Cem\u003EUse \u003Cstrong\u003EMedia\u003C\/strong\u003E reference fields for most files, images, audio, videos, and remote media. Use \u003Cstrong\u003EFile\u003C\/strong\u003E or \u003Cstrong\u003EImage\u003C\/strong\u003E reference fields when creating your own media types, or for legacy files and images created before enabling the Media module. For more information, see the Media help page.\u003C\/em\u003E\n\u003C\/li\u003E\n\u003Cli\u003E\u003Cstrong\u003EQ\u003C\/strong\u003E: \u003Cem\u003EWhy are many modules dependent on Blazy?\u003C\/em\u003E\u003Cbr\u003E\n\u003Cstrong\u003EA\u003C\/strong\u003E: Read more 5-year-old noble intentions \u003Ca href=\u0022https:\/\/git.drupalcode.org\/project\/blazy\/-\/tree\/8.x-1.0-alpha2\/src\/Dejavu\u0022 rel=\u0022nofollow\u0022\u003Ehere\u003C\/a\u003E. Shortly, DRY.\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022blazy-known-issues-01\u0022\u003EKnown issues\/ limitations\u003C\/h2\u003E\n\u003Cul\u003E\n\u003Cli\u003EBlazy formatter embedded\/ rewritten within Views UI \u003Cstrong\u003ERewrite results\u003C\/strong\u003E has issues, check \u003Ca href=\u0022https:\/\/drupal.org\/node\/2930084\u0022 rel=\u0022nofollow\u0022\u003Ethis\u003C\/a\u003E and \u003Ca href=\u0022https:\/\/www.drupal.org\/node\/2908861\u0022 rel=\u0022nofollow\u0022\u003Ethat\u003C\/a\u003E out.\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/git.drupalcode.org\/project\/blazy\/blob\/7.x-1.x\/docs\/README.md#known-issues\u0022 rel=\u0022nofollow\u0022\u003EBlazy 7.x installation with autoloader\u003C\/a\u003E.\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cdiv\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022update-sop\u0022\u003EUpdate SOP\u003C\/h2\u003E\n\u003Cp\u003ERead \u003Ca href=\u0022https:\/\/git.drupalcode.org\/project\/blazy\/-\/blob\/3.0.x\/docs\/UPDATING.md?ref_type=heads\u0022 rel=\u0022nofollow\u0022\u003Eupdate SOP\u003C\/a\u003E whenever updating Blazy and its related modules.\u003C\/p\u003E\n\u003Cp\u003EWhenever updating Blazy, please make sure Blazy\u0027s sub-modules are updated to their latest versions as well, \u003Ca href=\u0022https:\/\/git.drupalcode.org\/project\/blazy\/-\/blob\/3.0.x\/docs\/README.md?ref_type=heads#-first-things-first\u0022 rel=\u0022nofollow\u0022\u003Eread more\u003C\/a\u003E.\n\u003C\/p\u003E\u003C\/div\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022blazy-issues-01\u0022\u003ESubmitting issues or patches\u003C\/h2\u003E\n\u003Cp\u003EPlease check \u003Ca href=\u0022https:\/\/git.drupalcode.org\/project\/blazy\/-\/blob\/3.0.x\/docs\/CONTRIBUTION.md?ref_type=heads#submitting-patches-or-issues\u0022 rel=\u0022nofollow\u0022\u003Ethis\u003C\/a\u003E out before submitting issues, or patches.\u003C\/p\u003E\n\u003Cdiv class=\u0022note-version\u0022\u003E\n\u003Ch4 id=\u0022blazy-upgrade-01\u0022\u003EUpgrading from 1.x to 2.x or 3+\u003C\/h4\u003E\n\u003Cp\u003EUpgrading from 1.x is not supported, yet. Meaning it will not automatically work without fixing the caveats below. Yet hardly an issue seeing the 2.x increasing installs.\u003C\/p\u003E\n\u003Cp\u003EShould you need to upgrade, to minimize issues, do it one at a time, sequential, not parallel:\u003C\/p\u003E\n\u003Col\u003E\n\u003Cli\u003ECore Drupal\u003C\/li\u003E\n\u003Cli\u003ECore Media (auto-installed, yet install it beforehand for safety)\u003C\/li\u003E\n\u003Cli\u003EMedia entity (ME)\u003C\/li\u003E\n\u003Cli\u003EVideo Embed Field (VEF)\u003C\/li\u003E\n\u003Cli\u003EBlazy and sub-modules (must be parallel here and match branch numbers _if available: 2.x for 2.x, etc.)\u003C\/li\u003E\n\u003C\/ol\u003E\n\u003Cdiv\u003E\n\u003Cstrong\u003EBe sure you succeed on upgrading them before proceeding to Blazy!\u003C\/strong\u003E\u003Cbr\u003E\nMost reported issues are if you have ME and VEF. Both are \u003Ccode\u003Eoptional\u003C\/code\u003E integrations, the main reason for sequential upgrade, not Blazy\u0027s requirements.\n\u003Cp\u003EIf you don\u0027t have them, a matter of matching sub-module branches.\n\u003C\/p\u003E\u003C\/div\u003E\n\u003Ch3 id=\u0022sequential-number-is-expected\u0022\u003ESequential number is expected: \u003C\/h3\u003E\n\u003Cp\u003E1.x -\u0026gt; 2.x (contains deprecated stuffs to avoid WSOD) -\u0026gt; 3+.\u003Cbr\u003E\nJumping from 1.x to 3.x, bypassing 2.x, may likely cause WSOD due to added\/ removed services, formatters, database updates, etc. which must be checked and performed in 2.x.\u003C\/p\u003E\n\u003Cp\u003ENew sites starting with branches 2.x or 3.x post D8.6 with core Media should be no issues here on.\u003C\/p\u003E\n\u003Ch3 id=\u0022preparations\u0022\u003EPreparations:\u003C\/h3\u003E\n\u003Cul\u003E\n\u003Cli\u003EPrepare for the worst! Backup aka restore point.\u003C\/li\u003E\n\u003Cli\u003EInspirations: \u003Ca href=\u0022https:\/\/www.drupal.org\/node\/3127793\u0022 rel=\u0022nofollow\u0022\u003Ehappy\u003C\/a\u003E or \u003Ca href=\u0022https:\/\/www.drupal.org\/node\/3046291\u0022 rel=\u0022nofollow\u0022\u003Esad\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/node\/3103018\u0022 rel=\u0022nofollow\u0022\u003EChange records\u003C\/a\u003E: Twig, CSS and custom Breakpoints removed for core Responsive image. Deprecated stuffs, including formatters, are intact at 2.x to avoid WSOD till you have time to change them-- gone at 3.x, though.\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Ch3 id=\u0022execution\u0022\u003EExecution:\u003C\/h3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Ccode\u003Edrush cr\u003C\/code\u003E \u003Ccode\u003Edrush updb\u003C\/code\u003E \u003Ccode\u003Edrush cr\u003C\/code\u003E for each sequence. Or see \u003Ca href=\u0022https:\/\/git.drupalcode.org\/project\/blazy\/-\/blob\/3.0.x\/docs\/UPDATING.md?ref_type=heads\u0022 rel=\u0022nofollow\u0022\u003Eupdate SOP\u003C\/a\u003E for details. _If CLI \u003Ccode\u003Edrush updb\u003C\/code\u003E failed, as a few reported, try Drupal UI. At best, \u003Ccode\u003Edrush cr\u003C\/code\u003E, hardly failed.\u003C\/li\u003E\n\u003Cli\u003EOnly if any issues, re-visit Blazy, Field or Views UI for new options, and re-save them as needed.\u003C\/li\u003E\n\u003Cli\u003EIt should (hopefully) be as easy as upgrading Drupal. Best wishes!\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Ch3 id=\u0022common-error-causes\u0022\u003ECommon error causes:\u003C\/h3\u003E\n\u003Cp\u003EMostly due to added\/ removed services not being recognized.\u003C\/p\u003E\n\u003Cul\u003E\n\u003Cli\u003EFailing to clear cache.\u003C\/li\u003E\n\u003Cli\u003EParallel upgrade. On the contrary, Blazy and sub-modules require parallel one.\u003C\/li\u003E\n\u003Cli\u003EMismatched Blazy sub-module branches.\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Ch3 id=\u0022blazy-upgrade3-01\u0022\u003EUpgrading from 2.x or 3+\u003C\/h3\u003E\n\u003Cp\u003EBe sure to first update old Blazy and it\u0027s sub-modules to the latest 2.x, and fix Blazy error, if any, at admin status reports page before running the following.\u003C\/p\u003E\n\u003Cp\u003E\u003Ccode\u003Ecomposer require drupal\/slick_extras:^2.0 drupal\/slick_views:^3.0 drupal\/slick:^3.0 drupal\/blazy:^3.0 -W -n\u003C\/code\u003E\u003C\/p\u003E\n\u003Cp\u003Edrush cr\u003Cbr\u003E\ndrush updb\u003Cbr\u003E\ndrush cr\u003C\/p\u003E\n\u003Cp\u003EThis is what parallel upgrade is -- composer require them all once. Remove or add more sub-modules as needed. \u003Ccode\u003E-W -n\u003C\/code\u003E is not required, but handy and quick.\u003C\/p\u003E\n\u003Cp\u003EBlazy 3.x moved Blazy UI sub-module into a sub-folder. No issues for composer as long as you follow \u003Cstrong\u003EUpdate SOP\u003C\/strong\u003E. Yet see \u003Cstrong\u003EOOT\u003C\/strong\u003E section below, or more in \u003Ca href=\u0022https:\/\/git.drupalcode.org\/project\/blazy\/-\/blob\/3.0.x\/docs\/UPDATING.md?ref_type=heads#wsod-worst-case-update-sop\u0022 rel=\u0022nofollow\u0022\u003Eupdate SOP \u0026gt; WSOD\u003C\/a\u003E  if any issues.\u003C\/p\u003E\n\u003Cp\u003EOnly if you were still using VEF and stuck for a reason. Steps:\u003C\/p\u003E\n\u003Cul\u003E\n\u003Cli\u003EReplace Blazy Video (deprecated) formatter with \u003Ca href=\u0022https:\/\/www.drupal.org\/project\/blazy_video_embed_field\u0022 rel=\u0022nofollow\u0022\u003EBVEF\u003C\/a\u003E at Field or Views UI before upgrading to 3.x.\u003C\/li\u003E\n\u003Cli\u003EProceed with upgrade steps as outlined above, excluding Media (Entity) and VEF.\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cp\u003EFailing to clear cache and mismatched branches are the most potential errors here on.\u003Cbr\u003E\nPotential oversight for manual FTP upgrade. For Composer, it is smart and helpful with suggestions before proceeding to not trespass\/ mismatch branches. See OOT below.\u003C\/p\u003E\n\u003Ch3 id=\u0022blazy-bc-01\u0022\u003ENotable lingering 1.x issues and fixes on 3.x\u003C\/h3\u003E\n\u003Cp\u003EYou are here at Blazy 3.x, and only applicable if Blazy formatter 1.x-2.x is never re-saved till 3.x since the removal of Breakpoints option at last 2.x-RC (8.x-2.0-rc7). \u003C\/p\u003E\n\u003Cp\u003ESkip if Breakpoints option is never in sight (2.0 full release).\u003C\/p\u003E\n\u003Cp\u003EThe removal of old 1.x Breakpoints for Responsive image, see \u003Cstrong\u003EPreparations\u003C\/strong\u003E section above, may cause saving 3.x forms fail. It was no issues at 2.x, but would be at 3.x, when deprecated stuffs were removed.\u003Cbr\u003E\n\u003Cstrong\u003ESolutions\u003C\/strong\u003E:\u003C\/p\u003E\n\u003Cul\u003E\n\u003Cli\u003EOpen Blazy formatter form whether in Field UI Manage display, or Views UI LHS pages.\u003C\/li\u003E\n\u003Cli\u003EHit Update or Apply buttons. This is the only cure to sync database and codebase.\u003C\/li\u003E\n\u003Cli\u003ESave the form.\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cp\u003EThis is another reason why 1.x upgrade is not supported due to no upgrade path is provided. The fix above is fairly easy, though.\u003C\/p\u003E\n\u003Ch3 id=\u0022blazy-oot-01\u0022\u003EOOT: FTP or GIT Upgrades\u003C\/h3\u003E\n\u003Cp\u003EIf using Composer locally, but using FTP or GIT repo (e.g. cPanel commands pulling from GIT) on productions, be sure to selectively \u003Cstrong\u003Edelete\u003C\/strong\u003E (manually or with commands) old folders first, not merging the new folders with the old ones. Merging folders (normally where PHP lives like vendor, core, modules, themes, etc.) will definitely cause issues and headaches due to likely namespace re-location or organization. Composer takes care of old folder deletion, but not FTP nor GIT repo pull via cPanel, etc.\n\u003C\/p\u003E\u003C\/div\u003E\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\u003C\/div\u003E","summary":"Provides integration with bLazy and other tools to reduce page load times and save bandwidth. This improves user experience especially on mobile devices. "},"field_active_installs":"{\u00228.x-1.x\u0022:2638,\u00228.x-2.x\u0022:21047,\u00223.0.x\u0022:48199}","field_active_installs_total":71884,"field_composer_namespace":"drupal\/blazy","field_core_semver_maximum":12999999,"field_core_semver_minimum":8000000,"field_issue_summary_template":null,"field_logo_url":{"uri":"https:\/\/git.drupalcode.org\/project\/blazy\/-\/avatar","title":null,"options":[]},"field_project_has_releases":true,"field_project_machine_name":"blazy","field_security_advisory_coverage":"covered"},"relationships":{"uid":{"data":{"type":"user--user","id":"5ed154af-9c4f-4050-a567-1ac169f73f5c","meta":{"drupal_internal__target_id":159062}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/cb9ce805-f909-4892-90a7-7f48e6764b55\/uid?resourceVersion=id%3A20037666"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/cb9ce805-f909-4892-90a7-7f48e6764b55\/relationships\/uid?resourceVersion=id%3A20037666"}}},"field_development_status":{"data":{"type":"taxonomy_term--development_status","id":"e767288c-9800-4fb4-aeb8-8c311533838a","meta":{"drupal_internal__target_id":27274}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/cb9ce805-f909-4892-90a7-7f48e6764b55\/field_development_status?resourceVersion=id%3A20037666"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/cb9ce805-f909-4892-90a7-7f48e6764b55\/relationships\/field_development_status?resourceVersion=id%3A20037666"}}},"field_maintenance_status":{"data":{"type":"taxonomy_term--maintenance_status","id":"cee844e2-68b5-489d-bafa-6a0ade2b6dfd","meta":{"drupal_internal__target_id":27273}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/cb9ce805-f909-4892-90a7-7f48e6764b55\/field_maintenance_status?resourceVersion=id%3A20037666"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/cb9ce805-f909-4892-90a7-7f48e6764b55\/relationships\/field_maintenance_status?resourceVersion=id%3A20037666"}}},"field_module_categories":{"data":[{"type":"taxonomy_term--module_categories","id":"3322058a-a158-4806-ac5b-9bcabc95edac","meta":{"drupal_internal__target_id":185}},{"type":"taxonomy_term--module_categories","id":"68428c33-1db7-438d-b1b3-e23004e0982b","meta":{"drupal_internal__target_id":192}},{"type":"taxonomy_term--module_categories","id":"d1322ab4-e2be-4f21-9e01-8c19b3da8bea","meta":{"drupal_internal__target_id":197}}],"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/cb9ce805-f909-4892-90a7-7f48e6764b55\/field_module_categories?resourceVersion=id%3A20037666"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/cb9ce805-f909-4892-90a7-7f48e6764b55\/relationships\/field_module_categories?resourceVersion=id%3A20037666"}}},"field_project_images":{"data":[{"type":"file--file","id":"8352c22a-ee54-485d-97c8-827b101be8a1","meta":{"alt":"Blazy simple Native Grid","title":null,"width":1055,"height":478,"drupal_internal__target_id":32102}}],"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/cb9ce805-f909-4892-90a7-7f48e6764b55\/field_project_images?resourceVersion=id%3A20037666"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/cb9ce805-f909-4892-90a7-7f48e6764b55\/relationships\/field_project_images?resourceVersion=id%3A20037666"}}}}},{"type":"node--project_module","id":"18f9c8ce-7b05-4c03-9aff-869bf761f16c","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/18f9c8ce-7b05-4c03-9aff-869bf761f16c?resourceVersion=id%3A20030563"},"working-copy":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/18f9c8ce-7b05-4c03-9aff-869bf761f16c?resourceVersion=rel%3Aworking-copy"}},"attributes":{"drupal_internal__nid":2239435,"status":true,"title":"Entity Embed","created":"2014-04-13T00:13:27+00:00","changed":"2026-04-07T05:20:02+00:00","moderation_state":null,"body":{"value":"Entity Embed allows any entity to be embedded within a text area using a WYSIWYG editor.\r\n\r\n\u003Ch2\u003E\r\n  Requirements\r\n\u003C\/h2\u003E\r\n\r\n\u003Ch3\u003E8.x-1.x\u003C\/h3\u003E\r\n\r\n\u003Cul\u003E\r\n  \u003Cli\u003EEditor (included with Drupal core).\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022\/project\/embed\u0022\u003EEmbed\u003C\/a\u003E\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\r\n\u003Ch3\u003E7.x-3.x\u003C\/h3\u003E\r\n\r\n\u003Cul\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022\/project\/editor\u0022\u003EEditor\u003C\/a\u003E\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022\/project\/entityreference\u0022\u003EEntity Reference\u003C\/a\u003E\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\r\n\u003Ch2\u003E\r\n  Installation\r\n\u003C\/h2\u003E\r\n\r\n\u003Cul\u003E\r\n  \u003Cli\u003EEntity Embed can be installed via the \u003Ca href=\u0022http:\/\/drupal.org\/node\/895232\u0022\u003Estandard Drupal installation process\u003C\/a\u003E.\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\r\n\u003Ch2\u003E\r\n  Configuration\r\n\u003C\/h2\u003E\r\n\r\n\u003Cul\u003E\r\n  \u003Cli\u003EGo to the \u003Cem\u003EText formats and editors\u003C\/em\u003E configuration page: \u003Ccode\u003E\/admin\/config\/content\/formats\u003C\/code\u003E, and for each text format\/editor combo where you want to embed entities, do the following:\r\n    \u003Cul\u003E\r\n      \u003Cli\u003EEnable the \u003Cem\u003EDisplay embedded entities\u003C\/em\u003E filter for the desired text formats on the Text Formats configuration page.\u003C\/li\u003E\r\n      \u003Cli\u003EDrag and drop the \u0027E\u0027 button into the Active toolbar.\u003C\/li\u003E\r\n      \u003Cli\u003EIf the text format uses the \u003Cem\u003ELimit allowed HTML tags and correct faulty HTML\u003C\/em\u003E filter, ensure the necessary tags and attributes were automatically added:\r\n    \u003Ccode\u003E\u003Cdrupal-entity data-entity-type data-entity-uuid data-view-mode data-entity-embed-display data-entity-embed-display-settings data-align data-caption data-embed-button data-langcode alt title\u003E\u003C\/code\u003E appears in the \u003Cem\u003EAllowed HTML tags\u003C\/em\u003E setting.\u003C\/li\u003E\r\n      \u003Cli\u003EIf you\u0027re using both the \u003Cem\u003EAlign images\u003C\/em\u003E and \u003Cem\u003ECaption images\u003C\/em\u003E filters make sure the \u003Cem\u003EAlign images\u003C\/em\u003E filter is run before the \u003Cem\u003ECaption images\u003C\/em\u003E filter in the \u003Cstrong\u003EFilter processing order\u003C\/strong\u003E section. (Explanation: Due to the implementation details of the two filters it is important to execute them in the right sequence in order to obtain a sensible final markup. In practice this means that the alignment filter has to be run before the caption filter, otherwise the alignment class will appear inside the \u003Ccode\u003E\u003Cfigure\u003E\u003C\/code\u003E tag (instead of appearing on it) the caption filter produces.)\u003C\/li\u003E\r\n    \u003C\/ul\u003E\r\n  \u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\r\n\u003Cstrong\u003ENotice\u003C\/strong\u003E: If you were using the module in very early pre-alpha stages you might need to add \u003Ccode\u003Edata-entity-id\u003C\/code\u003E to the list of allowed attributes. Similarly, if you have been using the module in pre-beta stages, you need to add the \u003Ccode\u003Edata-entity-embed-settings\u003C\/code\u003E attribute.\r\n\r\nThe 7.x releases always require the \u003Ccode\u003Edata-entity-id\u003C\/code\u003E attribute.\r\n\r\n\u003Ch2\u003EResources\u003C\/h2\u003E\r\n\r\n\u003Cul\u003E\r\n \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.youtube.com\/watch?v=T26oz9H-VBY\u0022\u003EDemo video by Chandan Singh\u003C\/a\u003E the incredible GSOC 2014 student who helped drive this module forward.\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\r\n\u003Ch2\u003ERelated Modules\u003C\/h2\u003E\r\n\r\n\u003Cul\u003E\r\n \u003Cli\u003E\u003Ca href=\u0022\/project\/url_embed\u0022\u003EURL Embed\u003C\/a\u003E: allows URLs to be embedded within a text area using a WYSIWYG editor.\u003C\/li\u003E\r\n \u003Cli\u003E\u003Ca href=\u0022\/project\/entity_browser\u0022\u003EEntity Browser\u003C\/a\u003E: When enabled, offers a more advanced embedded entity selection workflow.\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022\/project\/media\u0022\u003EMedia\u003C\/a\u003E: When embedding file entities, allows files to be selected using the media browser.\u003C\/li\u003E\r\n\u003C\/ul\u003E","format":"1","processed":"\u003Cdiv class=\u0022toc-filter\u0022\u003E\u003Cp\u003EEntity Embed allows any entity to be embedded within a text area using a WYSIWYG editor.\u003C\/p\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022requirements\u0022\u003E\n  Requirements\n\u003C\/h2\u003E\n\u003Ch3 id=\u0022x-1-x\u0022\u003E8.x-1.x\u003C\/h3\u003E\n\u003Cul\u003E\n\u003Cli\u003EEditor (included with Drupal core).\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022\/project\/embed\u0022 rel=\u0022nofollow\u0022\u003EEmbed\u003C\/a\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Ch3 id=\u0022x-3-x\u0022\u003E7.x-3.x\u003C\/h3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Ca href=\u0022\/project\/editor\u0022 rel=\u0022nofollow\u0022\u003EEditor\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022\/project\/entityreference\u0022 rel=\u0022nofollow\u0022\u003EEntity Reference\u003C\/a\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022installation\u0022\u003E\n  Installation\n\u003C\/h2\u003E\n\u003Cul\u003E\n\u003Cli\u003EEntity Embed can be installed via the \u003Ca href=\u0022http:\/\/drupal.org\/node\/895232\u0022 rel=\u0022nofollow\u0022\u003Estandard Drupal installation process\u003C\/a\u003E.\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022configuration\u0022\u003E\n  Configuration\n\u003C\/h2\u003E\n\u003Cul\u003E\n\u003Cli\u003EGo to the \u003Cem\u003EText formats and editors\u003C\/em\u003E configuration page: \u003Ccode\u003E\/admin\/config\/content\/formats\u003C\/code\u003E, and for each text format\/editor combo where you want to embed entities, do the following:\n\u003Cul\u003E\n\u003Cli\u003EEnable the \u003Cem\u003EDisplay embedded entities\u003C\/em\u003E filter for the desired text formats on the Text Formats configuration page.\u003C\/li\u003E\n\u003Cli\u003EDrag and drop the \u0027E\u0027 button into the Active toolbar.\u003C\/li\u003E\n\u003Cli\u003EIf the text format uses the \u003Cem\u003ELimit allowed HTML tags and correct faulty HTML\u003C\/em\u003E filter, ensure the necessary tags and attributes were automatically added:\u003Cbr\u003E\n    \u003Ccode\u003E\u003C\/code\u003E appears in the \u003Cem\u003EAllowed HTML tags\u003C\/em\u003E setting.\u003C\/li\u003E\n\u003Cli\u003EIf you\u0027re using both the \u003Cem\u003EAlign images\u003C\/em\u003E and \u003Cem\u003ECaption images\u003C\/em\u003E filters make sure the \u003Cem\u003EAlign images\u003C\/em\u003E filter is run before the \u003Cem\u003ECaption images\u003C\/em\u003E filter in the \u003Cstrong\u003EFilter processing order\u003C\/strong\u003E section. (Explanation: Due to the implementation details of the two filters it is important to execute them in the right sequence in order to obtain a sensible final markup. In practice this means that the alignment filter has to be run before the caption filter, otherwise the alignment class will appear inside the \u003Ccode\u003E\u003Cbr\u003E\n\u003C\/code\u003E tag (instead of appearing on it) the caption filter produces.)\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cp\u003E\u003Cstrong\u003ENotice\u003C\/strong\u003E: If you were using the module in very early pre-alpha stages you might need to add \u003Ccode\u003Edata-entity-id\u003C\/code\u003E to the list of allowed attributes. Similarly, if you have been using the module in pre-beta stages, you need to add the \u003Ccode\u003Edata-entity-embed-settings\u003C\/code\u003E attribute.\u003C\/p\u003E\n\u003Cp\u003EThe 7.x releases always require the \u003Ccode\u003Edata-entity-id\u003C\/code\u003E attribute.\u003C\/p\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022resources\u0022\u003EResources\u003C\/h2\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.youtube.com\/watch?v=T26oz9H-VBY\u0022 rel=\u0022nofollow\u0022\u003EDemo video by Chandan Singh\u003C\/a\u003E the incredible GSOC 2014 student who helped drive this module forward.\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022related-modules\u0022\u003ERelated Modules\u003C\/h2\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Ca href=\u0022\/project\/url_embed\u0022 rel=\u0022nofollow\u0022\u003EURL Embed\u003C\/a\u003E: allows URLs to be embedded within a text area using a WYSIWYG editor.\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022\/project\/entity_browser\u0022 rel=\u0022nofollow\u0022\u003EEntity Browser\u003C\/a\u003E: When enabled, offers a more advanced embedded entity selection workflow.\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022\/project\/media\u0022 rel=\u0022nofollow\u0022\u003EMedia\u003C\/a\u003E: When embedding file entities, allows files to be selected using the media browser.\u003C\/li\u003E\n\u003C\/ul\u003E\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\u003C\/div\u003E","summary":"Entity Embed allows any entity to be embedded within a text area using a WYSIWYG editor."},"field_active_installs":"{\u00228.x-1.x\u0022:65843}","field_active_installs_total":65843,"field_composer_namespace":"drupal\/entity_embed","field_core_semver_maximum":12000000,"field_core_semver_minimum":8000000,"field_issue_summary_template":null,"field_logo_url":null,"field_project_has_releases":true,"field_project_machine_name":"entity_embed","field_security_advisory_coverage":"covered"},"relationships":{"uid":{"data":{"type":"user--user","id":"45aa7efc-40a7-4cd3-a412-723ef2d49285","meta":{"drupal_internal__target_id":3260690}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/18f9c8ce-7b05-4c03-9aff-869bf761f16c\/uid?resourceVersion=id%3A20030563"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/18f9c8ce-7b05-4c03-9aff-869bf761f16c\/relationships\/uid?resourceVersion=id%3A20030563"}}},"field_development_status":{"data":{"type":"taxonomy_term--development_status","id":"e767288c-9800-4fb4-aeb8-8c311533838a","meta":{"drupal_internal__target_id":27274}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/18f9c8ce-7b05-4c03-9aff-869bf761f16c\/field_development_status?resourceVersion=id%3A20030563"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/18f9c8ce-7b05-4c03-9aff-869bf761f16c\/relationships\/field_development_status?resourceVersion=id%3A20030563"}}},"field_maintenance_status":{"data":{"type":"taxonomy_term--maintenance_status","id":"089406ad-304d-4737-80d1-2f08527ae49e","meta":{"drupal_internal__target_id":27271}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/18f9c8ce-7b05-4c03-9aff-869bf761f16c\/field_maintenance_status?resourceVersion=id%3A20030563"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/18f9c8ce-7b05-4c03-9aff-869bf761f16c\/relationships\/field_maintenance_status?resourceVersion=id%3A20030563"}}},"field_module_categories":{"data":[{"type":"taxonomy_term--module_categories","id":"86237004-3801-40cf-96b5-fe7d60efccb5","meta":{"drupal_internal__target_id":187}},{"type":"taxonomy_term--module_categories","id":"68428c33-1db7-438d-b1b3-e23004e0982b","meta":{"drupal_internal__target_id":192}}],"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/18f9c8ce-7b05-4c03-9aff-869bf761f16c\/field_module_categories?resourceVersion=id%3A20030563"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/18f9c8ce-7b05-4c03-9aff-869bf761f16c\/relationships\/field_module_categories?resourceVersion=id%3A20030563"}}},"field_project_images":{"data":[{"type":"file--file","id":"dfad7049-f12d-4ee2-bca8-0b8f7900ac8f","meta":{"alt":"Embedding the Druplicon into a textarea using CKEditor.","title":null,"width":400,"height":794,"drupal_internal__target_id":16052}}],"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/18f9c8ce-7b05-4c03-9aff-869bf761f16c\/field_project_images?resourceVersion=id%3A20030563"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/18f9c8ce-7b05-4c03-9aff-869bf761f16c\/relationships\/field_project_images?resourceVersion=id%3A20030563"}}}}},{"type":"node--project_module","id":"17bfc42b-c7cb-43c2-82a9-b315a0ca8f94","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/17bfc42b-c7cb-43c2-82a9-b315a0ca8f94?resourceVersion=id%3A20036421"},"working-copy":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/17bfc42b-c7cb-43c2-82a9-b315a0ca8f94?resourceVersion=rel%3Aworking-copy"}},"attributes":{"drupal_internal__nid":2571403,"status":true,"title":"Image Widget Crop","created":"2015-09-19T16:51:52+00:00","changed":"2026-04-07T05:20:02+00:00","moderation_state":null,"body":{"value":"Provides an interface for using the features of the \u003Ca href=\u0022https:\/\/www.drupal.org\/project\/crop\u0022\u003ECrop API\u003C\/a\u003E. This element provides an UX for using a crop on all fields images or file elements. This module has particularity to purpose capability to crop the same image by \u201cCrop type\u201d configured. It\u2019s very useful for editorial sites or media management sites.\r\n\r\n\u003Ch3 id=\u0022project-requirements\u0022\u003ERequirements\u003C\/h3\u003E \r\n\r\n\u003Cstrong\u003EModule \u003Ca href=\u0022https:\/\/www.drupal.org\/project\/crop\u0022\u003ECrop API\u003C\/a\u003E\u003C\/strong\u003E. \u003Cstrong\u003ELibrary \u003Ca href=\u0022https:\/\/github.com\/fengyuanchen\/cropper\u0022\u003ECropper\u003C\/a\u003E\u003C\/strong\u003E.\r\n\r\n\u003Ch3 id=\u0022project-recommended\u0022\u003ERecommended modules\u003C\/h3\u003E\r\nAll of these modules are supported and tested with Image Widget Crop.\r\n\r\n\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/crop\u0022\u003ECrop API\u003C\/a\u003E : Provides basic API for images cropping.\r\n\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/imce\u0022\u003EIMCE\u003C\/a\u003E : Now supported by all versions of Image Widget Crop. We just have an option to enable of image_crop elements to use it.\r\n\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/filefield_paths\u0022\u003EFile (Field) Paths\u003C\/a\u003E : We support this module and work with Image Widget Crop.\r\n\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/bootstrap\u0022\u003EBootstrap\u003C\/a\u003E : During lot of efforts to made compatibility with Boostrap all themes are compatible with Image Widget Crop Thank to @markcarver for his precious help.\r\n\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/entity_browser\u0022\u003EEntity Browser\u003C\/a\u003E : Fully supported by this module.\r\n\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/file_entity\u0022\u003EFile Entity (fieldable files)\u003C\/a\u003E : Fully compatible with this module too.\r\n\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/automated_crop\u0022\u003EAutomated Crop\u003C\/a\u003E : Soon Image Widget Crop use this service to provide a powerful feature (Automatic crop).\r\n\r\n\u003Ch3\u003EHow to contribute\u003C\/h3\u003E\r\n\r\nCheck \u003Ca href=\u0022https:\/\/www.drupal.org\/node\/2832789\u0022\u003Eroadmap\u003C\/a\u003E meta issue in order to see what current focus of development is.\r\n\r\nIf you find any flaws, please \u003Ca href=\u0022https:\/\/www.drupal.org\/project\/issues\/image_widget_crop\u0022\u003Esubmit an issue\u003C\/a\u003E. \r\n\r\n\u003Ch3 id=\u0022project-maintainers\u0022\u003EProject maintainers\u003C\/h3\u003E\r\n\u003Cul\u003E\r\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/user\/858604\u0022\u003Ewoprrr\u003C\/a\u003E\u003C\/li\u003E\r\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/user\/744628\u0022\u003Eslashrsm\u003C\/a\u003E\u003C\/li\u003E \r\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/user\/1001934\u0022\u003Edqd\u003C\/a\u003E\u003C\/li\u003E\r\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/user\/205645\u0022\u003Ephenaproxima\u003C\/a\u003E\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\r\n\u003Ca href=\u0022https:\/\/www.browserstack.com\/\u0022\u003E\u003Cimg src=\u0022\/files\/browserstack-logo-600x315.png\u0022 alt=\u0022\u0022 width=\u0022200\u0022 \/\u003E\u003C\/a\u003E \r\nThanks to \u003Ca href=\u0022https:\/\/www.browserstack.com\/\u0022\u003Ebrowserstack.com\u003C\/a\u003E for help by testing our UI.\r\n\r\n\u003Ch4\u003EAcknowledgements\u003C\/h4\u003E\r\n\r\nSpecial Thanks to \u003Ca href=\u0022https:\/\/www.drupal.org\/user\/744628\u0022\u003EJanez Urevc (@slashrsm)\u003C\/a\u003E for his support and mentoring.\r\n\r\n\u003Ch3 id=\u0022project-related\u0022\u003ESimilar projects and how they are different\u003C\/h3\u003E \r\n\r\n\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/focal_point\u0022\u003EFocal Point\u003C\/a\u003E : Different because this is a focal approach to crop image. But similar by using Crop API too.\r\n","format":"1","processed":"\u003Cdiv class=\u0022toc-filter\u0022\u003E\u003Cp\u003EProvides an interface for using the features of the \u003Ca href=\u0022https:\/\/www.drupal.org\/project\/crop\u0022 rel=\u0022nofollow\u0022\u003ECrop API\u003C\/a\u003E. This element provides an UX for using a crop on all fields images or file elements. This module has particularity to purpose capability to crop the same image by \u201cCrop type\u201d configured. It\u2019s very useful for editorial sites or media management sites.\u003C\/p\u003E\n\u003Ch3 id=\u0022project-requirements-01\u0022\u003ERequirements\u003C\/h3\u003E\n\u003Cp\u003E\u003Cstrong\u003EModule \u003Ca href=\u0022https:\/\/www.drupal.org\/project\/crop\u0022 rel=\u0022nofollow\u0022\u003ECrop API\u003C\/a\u003E\u003C\/strong\u003E. \u003Cstrong\u003ELibrary \u003Ca href=\u0022https:\/\/github.com\/fengyuanchen\/cropper\u0022 rel=\u0022nofollow\u0022\u003ECropper\u003C\/a\u003E\u003C\/strong\u003E.\u003C\/p\u003E\n\u003Ch3 id=\u0022project-recommended-01\u0022\u003ERecommended modules\u003C\/h3\u003E\n\u003Cp\u003EAll of these modules are supported and tested with Image Widget Crop.\u003C\/p\u003E\n\u003Cp\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/crop\u0022 rel=\u0022nofollow\u0022\u003ECrop API\u003C\/a\u003E : Provides basic API for images cropping.\u003Cbr\u003E\n\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/imce\u0022 rel=\u0022nofollow\u0022\u003EIMCE\u003C\/a\u003E : Now supported by all versions of Image Widget Crop. We just have an option to enable of image_crop elements to use it.\u003Cbr\u003E\n\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/filefield_paths\u0022 rel=\u0022nofollow\u0022\u003EFile (Field) Paths\u003C\/a\u003E : We support this module and work with Image Widget Crop.\u003Cbr\u003E\n\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/bootstrap\u0022 rel=\u0022nofollow\u0022\u003EBootstrap\u003C\/a\u003E : During lot of efforts to made compatibility with Boostrap all themes are compatible with Image Widget Crop Thank to @markcarver for his precious help.\u003Cbr\u003E\n\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/entity_browser\u0022 rel=\u0022nofollow\u0022\u003EEntity Browser\u003C\/a\u003E : Fully supported by this module.\u003Cbr\u003E\n\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/file_entity\u0022 rel=\u0022nofollow\u0022\u003EFile Entity (fieldable files)\u003C\/a\u003E : Fully compatible with this module too.\u003Cbr\u003E\n\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/automated_crop\u0022 rel=\u0022nofollow\u0022\u003EAutomated Crop\u003C\/a\u003E : Soon Image Widget Crop use this service to provide a powerful feature (Automatic crop).\u003C\/p\u003E\n\u003Ch3 id=\u0022how-to-contribute\u0022\u003EHow to contribute\u003C\/h3\u003E\n\u003Cp\u003ECheck \u003Ca href=\u0022https:\/\/www.drupal.org\/node\/2832789\u0022 rel=\u0022nofollow\u0022\u003Eroadmap\u003C\/a\u003E meta issue in order to see what current focus of development is.\u003C\/p\u003E\n\u003Cp\u003EIf you find any flaws, please \u003Ca href=\u0022https:\/\/www.drupal.org\/project\/issues\/image_widget_crop\u0022 rel=\u0022nofollow\u0022\u003Esubmit an issue\u003C\/a\u003E. \u003C\/p\u003E\n\u003Ch3 id=\u0022project-maintainers-01\u0022\u003EProject maintainers\u003C\/h3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/user\/858604\u0022 rel=\u0022nofollow\u0022\u003Ewoprrr\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/user\/744628\u0022 rel=\u0022nofollow\u0022\u003Eslashrsm\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/user\/1001934\u0022 rel=\u0022nofollow\u0022\u003Edqd\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/user\/205645\u0022 rel=\u0022nofollow\u0022\u003Ephenaproxima\u003C\/a\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cp\u003E\u003Ca href=\u0022https:\/\/www.browserstack.com\/\u0022 rel=\u0022nofollow\u0022\u003E\u003Cimg src=\u0022\/core\/misc\/icons\/e32700\/error.svg\u0022 alt=\u0022Image removed.\u0022 width=\u002216\u0022 title=\u0022This image has been removed. For security reasons, only images from the local domain are allowed.\u0022 height=\u002216\u0022 class=\u0022filter-image-invalid\u0022\u003E\u003C\/a\u003E\u003Cbr\u003E\nThanks to \u003Ca href=\u0022https:\/\/www.browserstack.com\/\u0022 rel=\u0022nofollow\u0022\u003Ebrowserstack.com\u003C\/a\u003E for help by testing our UI.\u003C\/p\u003E\n\u003Ch4 id=\u0022acknowledgements\u0022\u003EAcknowledgements\u003C\/h4\u003E\n\u003Cp\u003ESpecial Thanks to \u003Ca href=\u0022https:\/\/www.drupal.org\/user\/744628\u0022 rel=\u0022nofollow\u0022\u003EJanez Urevc (@slashrsm)\u003C\/a\u003E for his support and mentoring.\u003C\/p\u003E\n\u003Ch3 id=\u0022project-related-01\u0022\u003ESimilar projects and how they are different\u003C\/h3\u003E\n\u003Cp\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/focal_point\u0022 rel=\u0022nofollow\u0022\u003EFocal Point\u003C\/a\u003E : Different because this is a focal approach to crop image. But similar by using Crop API too.\u003C\/p\u003E\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\u003C\/div\u003E","summary":""},"field_active_installs":"{\u00228.x-1.x\u0022:205,\u00228.x-2.x\u0022:37825,\u00223.0.x\u0022:25038}","field_active_installs_total":63068,"field_composer_namespace":"drupal\/image_widget_crop","field_core_semver_maximum":12000000,"field_core_semver_minimum":8000000,"field_issue_summary_template":null,"field_logo_url":null,"field_project_has_releases":true,"field_project_machine_name":"image_widget_crop","field_security_advisory_coverage":"covered"},"relationships":{"uid":{"data":{"type":"user--user","id":"29ec3ae7-ffa3-4a34-8950-5f35a15607b6","meta":{"drupal_internal__target_id":858604}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/17bfc42b-c7cb-43c2-82a9-b315a0ca8f94\/uid?resourceVersion=id%3A20036421"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/17bfc42b-c7cb-43c2-82a9-b315a0ca8f94\/relationships\/uid?resourceVersion=id%3A20036421"}}},"field_development_status":{"data":{"type":"taxonomy_term--development_status","id":"e767288c-9800-4fb4-aeb8-8c311533838a","meta":{"drupal_internal__target_id":27274}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/17bfc42b-c7cb-43c2-82a9-b315a0ca8f94\/field_development_status?resourceVersion=id%3A20036421"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/17bfc42b-c7cb-43c2-82a9-b315a0ca8f94\/relationships\/field_development_status?resourceVersion=id%3A20036421"}}},"field_maintenance_status":{"data":{"type":"taxonomy_term--maintenance_status","id":"089406ad-304d-4737-80d1-2f08527ae49e","meta":{"drupal_internal__target_id":27271}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/17bfc42b-c7cb-43c2-82a9-b315a0ca8f94\/field_maintenance_status?resourceVersion=id%3A20036421"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/17bfc42b-c7cb-43c2-82a9-b315a0ca8f94\/relationships\/field_maintenance_status?resourceVersion=id%3A20036421"}}},"field_module_categories":{"data":[{"type":"taxonomy_term--module_categories","id":"754c04cb-6da2-42ba-9032-d64307f68f45","meta":{"drupal_internal__target_id":188}},{"type":"taxonomy_term--module_categories","id":"68428c33-1db7-438d-b1b3-e23004e0982b","meta":{"drupal_internal__target_id":192}}],"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/17bfc42b-c7cb-43c2-82a9-b315a0ca8f94\/field_module_categories?resourceVersion=id%3A20036421"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/17bfc42b-c7cb-43c2-82a9-b315a0ca8f94\/relationships\/field_module_categories?resourceVersion=id%3A20036421"}}},"field_project_images":{"data":[{"type":"file--file","id":"eb984425-09cf-4a2f-8b63-1e43800efd34","meta":{"alt":"Image Widget Crop","title":null,"width":512,"height":512,"drupal_internal__target_id":17446}}],"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/17bfc42b-c7cb-43c2-82a9-b315a0ca8f94\/field_project_images?resourceVersion=id%3A20036421"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/17bfc42b-c7cb-43c2-82a9-b315a0ca8f94\/relationships\/field_project_images?resourceVersion=id%3A20036421"}}}}},{"type":"node--project_module","id":"f2dbd363-ad38-4500-8df0-509f55dc31aa","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/f2dbd363-ad38-4500-8df0-509f55dc31aa?resourceVersion=id%3A20030433"},"working-copy":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/f2dbd363-ad38-4500-8df0-509f55dc31aa?resourceVersion=rel%3Aworking-copy"}},"attributes":{"drupal_internal__nid":2232779,"status":true,"title":"Slick Carousel","created":"2014-04-03T20:10:49+00:00","changed":"2026-04-07T05:20:02+00:00","moderation_state":null,"body":{"value":"\u003Cp\u003ESlick is a \u003Ca href=\u0022#slick-troubleshooting\u0022\u003Epowerful, performant, and fully responsive\u003C\/a\u003E carousel integration leveraging \u003Ca href=\u0022http:\/\/kenwheeler.github.io\/slick\u0022\u003EKen Wheeler\u0027s Slick carousel\u003C\/a\u003E. Engineered to satisfy modern \u003Cstrong\u003ECore Web Vitals\u003C\/strong\u003E, it transforms the traditional slideshow into a robust, prioritized media delivery system.\u003C\/p\u003E\r\n\r\n\u003Ch2\u003E\r\n    \u003Ca class=\u0022action-button\u0022 href=\u0022https:\/\/www.drupal.org\/project\/slick_extras\u0022\u003ESamples\u003C\/a\u003E \u003Ca class=\u0022action-button\u0022 href=\u0022http:\/\/kenwheeler.github.io\/slick\/\u0022\u003EDemo\u003C\/a\u003E\r\n\u003C\/h2\u003E\r\n\r\n\u003Cdiv id=\u0022slick-library-warning\u0022 class=\u0022messages warning\u0022\u003E\r\n  \u003Ch2\u003ECritical: Library Version Integrity\u003C\/h2\u003E\r\n  \u003Cul\u003E\r\n    \u003Cli\u003E\u003Cstrong\u003ESupported Versions:\u003C\/strong\u003E \u003Ca href=\u0022https:\/\/github.com\/kenwheeler\/slick\/releases\u0022\u003ESlick library\u003C\/a\u003E (\u003Cstrong\u003E1.6+ and \u003C= 1.8.0\u003C\/strong\u003E).\u003C\/li\u003E\r\n    \u003Cli\u003E\u003Cstrong\u003EVersion Discrepancies:\u003C\/strong\u003E In October 2021, breaking changes and misleading versioning were identified. You must verify that the version in \u003Cstrong\u003Epackage.json\u003C\/strong\u003E matches the version declared within \u003Cstrong\u003Eslick.js\u003C\/strong\u003E. Specifically, release 1.8.1 often contains a misleading \u00221.8.0\u0022 string in the JS file; such versions are unsupported due to these inconsistencies.\u003C\/li\u003E\r\n    \u003Cli\u003E\u003Cstrong\u003EAutomatic Mitigation:\u003C\/strong\u003E Corrective solutions and warnings are provided upon saving option set forms. If using samples, they will remain non-functional until these options are updated. Do not report issues for higher versions as they are unsupported out-of-the-box (OOTB).\u003C\/li\u003E\r\n    \u003Cli\u003E\u003Cstrong\u003ESymptoms of Failure:\u003C\/strong\u003E Broken pagination dots, unwanted anonymous \u003Ccode\u003E\u003Cdiv\u003E\u003C\/code\u003E wrapping, seen \u003Ca href=\u0022https:\/\/www.drupal.org\/files\/issues\/2025-03-26\/screenshot_2025-03-26_at_11_20_17%402x.png\u0022\u003Ehere\u003C\/a\u003E, stacking slides, and out-of-sync navigation given less slides.\u003C\/li\u003E\r\n     \u003Cli\u003E\u003Cstrong\u003EA new branch for 1.8.1+?\u003C\/strong\u003E We should, if any better than 1.6.0. One problem is uncentered\/ out of sync thumbnails given less items.\u003C\/li\u003E\r\n    \u003Cli\u003E\u003Cstrong\u003EThe Battle-Tested Standard:\u003C\/strong\u003E \u003Cstrong\u003EVersion 1.6.0\u003C\/strong\u003E remains the definitive choice for stability. While it lacks minor \u0022non-essential\u0022 features, it provides the most reliable structural foundation.\u003C\/li\u003E\r\n  \u003C\/ul\u003E\r\n\u003C\/div\u003E\r\n\r\n\u003Ch2 id=\u0022slick-requirements\u0022\u003ERequirements\u003C\/h2\u003E\r\n\u003Cul\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/drupal.org\/project\/blazy\u0022\u003EBlazy\u003C\/a\u003E\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/github.com\/kenwheeler\/slick\/releases\u0022\u003ESlick library\u003C\/a\u003E (\u003Cstrong\u003E1.6+ and \u003C= 1.8.0\u003C\/strong\u003E). \u003Ca href=\u0022https:\/\/www.drupal.org\/project\/slick\/issues\/3241495#comment-14251300\u0022\u003ETechnical Context\u003C\/a\u003E.\r\n    \u003Cp\u003E\u003Cem\u003ENote: The Master branch is unsupported. Download an official release and rename the directory to \u003Cstrong\u003Eslick\u003C\/strong\u003E so assets are accessible at:\u003C\/em\u003E\u003C\/p\u003E\r\n    \u003Cul\u003E\r\n      \u003Cli\u003E\u003Ccode\u003E\/libraries\/slick\/slick\/slick.css\u003C\/code\u003E\u003C\/li\u003E\r\n      \u003Cli\u003E\u003Ccode\u003E\/libraries\/slick\/slick\/slick-theme.css\u003C\/code\u003E (Optional)\u003C\/li\u003E\r\n      \u003Cli\u003E\u003Ccode\u003E\/libraries\/slick\/slick\/slick.min.js\u003C\/code\u003E\u003C\/li\u003E\r\n    \u003C\/ul\u003E\r\n    If using composer, it starts with:\r\n\u003Ccode\u003E\/libraries\/slick-carousel\/slick\/\u003C\/code\u003E.\r\nOpen one of them in a browser, ensure no 404 or 403 errors.\r\n  \u003C\/li\u003E\r\n  \u003Cli\u003E\u003Cstrong\u003E[Optional]\u003C\/strong\u003E \u003Ca href=\u0022https:\/\/github.com\/gdsmith\/jquery.easing\u0022\u003Ejqeasing\u003C\/a\u003E at \u003Ccode\u003E\/libraries\/easing\/jquery.easing.min.js\u003C\/code\u003E. (Fallback for legacy browsers; ignorable when utilizing native CSS3 easing).\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\r\n\u003Ch2 id=\u0022slick-installation\u0022\u003EInstallation \u0026 Upgrades\u003C\/h2\u003E\r\n\u003Cul\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/docs\/8\/extending-drupal-8\/installing-drupal-8-modules\u0022\u003EInstallation Manual\u003C\/a\u003E\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Cstrong\u003EComposer:\u003C\/strong\u003E Refer to the \u003Ca href=\u0022https:\/\/git.drupalcode.org\/project\/blazy\/-\/blob\/3.0.x\/docs\/COMPOSER.md\u0022\u003EBlazy Composer Guide\u003C\/a\u003E.\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Cstrong\u003EUpgrade Path:\u003C\/strong\u003E Refer to the \u003Ca href=\u0022https:\/\/www.drupal.org\/project\/blazy#blazy-upgrade\u0022\u003EBlazy Upgrade Path\u003C\/a\u003E\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Ca  id=\u0022slick-update-sop\u0022 href=\u0022https:\/\/git.drupalcode.org\/project\/blazy\/blob\/3.0.x\/docs\/UPDATING.md#update-sop\u0022\u003E\u003Cstrong\u003EUpdate SOP:\u003C\/strong\u003E\u003C\/a\u003E   A definitive guide for update and upgrade troubleshootings, including WSOD.\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\r\n\u003Ch2 id=\u0022slick-features\u0022\u003EFeatures\u003C\/h2\u003E\r\n\u003Cul\u003E\r\n  \u003Cli\u003E\u003Cstrong\u003EDeep Integration:\u003C\/strong\u003E Seamlessly works with Core Media, Views, Paragraphs, Media contribs and Layout Builder.\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Cstrong\u003ELCP \u0026 CLS Management:\u003C\/strong\u003E Engineered for a \u003Cstrong\u003E\u0022CLS-zero\u0022 strategy\u003C\/strong\u003E, our framework integrates \u003Cstrong\u003Esophisticated preloading\u003C\/strong\u003E alongside native \u003Ccode\u003Efetchpriority\u003C\/code\u003E and \u003Ccode\u003Edecoding\u003C\/code\u003E to systematically eliminate LCP discovery delays. We provide rigorous optimization for everything from standard image, CSS backgrounds and responsive \u003Ccode\u003E\u003Cpicture\u003E\u003C\/code\u003E elements to \u003Cstrong\u003Eoptimized video posters\u003C\/strong\u003E. Absolute layout stability is maintained via modern \u003Ccode\u003Easpect-ratio\u003C\/code\u003E with a refined \u003Cstrong\u003Epadding-bottom fallback\u003C\/strong\u003E for backward compatibility, rejecting legacy jQuery dependencies like FitVids in favor of high-performance, native solutions.\u003C\/li\u003E\r\n    \u003Cli\u003E\u003Cstrong\u003EIntelligent Lazy-loading:\u003C\/strong\u003E Sophisticated preloading via the Blazy engine for images, CSS backgrounds, iframes,  SVG, HTML5 video, audio, and HTML media type.\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Cstrong\u003EPrivacy \u0026 GDPR Compliance:\u003C\/strong\u003E Utilizing a \u003Cstrong\u003ETwo-Click Media Loader\u003C\/strong\u003E, no third-party iframes or tracking scripts are initialized within our \u003Cstrong\u003EMedia player\u003C\/strong\u003E until the user actively engages with the play button. This \u0022Active Opt-in\u0022 workflow satisfies strict \u003Cstrong\u003EGDPR and ePrivacy\u003C\/strong\u003E requirements.\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Cstrong\u003EModular \u0026 Extensible Skins:\u003C\/strong\u003E Our layouts are built with Pure CSS\u2014no bloated JS invited beyond the initializer.\r\n  \u003Cul\u003E\r\n    \u003Cli\u003E\u003Cem\u003EFullscreen with thumbnails or videos:\u003C\/em\u003E For cinematic storytellers.\u003C\/li\u003E\r\n    \u003Cli\u003E\u003Cem\u003EFullscreen or Fullwidth with overlayed video slides:\u003C\/em\u003E For professional visionaries.\u003C\/li\u003E\r\n    \u003Cli\u003E\u003Cem\u003EFullwidth with down arrow:\u003C\/em\u003E For pleasant companies with massive information below the fold.\u003C\/li\u003E\r\n    \u003Cli\u003E\u003Cem\u003EInline \u0026 Vertical Tabs:\u003C\/em\u003E For guided journeys through dense information. Complexity, beautifully curated.\u003C\/li\u003E\r\n    \u003Cli\u003E\u003Cem\u003ESplit:\u003C\/em\u003E A perfect 50\/50 balance of description and media.\u003C\/li\u003E\r\n    \u003Cli\u003E\u003Cem\u003EGrid:\u003C\/em\u003E For organized chaos. With Native Grid, it\u0027s the perfect marriage of high-end aesthetics and structural rigidity.\u003C\/li\u003E\r\n    \u003Cli\u003EAnd a few more as available at Slick UI.\u003C\/li\u003E\r\n  \u003C\/ul\u003E\r\n  \u003Cp\u003EThey are basic OOTB; however Themers may craft the aesthetic blueprints, and Developers register them as a plugin for Site Builders to execute.\u003C\/p\u003E\r\n\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Cstrong\u003EDeveloper Friendly:\u003C\/strong\u003E Features a \u0022Vanilla\u0022 mode for advanced works and a \u003Ca href=\u0022https:\/\/git.drupalcode.org\/project\/slick\/blob\/3.0.x\/slick.api.php\u0022\u003Erobust API\u003C\/a\u003E for custom\/theme implementations.\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Cstrong\u003EEditor-Friendly:\u003C\/strong\u003E The \u003Cem\u003ESlick Filter\u003C\/em\u003E provides a streamlined shortcode for embedding rich multimedia slides directly within text editors; see \u003Ccode\u003E\/filter\/tips\u003C\/code\u003E for implementation details.\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Cstrong\u003ENested sliders\/overlays:\u003C\/strong\u003E Multiple carousels within a single Slick via Slick Paragraphs and Slick Views. Overlaying static or sliding videos over large background can not be easier.\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Cstrong\u003ERandomization:\u003C\/strong\u003E A strategic solution for refreshing cached content\u2014such as advertisements, client lists or e-commerce products\u2014ensuring a dynamic user experience across pages without compromising performance.\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Cstrong\u003ERobust content supports:\u003C\/strong\u003E Plain image, Responsive image\/ picture, responsive iframe, SVG, video, audio and HTML third party contents.\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Cstrong\u003EInline \u0026 lightbox mixed-media:\u003C\/strong\u003E A single \u003Cstrong\u003EMedia switcher\u003C\/strong\u003E option for various interactions: image to content, iframe, media player, and (quasi-)lightboxes: Slick lightbox, Colorbox, PhotoSwipe, Flybox, Magnific Popup, Zooming, etc.\u003C\/li\u003E\r\n  \u003Cli id=\u0022slick-navigation\u0022\u003E\u003Cstrong\u003ENavigation\/ pager options\u003C\/strong\u003E:\r\n\u003Cul\u003E\r\n  \u003Cli\u003EArrows\u003C\/li\u003E\r\n  \u003Cli\u003EDots, \u003Cem\u003Ecircle dots, dots as static grid thumbnails, and dots with hoverable thumbnails\u003C\/em\u003E\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/issues\/search?issue_tags=slick%20tabs\u0022\u003EText tabs\u003C\/a\u003E, \u003Cem\u003Ejust provide Thumbnail caption, and leave Thumbnail style\/image empty\u003C\/em\u003E to achieve:\r\n\u003Cul\u003E\r\n   \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/files\/issues\/Bildschirmfoto%202016-03-16%20um%2012.09.36.png\u0022\u003EVertical tabs\u003C\/a\u003E\u003C\/li\u003E\r\n \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/files\/issues\/thumbnail-caption-or-any-text-as-navigation.png\u0022\u003EInline tabs\u003C\/a\u003E\u003C\/li\u003E\r\n  \u003C\/ul\u003E\r\n  \u003C\/li\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/issues\/search?issue_tags=slick%20asnavfor\u0022\u003EImage thumbnails\/tabs\u003C\/a\u003E\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n  \u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\r\n\u003Cdiv class=\u0022note-version\u0022\u003E\r\n\u003Ch4\u003EIntroducing a newborn kid on the box\u003C\/h4\u003E\r\n\u003Cul\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/drupal.org\/project\/slick_lightbox\u0022\u003ESlick Lightbox\u003C\/a\u003E\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/drupal.org\/project\/elevatezoomplus\u0022\u003EElevateZoom Plus\u003C\/a\u003E\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\u003C\/div\u003E\r\n\r\n\u003Cdiv class=\u0022container\u0022\u003E\r\n\u003Ch2 id=\u0022slick-enhancements\u0022\u003EEnhancements\u003C\/h2\u003E\r\n\u003Cp\u003ESlick works with fields and Views, and supports enhancements for image, iframe, video, audio, SVG, CSS backgrounds and HTML media types with more complex layouts.\u003C\/p\u003E\r\n\u003Cdiv class=\u0022container clearfix\u0022\u003E\r\n\u003Cdiv class=\u0022grid-5\u0022\u003E\r\n  \u003Ch3 id=\u0022slick-related\u0022\u003ERelated modules\u003C\/h3\u003E\r\n  \u003Cul\u003E\r\n    \u003Cli\u003ESlick UI, \u003Cbr\u003E\u003Cem\u003Ecan be uninstalled at production\u003C\/em\u003E\u003C\/li\u003E\r\n    \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/slick_browser\u0022\u003ESlick Browser\u003C\/a\u003E\r\n    \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/slick_views\u0022\u003ESlick Views\u003C\/a\u003E\u003C\/li\u003E\r\n    \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/slick_entityreference\u0022\u003ESlick Entityreference\u003C\/a\u003E\u003C\/li\u003E\r\n    \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/slick_paragraphs\u0022\u003ESlick Paragraphs\u003C\/a\u003E\u003C\/li\u003E\r\n    \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/slick_extras\u0022\u003ESlick Example\u003C\/a\u003E\u003C\/li\u003E\r\n   \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/slick_lightbox\u0022\u003ESlick Lightbox\u003C\/a\u003E\u003C\/li\u003E\r\n    \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/intense\u0022\u003EIntense\u003C\/a\u003E\u003C\/li\u003E\r\n    \u003Cli\u003E\u003Ca href=\u0022https:\/\/drupal.org\/project\/elevatezoomplus\u0022\u003EElevateZoom Plus\u003C\/a\u003E.\u003C\/li\u003E\r\n  \u003C\/ul\u003E\r\n\u003C\/div\u003E\r\n\u003Cdiv class=\u0022grid-7 omega\u0022\u003E\r\n  \u003Ch3 id=\u0022slick-integration\u0022\u003EOptional integration\u003C\/h3\u003E\r\n  \u003Cul\u003E\r\n    \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/colorbox\u0022\u003EColorbox\u003C\/a\u003E\u003C\/li\u003E\r\n    \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/blazy_photoswipe\u0022\u003EPhotoSwipe\u003C\/a\u003E\u003C\/li\u003E\r\n    \u003Cli\u003EMore supported lightboxes: Slick lightbox, Flybox, Magnific Popup, Zooming, etc.\u003C\/li\u003E\r\n  \u003C\/ul\u003E\r\n\u003C\/div\u003E\r\n\u003C\/div\u003E\r\n\u003C\/div\u003E\r\n\r\n\u003Ch2\u003ESimilar modules\u003C\/h2\u003E\r\n\u003Cul\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/drupal.org\/project\/splide\u0022\u003ESplide\u003C\/a\u003E, the vanilla JavaScript slider.\r\nSlick successor with better accessibility supports, plugin, navigable Vanilla slides and more.\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\r\n\u003Ch2 id=\u0022slick-troubleshooting\u0022\u003ETroubleshooting \u0026 Claim Scope\u003C\/h2\u003E\r\n\u003Cul\u003E\r\n  \u003Cli\u003E\r\n    \u003Cstrong\u003EPowerful:\u003C\/strong\u003E\r\n    Slick is \u003Ca href=\u0022#slick-features\u0022\u003Eflexible by design\u003C\/a\u003E. That flexibility allows advanced compositions\u2014but also makes misconfiguration and \u0022disaster\u0022 possible. Certain option combinations can surface edge cases or trade-offs. With great flexibility, comes great possibility, for \u003Ca href=\u0022http:\/\/drupal.org\/project\/slick_extras\u0022\u003Ebetter or worse\u003C\/a\u003E.\r\n       When issues arise, consult the documented\r\n   \u003Ca href=\u0022https:\/\/git.drupalcode.org\/project\/slick\/-\/blob\/3.0.x\/docs\/BENCHMARKING.md#strategic-optimization-checklist\u0022\u003Eoptimization checklist\u003C\/a\u003E, \u003Ca href=\u0022https:\/\/git.drupalcode.org\/project\/slick\/blob\/3.0.x\/docs\/TROUBLESHOOTING.md#troubleshooting\u0022\u003Etroubleshooting guide\u003C\/a\u003E, \u003Ca href=\u0022https:\/\/git.drupalcode.org\/project\/slick\/blob\/3.0.x\/docs\/TROUBLESHOOTING.md#known-issues\u0022\u003Eknown issues\u003C\/a\u003E, and reported \u003Ca href=\u0022https:\/\/www.drupal.org\/project\/issues\/search?issue_tags=slick%20gotchas\u0022\u003Egotchas\u003C\/a\u003E (including relevant sub-modules) to determine whether the behavior is already understood or documented.\r\n  \u003C\/li\u003E\r\n  \u003Cli\u003E\r\n    \u003Cstrong\u003EPerformant:\u003C\/strong\u003E\r\n    This is not a marketing assertion. The claim is derived from repeated, instrumented benchmarks under controlled conditions, and is measurable using standard performance tooling.\r\n  \u003C\/li\u003E\r\n  \u003Cli\u003E\r\n    \u003Cstrong\u003EFully responsive:\u003C\/strong\u003E\r\n    Slick supports multi-breakpoint layouts and adaptive behavior across viewport sizes.\r\n  \u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\r\n\u003Cp\u003E\r\n  We encourage scrutiny of these claims. Where conclusions differ, we welcome evidence grounded in reproducible measurements, as outlined in\r\n  \u003Ca href=\u0022#slick-performance\u0022\u003EPerformance \u0026 Technical Accountability\u003C\/a\u003E.\r\n\u003C\/p\u003E\r\n\r\n\u003Ch2 id=\u0022slick-performance\u0022\u003EPerformance \u0026 Technical Accountability\u003C\/h2\u003E\r\n\u003Cp\u003E\r\n  \u003Cstrong\u003ESlideshows are not inherently problematic\u2014execution is.\u003C\/strong\u003E\r\n  Criticism of carousels often reflects poor integration or uninformed configuration rather than an unavoidable limitation of the pattern itself.\r\n  Over years of technical refinement, Slick has established a framework that can control\r\n  \u003Cstrong\u003ELargest Contentful Paint (LCP)\u003C\/strong\u003E and eliminate\r\n  \u003Cstrong\u003ECumulative Layout Shift (CLS)\u003C\/strong\u003E\r\n  when deployed with strict isolation, intent, and appropriate configuration.\r\n  Results may vary as page complexity increases\u2014particularly in the presence of ads, third-party scripts, or competing rendering strategies.\r\n\u003C\/p\u003E\r\n\u003Cp\u003ETo maintain our standards of technical excellence, all contributors are required to review our performance documentation before submitting issues:\u003C\/p\u003E\r\n\u003Cul\u003E\r\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/git.drupalcode.org\/project\/slick\/-\/blob\/3.0.x\/docs\/BENCHMARKING.md\u0022\u003E\u003Cstrong\u003EBenchmarking Guidelines\u003C\/strong\u003E\u003C\/a\u003E: Mandatory reading for any reports concerning performance. For other issues, please ensure your submission includes verifiable, objective data. We welcome all feedback supported by sound evidence.\u003C\/li\u003E\r\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/git.drupalcode.org\/project\/slick\/-\/blob\/3.0.x\/docs\/BENCHMARKING.md#strategic-optimization-checklist\u0022\u003E\u003Cstrong\u003EStrategic Optimization Checklist\u003C\/strong\u003E\u003C\/a\u003E: A definitive guide to modern performance standards. Adherence to these practices is essential, as deviations are a primary cause of avoidable performance degradation issues.\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\r\n\u003Ch2 id=\u0022slick-contribution\u0022\u003ESubmitting Issues or Patches\u003C\/h2\u003E\r\n\u003Cp\u003EPlease review our \u003Ca href=\u0022https:\/\/git.drupalcode.org\/project\/slick\/blob\/3.0.x\/docs\/CONTRIBUTION.md\u0022\u003EContribution Guidelines\u003C\/a\u003E before participating.\r\n\r\n\u003Cp\u003EOur development philosophy is strictly \u003Cstrong\u003Edata-driven and solution-oriented\u003C\/strong\u003E. To respect collective time, we adhere to a simple principle: \u003Cem\u003EThe data dictates the path, and the solution defines the progress.\u003C\/em\u003E.\u003C\/p\u003E\r\n","format":"1","processed":"\u003Cdiv class=\u0022toc-filter\u0022\u003E\u003Cp\u003ESlick is a \u003Ca href=\u0022#slick-troubleshooting\u0022 rel=\u0022nofollow\u0022\u003Epowerful, performant, and fully responsive\u003C\/a\u003E carousel integration leveraging \u003Ca href=\u0022http:\/\/kenwheeler.github.io\/slick\u0022 rel=\u0022nofollow\u0022\u003EKen Wheeler\u0027s Slick carousel\u003C\/a\u003E. Engineered to satisfy modern \u003Cstrong\u003ECore Web Vitals\u003C\/strong\u003E, it transforms the traditional slideshow into a robust, prioritized media delivery system.\u003C\/p\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022samples-demo\u0022\u003E\n    Samples Demo\n\u003C\/h2\u003E\n\u003Cdiv\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022critical-library-version-integrity\u0022\u003ECritical: Library Version Integrity\u003C\/h2\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cstrong\u003ESupported Versions:\u003C\/strong\u003E \u003Ca href=\u0022https:\/\/github.com\/kenwheeler\/slick\/releases\u0022 rel=\u0022nofollow\u0022\u003ESlick library\u003C\/a\u003E (\u003Cstrong\u003E1.6+ and \u0026lt;= 1.8.0\u003C\/strong\u003E).\u003C\/li\u003E\n\u003Cli\u003E\u003Cstrong\u003EVersion Discrepancies:\u003C\/strong\u003E In October 2021, breaking changes and misleading versioning were identified. You must verify that the version in \u003Cstrong\u003Epackage.json\u003C\/strong\u003E matches the version declared within \u003Cstrong\u003Eslick.js\u003C\/strong\u003E. Specifically, release 1.8.1 often contains a misleading \u00221.8.0\u0022 string in the JS file; such versions are unsupported due to these inconsistencies.\u003C\/li\u003E\n\u003Cli\u003E\u003Cstrong\u003EAutomatic Mitigation:\u003C\/strong\u003E Corrective solutions and warnings are provided upon saving option set forms. If using samples, they will remain non-functional until these options are updated. Do not report issues for higher versions as they are unsupported out-of-the-box (OOTB).\u003C\/li\u003E\n\u003Cli\u003E\u003Cstrong\u003ESymptoms of Failure:\u003C\/strong\u003E Broken pagination dots, unwanted anonymous \u003Ccode\u003E\n\u003Cdiv\u003E\u003C\/div\u003E\u003C\/code\u003E wrapping, seen \u003Ca href=\u0022https:\/\/www.drupal.org\/files\/issues\/2025-03-26\/screenshot_2025-03-26_at_11_20_17%402x.png\u0022 rel=\u0022nofollow\u0022\u003Ehere\u003C\/a\u003E, stacking slides, and out-of-sync navigation given less slides.\u003C\/li\u003E\n\u003Cli\u003E\u003Cstrong\u003EA new branch for 1.8.1+?\u003C\/strong\u003E We should, if any better than 1.6.0. One problem is uncentered\/ out of sync thumbnails given less items.\u003C\/li\u003E\n\u003Cli\u003E\u003Cstrong\u003EThe Battle-Tested Standard:\u003C\/strong\u003E \u003Cstrong\u003EVersion 1.6.0\u003C\/strong\u003E remains the definitive choice for stability. While it lacks minor \u0022non-essential\u0022 features, it provides the most reliable structural foundation.\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/div\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022slick-requirements-01\u0022\u003ERequirements\u003C\/h2\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/drupal.org\/project\/blazy\u0022 rel=\u0022nofollow\u0022\u003EBlazy\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/github.com\/kenwheeler\/slick\/releases\u0022 rel=\u0022nofollow\u0022\u003ESlick library\u003C\/a\u003E (\u003Cstrong\u003E1.6+ and \u0026lt;= 1.8.0\u003C\/strong\u003E). \u003Ca href=\u0022https:\/\/www.drupal.org\/project\/slick\/issues\/3241495#comment-14251300\u0022 rel=\u0022nofollow\u0022\u003ETechnical Context\u003C\/a\u003E.\n\u003Cp\u003E\u003Cem\u003ENote: The Master branch is unsupported. Download an official release and rename the directory to \u003Cstrong\u003Eslick\u003C\/strong\u003E so assets are accessible at:\u003C\/em\u003E\u003C\/p\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Ccode\u003E\/libraries\/slick\/slick\/slick.css\u003C\/code\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ccode\u003E\/libraries\/slick\/slick\/slick-theme.css\u003C\/code\u003E (Optional)\u003C\/li\u003E\n\u003Cli\u003E\u003Ccode\u003E\/libraries\/slick\/slick\/slick.min.js\u003C\/code\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cp\u003E    If using composer, it starts with:\u003Cbr\u003E\n\u003Ccode\u003E\/libraries\/slick-carousel\/slick\/\u003C\/code\u003E.\u003Cbr\u003E\nOpen one of them in a browser, ensure no 404 or 403 errors.\n  \u003C\/p\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cstrong\u003E[Optional]\u003C\/strong\u003E \u003Ca href=\u0022https:\/\/github.com\/gdsmith\/jquery.easing\u0022 rel=\u0022nofollow\u0022\u003Ejqeasing\u003C\/a\u003E at \u003Ccode\u003E\/libraries\/easing\/jquery.easing.min.js\u003C\/code\u003E. (Fallback for legacy browsers; ignorable when utilizing native CSS3 easing).\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022slick-installation-01\u0022\u003EInstallation \u0026amp; Upgrades\u003C\/h2\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/docs\/8\/extending-drupal-8\/installing-drupal-8-modules\u0022 rel=\u0022nofollow\u0022\u003EInstallation Manual\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cstrong\u003EComposer:\u003C\/strong\u003E Refer to the \u003Ca href=\u0022https:\/\/git.drupalcode.org\/project\/blazy\/-\/blob\/3.0.x\/docs\/COMPOSER.md\u0022 rel=\u0022nofollow\u0022\u003EBlazy Composer Guide\u003C\/a\u003E.\u003C\/li\u003E\n\u003Cli\u003E\u003Cstrong\u003EUpgrade Path:\u003C\/strong\u003E Refer to the \u003Ca href=\u0022https:\/\/www.drupal.org\/project\/blazy#blazy-upgrade\u0022 rel=\u0022nofollow\u0022\u003EBlazy Upgrade Path\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/git.drupalcode.org\/project\/blazy\/blob\/3.0.x\/docs\/UPDATING.md#update-sop\u0022 rel=\u0022nofollow\u0022\u003E\u003Cstrong\u003EUpdate SOP:\u003C\/strong\u003E\u003C\/a\u003E   A definitive guide for update and upgrade troubleshootings, including WSOD.\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022slick-features-01\u0022\u003EFeatures\u003C\/h2\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cstrong\u003EDeep Integration:\u003C\/strong\u003E Seamlessly works with Core Media, Views, Paragraphs, Media contribs and Layout Builder.\u003C\/li\u003E\n\u003Cli\u003E\u003Cstrong\u003ELCP \u0026amp; CLS Management:\u003C\/strong\u003E Engineered for a \u003Cstrong\u003E\u0022CLS-zero\u0022 strategy\u003C\/strong\u003E, our framework integrates \u003Cstrong\u003Esophisticated preloading\u003C\/strong\u003E alongside native \u003Ccode\u003Efetchpriority\u003C\/code\u003E and \u003Ccode\u003Edecoding\u003C\/code\u003E to systematically eliminate LCP discovery delays. We provide rigorous optimization for everything from standard image, CSS backgrounds and responsive \u003Ccode\u003E\u003Cbr\u003E\n\u003C\/code\u003E elements to \u003Cstrong\u003Eoptimized video posters\u003C\/strong\u003E. Absolute layout stability is maintained via modern \u003Ccode\u003Easpect-ratio\u003C\/code\u003E with a refined \u003Cstrong\u003Epadding-bottom fallback\u003C\/strong\u003E for backward compatibility, rejecting legacy jQuery dependencies like FitVids in favor of high-performance, native solutions.\u003C\/li\u003E\n\u003Cli\u003E\u003Cstrong\u003EIntelligent Lazy-loading:\u003C\/strong\u003E Sophisticated preloading via the Blazy engine for images, CSS backgrounds, iframes,  SVG, HTML5 video, audio, and HTML media type.\u003C\/li\u003E\n\u003Cli\u003E\u003Cstrong\u003EPrivacy \u0026amp; GDPR Compliance:\u003C\/strong\u003E Utilizing a \u003Cstrong\u003ETwo-Click Media Loader\u003C\/strong\u003E, no third-party iframes or tracking scripts are initialized within our \u003Cstrong\u003EMedia player\u003C\/strong\u003E until the user actively engages with the play button. This \u0022Active Opt-in\u0022 workflow satisfies strict \u003Cstrong\u003EGDPR and ePrivacy\u003C\/strong\u003E requirements.\u003C\/li\u003E\n\u003Cli\u003E\u003Cstrong\u003EModular \u0026amp; Extensible Skins:\u003C\/strong\u003E Our layouts are built with Pure CSS\u2014no bloated JS invited beyond the initializer.\n\u003Cul\u003E\n\u003Cli\u003E\u003Cem\u003EFullscreen with thumbnails or videos:\u003C\/em\u003E For cinematic storytellers.\u003C\/li\u003E\n\u003Cli\u003E\u003Cem\u003EFullscreen or Fullwidth with overlayed video slides:\u003C\/em\u003E For professional visionaries.\u003C\/li\u003E\n\u003Cli\u003E\u003Cem\u003EFullwidth with down arrow:\u003C\/em\u003E For pleasant companies with massive information below the fold.\u003C\/li\u003E\n\u003Cli\u003E\u003Cem\u003EInline \u0026amp; Vertical Tabs:\u003C\/em\u003E For guided journeys through dense information. Complexity, beautifully curated.\u003C\/li\u003E\n\u003Cli\u003E\u003Cem\u003ESplit:\u003C\/em\u003E A perfect 50\/50 balance of description and media.\u003C\/li\u003E\n\u003Cli\u003E\u003Cem\u003EGrid:\u003C\/em\u003E For organized chaos. With Native Grid, it\u0027s the perfect marriage of high-end aesthetics and structural rigidity.\u003C\/li\u003E\n\u003Cli\u003EAnd a few more as available at Slick UI.\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cp\u003EThey are basic OOTB; however Themers may craft the aesthetic blueprints, and Developers register them as a plugin for Site Builders to execute.\u003C\/p\u003E\n\u003C\/li\u003E\n\u003Cli\u003E\u003Cstrong\u003EDeveloper Friendly:\u003C\/strong\u003E Features a \u0022Vanilla\u0022 mode for advanced works and a \u003Ca href=\u0022https:\/\/git.drupalcode.org\/project\/slick\/blob\/3.0.x\/slick.api.php\u0022 rel=\u0022nofollow\u0022\u003Erobust API\u003C\/a\u003E for custom\/theme implementations.\u003C\/li\u003E\n\u003Cli\u003E\u003Cstrong\u003EEditor-Friendly:\u003C\/strong\u003E The \u003Cem\u003ESlick Filter\u003C\/em\u003E provides a streamlined shortcode for embedding rich multimedia slides directly within text editors; see \u003Ccode\u003E\/filter\/tips\u003C\/code\u003E for implementation details.\u003C\/li\u003E\n\u003Cli\u003E\u003Cstrong\u003ENested sliders\/overlays:\u003C\/strong\u003E Multiple carousels within a single Slick via Slick Paragraphs and Slick Views. Overlaying static or sliding videos over large background can not be easier.\u003C\/li\u003E\n\u003Cli\u003E\u003Cstrong\u003ERandomization:\u003C\/strong\u003E A strategic solution for refreshing cached content\u2014such as advertisements, client lists or e-commerce products\u2014ensuring a dynamic user experience across pages without compromising performance.\u003C\/li\u003E\n\u003Cli\u003E\u003Cstrong\u003ERobust content supports:\u003C\/strong\u003E Plain image, Responsive image\/ picture, responsive iframe, SVG, video, audio and HTML third party contents.\u003C\/li\u003E\n\u003Cli\u003E\u003Cstrong\u003EInline \u0026amp; lightbox mixed-media:\u003C\/strong\u003E A single \u003Cstrong\u003EMedia switcher\u003C\/strong\u003E option for various interactions: image to content, iframe, media player, and (quasi-)lightboxes: Slick lightbox, Colorbox, PhotoSwipe, Flybox, Magnific Popup, Zooming, etc.\u003C\/li\u003E\n\u003Cli\u003E\u003Cstrong\u003ENavigation\/ pager options\u003C\/strong\u003E:\n\u003Cul\u003E\n\u003Cli\u003EArrows\u003C\/li\u003E\n\u003Cli\u003EDots, \u003Cem\u003Ecircle dots, dots as static grid thumbnails, and dots with hoverable thumbnails\u003C\/em\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/issues\/search?issue_tags=slick%20tabs\u0022 rel=\u0022nofollow\u0022\u003EText tabs\u003C\/a\u003E, \u003Cem\u003Ejust provide Thumbnail caption, and leave Thumbnail style\/image empty\u003C\/em\u003E to achieve:\n\u003Cul\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/files\/issues\/Bildschirmfoto%202016-03-16%20um%2012.09.36.png\u0022 rel=\u0022nofollow\u0022\u003EVertical tabs\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/files\/issues\/thumbnail-caption-or-any-text-as-navigation.png\u0022 rel=\u0022nofollow\u0022\u003EInline tabs\u003C\/a\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/issues\/search?issue_tags=slick%20asnavfor\u0022 rel=\u0022nofollow\u0022\u003EImage thumbnails\/tabs\u003C\/a\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cdiv class=\u0022note-version\u0022\u003E\n\u003Ch4 id=\u0022introducing-a-newborn-kid-on-the-box\u0022\u003EIntroducing a newborn kid on the box\u003C\/h4\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/drupal.org\/project\/slick_lightbox\u0022 rel=\u0022nofollow\u0022\u003ESlick Lightbox\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/drupal.org\/project\/elevatezoomplus\u0022 rel=\u0022nofollow\u0022\u003EElevateZoom Plus\u003C\/a\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/div\u003E\n\u003Cdiv\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022slick-enhancements-01\u0022\u003EEnhancements\u003C\/h2\u003E\n\u003Cp\u003ESlick works with fields and Views, and supports enhancements for image, iframe, video, audio, SVG, CSS backgrounds and HTML media types with more complex layouts.\u003C\/p\u003E\n\u003Cdiv\u003E\n\u003Cdiv\u003E\n\u003Ch3 id=\u0022slick-related-01\u0022\u003ERelated modules\u003C\/h3\u003E\n\u003Cul\u003E\n\u003Cli\u003ESlick UI, \u003Cbr\u003E\u003Cem\u003Ecan be uninstalled at production\u003C\/em\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/slick_browser\u0022 rel=\u0022nofollow\u0022\u003ESlick Browser\u003C\/a\u003E\n\u003C\/li\u003E\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/slick_views\u0022 rel=\u0022nofollow\u0022\u003ESlick Views\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/slick_entityreference\u0022 rel=\u0022nofollow\u0022\u003ESlick Entityreference\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/slick_paragraphs\u0022 rel=\u0022nofollow\u0022\u003ESlick Paragraphs\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/slick_extras\u0022 rel=\u0022nofollow\u0022\u003ESlick Example\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/slick_lightbox\u0022 rel=\u0022nofollow\u0022\u003ESlick Lightbox\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/intense\u0022 rel=\u0022nofollow\u0022\u003EIntense\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/drupal.org\/project\/elevatezoomplus\u0022 rel=\u0022nofollow\u0022\u003EElevateZoom Plus\u003C\/a\u003E.\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/div\u003E\n\u003Cdiv\u003E\n\u003Ch3 id=\u0022slick-integration-01\u0022\u003EOptional integration\u003C\/h3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/colorbox\u0022 rel=\u0022nofollow\u0022\u003EColorbox\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/blazy_photoswipe\u0022 rel=\u0022nofollow\u0022\u003EPhotoSwipe\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003EMore supported lightboxes: Slick lightbox, Flybox, Magnific Popup, Zooming, etc.\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/div\u003E\n\u003C\/div\u003E\n\u003C\/div\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022similar-modules\u0022\u003ESimilar modules\u003C\/h2\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/drupal.org\/project\/splide\u0022 rel=\u0022nofollow\u0022\u003ESplide\u003C\/a\u003E, the vanilla JavaScript slider.\u003Cbr\u003E\nSlick successor with better accessibility supports, plugin, navigable Vanilla slides and more.\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022slick-troubleshooting-01\u0022\u003ETroubleshooting \u0026amp; Claim Scope\u003C\/h2\u003E\n\u003Cul\u003E\n\u003Cli\u003E\n    \u003Cstrong\u003EPowerful:\u003C\/strong\u003E\u003Cbr\u003E\n    Slick is \u003Ca href=\u0022#slick-features\u0022 rel=\u0022nofollow\u0022\u003Eflexible by design\u003C\/a\u003E. That flexibility allows advanced compositions\u2014but also makes misconfiguration and \u0022disaster\u0022 possible. Certain option combinations can surface edge cases or trade-offs. With great flexibility, comes great possibility, for \u003Ca href=\u0022http:\/\/drupal.org\/project\/slick_extras\u0022 rel=\u0022nofollow\u0022\u003Ebetter or worse\u003C\/a\u003E.\u003Cbr\u003E\n       When issues arise, consult the documented\u003Cbr\u003E\n   \u003Ca href=\u0022https:\/\/git.drupalcode.org\/project\/slick\/-\/blob\/3.0.x\/docs\/BENCHMARKING.md#strategic-optimization-checklist\u0022 rel=\u0022nofollow\u0022\u003Eoptimization checklist\u003C\/a\u003E, \u003Ca href=\u0022https:\/\/git.drupalcode.org\/project\/slick\/blob\/3.0.x\/docs\/TROUBLESHOOTING.md#troubleshooting\u0022 rel=\u0022nofollow\u0022\u003Etroubleshooting guide\u003C\/a\u003E, \u003Ca href=\u0022https:\/\/git.drupalcode.org\/project\/slick\/blob\/3.0.x\/docs\/TROUBLESHOOTING.md#known-issues\u0022 rel=\u0022nofollow\u0022\u003Eknown issues\u003C\/a\u003E, and reported \u003Ca href=\u0022https:\/\/www.drupal.org\/project\/issues\/search?issue_tags=slick%20gotchas\u0022 rel=\u0022nofollow\u0022\u003Egotchas\u003C\/a\u003E (including relevant sub-modules) to determine whether the behavior is already understood or documented.\n  \u003C\/li\u003E\n\u003Cli\u003E\n    \u003Cstrong\u003EPerformant:\u003C\/strong\u003E\u003Cbr\u003E\n    This is not a marketing assertion. The claim is derived from repeated, instrumented benchmarks under controlled conditions, and is measurable using standard performance tooling.\n  \u003C\/li\u003E\n\u003Cli\u003E\n    \u003Cstrong\u003EFully responsive:\u003C\/strong\u003E\u003Cbr\u003E\n    Slick supports multi-breakpoint layouts and adaptive behavior across viewport sizes.\n  \u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cp\u003E\n  We encourage scrutiny of these claims. Where conclusions differ, we welcome evidence grounded in reproducible measurements, as outlined in\u003Cbr\u003E\n  \u003Ca href=\u0022#slick-performance\u0022 rel=\u0022nofollow\u0022\u003EPerformance \u0026amp; Technical Accountability\u003C\/a\u003E.\n\u003C\/p\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022slick-performance-01\u0022\u003EPerformance \u0026amp; Technical Accountability\u003C\/h2\u003E\n\u003Cp\u003E\n  \u003Cstrong\u003ESlideshows are not inherently problematic\u2014execution is.\u003C\/strong\u003E\u003Cbr\u003E\n  Criticism of carousels often reflects poor integration or uninformed configuration rather than an unavoidable limitation of the pattern itself.\u003Cbr\u003E\n  Over years of technical refinement, Slick has established a framework that can control\u003Cbr\u003E\n  \u003Cstrong\u003ELargest Contentful Paint (LCP)\u003C\/strong\u003E and eliminate\u003Cbr\u003E\n  \u003Cstrong\u003ECumulative Layout Shift (CLS)\u003C\/strong\u003E\u003Cbr\u003E\n  when deployed with strict isolation, intent, and appropriate configuration.\u003Cbr\u003E\n  Results may vary as page complexity increases\u2014particularly in the presence of ads, third-party scripts, or competing rendering strategies.\n\u003C\/p\u003E\n\u003Cp\u003ETo maintain our standards of technical excellence, all contributors are required to review our performance documentation before submitting issues:\u003C\/p\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/git.drupalcode.org\/project\/slick\/-\/blob\/3.0.x\/docs\/BENCHMARKING.md\u0022 rel=\u0022nofollow\u0022\u003E\u003Cstrong\u003EBenchmarking Guidelines\u003C\/strong\u003E\u003C\/a\u003E: Mandatory reading for any reports concerning performance. For other issues, please ensure your submission includes verifiable, objective data. We welcome all feedback supported by sound evidence.\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/git.drupalcode.org\/project\/slick\/-\/blob\/3.0.x\/docs\/BENCHMARKING.md#strategic-optimization-checklist\u0022 rel=\u0022nofollow\u0022\u003E\u003Cstrong\u003EStrategic Optimization Checklist\u003C\/strong\u003E\u003C\/a\u003E: A definitive guide to modern performance standards. Adherence to these practices is essential, as deviations are a primary cause of avoidable performance degradation issues.\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022slick-contribution-01\u0022\u003ESubmitting Issues or Patches\u003C\/h2\u003E\n\u003Cp\u003EPlease review our \u003Ca href=\u0022https:\/\/git.drupalcode.org\/project\/slick\/blob\/3.0.x\/docs\/CONTRIBUTION.md\u0022 rel=\u0022nofollow\u0022\u003EContribution Guidelines\u003C\/a\u003E before participating.\u003C\/p\u003E\n\u003Cp\u003EOur development philosophy is strictly \u003Cstrong\u003Edata-driven and solution-oriented\u003C\/strong\u003E. To respect collective time, we adhere to a simple principle: \u003Cem\u003EThe data dictates the path, and the solution defines the progress.\u003C\/em\u003E.\u003C\/p\u003E\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\u003C\/div\u003E","summary":"Provides a fully responsive, richly functional carousel\/slider leveraging Ken Wheeler\u0027s Slick carousel. "},"field_active_installs":"{\u00228.x-1.x\u0022:2439,\u00228.x-2.x\u0022:18136,\u00223.0.x\u0022:38116}","field_active_installs_total":58691,"field_composer_namespace":"drupal\/slick","field_core_semver_maximum":12999999,"field_core_semver_minimum":8000000,"field_issue_summary_template":null,"field_logo_url":{"uri":"https:\/\/git.drupalcode.org\/project\/slick\/-\/avatar","title":null,"options":[]},"field_project_has_releases":true,"field_project_machine_name":"slick","field_security_advisory_coverage":"covered"},"relationships":{"uid":{"data":{"type":"user--user","id":"299d79e6-7915-49fc-a637-0ff3f39a6a1e","meta":{"drupal_internal__target_id":571032}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/f2dbd363-ad38-4500-8df0-509f55dc31aa\/uid?resourceVersion=id%3A20030433"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/f2dbd363-ad38-4500-8df0-509f55dc31aa\/relationships\/uid?resourceVersion=id%3A20030433"}}},"field_development_status":{"data":{"type":"taxonomy_term--development_status","id":"e767288c-9800-4fb4-aeb8-8c311533838a","meta":{"drupal_internal__target_id":27274}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/f2dbd363-ad38-4500-8df0-509f55dc31aa\/field_development_status?resourceVersion=id%3A20030433"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/f2dbd363-ad38-4500-8df0-509f55dc31aa\/relationships\/field_development_status?resourceVersion=id%3A20030433"}}},"field_maintenance_status":{"data":{"type":"taxonomy_term--maintenance_status","id":"cee844e2-68b5-489d-bafa-6a0ade2b6dfd","meta":{"drupal_internal__target_id":27273}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/f2dbd363-ad38-4500-8df0-509f55dc31aa\/field_maintenance_status?resourceVersion=id%3A20030433"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/f2dbd363-ad38-4500-8df0-509f55dc31aa\/relationships\/field_maintenance_status?resourceVersion=id%3A20030433"}}},"field_module_categories":{"data":[{"type":"taxonomy_term--module_categories","id":"754c04cb-6da2-42ba-9032-d64307f68f45","meta":{"drupal_internal__target_id":188}},{"type":"taxonomy_term--module_categories","id":"3322058a-a158-4806-ac5b-9bcabc95edac","meta":{"drupal_internal__target_id":185}},{"type":"taxonomy_term--module_categories","id":"68428c33-1db7-438d-b1b3-e23004e0982b","meta":{"drupal_internal__target_id":192}}],"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/f2dbd363-ad38-4500-8df0-509f55dc31aa\/field_module_categories?resourceVersion=id%3A20030433"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/f2dbd363-ad38-4500-8df0-509f55dc31aa\/relationships\/field_module_categories?resourceVersion=id%3A20030433"}}},"field_project_images":{"data":[{"type":"file--file","id":"dd59bc9c-7938-4c8f-b2e5-efd546596f79","meta":{"alt":"Drupal slick carousel","title":null,"width":215,"height":162,"drupal_internal__target_id":12630}}],"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/f2dbd363-ad38-4500-8df0-509f55dc31aa\/field_project_images?resourceVersion=id%3A20030433"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/f2dbd363-ad38-4500-8df0-509f55dc31aa\/relationships\/field_project_images?resourceVersion=id%3A20030433"}}}}},{"type":"node--project_module","id":"92a8cec0-2ccf-4a90-958b-e4f32a819c7c","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/92a8cec0-2ccf-4a90-958b-e4f32a819c7c?resourceVersion=id%3A20026128"},"working-copy":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/92a8cec0-2ccf-4a90-958b-e4f32a819c7c?resourceVersion=rel%3Aworking-copy"}},"attributes":{"drupal_internal__nid":1998478,"status":true,"title":"DropzoneJS","created":"2013-05-19T19:11:45+00:00","changed":"2026-04-07T05:20:02+00:00","moderation_state":null,"body":{"value":"Drupal integration for \u003Ca href=\u0022http:\/\/www.dropzonejs.com\/\u0022 title=\u0022DropzoneJS homepage\u0022\u003EDropzoneJS\u003C\/a\u003E - an open source library that provides drag\u2019n\u2019drop file uploads with image previews.\r\n\r\n\u003Ch2\u003EHow to install\u003C\/h2\u003E\r\n\r\n\u003Ch3\u003E The non-composer way\u003C\/h3\u003E\r\n\r\n\u003Col\u003E\r\n  \u003Cli\u003EDownload this module\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/github.com\/enyo\/dropzone\u0022\u003EDownload DropzoneJS\u003C\/a\u003E library and place it in the libraries folder (\u003Cdrupal root\u003E\/libraries). Use the dist.zip and put the files in the libraries\/dropzone folder (the full path to the required files should be \u003Cdrupal root\u003E\/libraries\/dropzone\/dropzone-min.js and \/libraries\/dropzone\/dropzone.css).\u003C\/li\u003E\r\n  \u003Cli\u003EInstall dropzonejs the \u003Ca href=\u0022https:\/\/www.drupal.org\/documentation\/install\/modules-themes\/modules-8\u0022\u003Eusual way\u003C\/a\u003E.\u003C\/li\u003E\r\n\u003C\/ol\u003E\r\n\r\nNote: if you use \u003Cstrong\u003Ebower\u003C\/strong\u003E to fetch the library, be sure to fetch the package named \u003Ccode\u003Edropzone\u003C\/code\u003E (NOT dropzonejs) that points to the correct repository.\r\n\r\n\u003Ch3\u003EThe composer way\u003C\/h3\u003E\r\n\r\nThis assumes that the type:drupal-library is set up to be installed in\r\nweb\/libraries.\r\n\r\nAdd a custom package to the root \u003Ccode\u003Ecomposer.json\u003C\/code\u003E file. Its \u003Ccode\u003Erepositories\u003C\/code\u003E key\r\nlooks like the following. Adjust version numbers according to current release.\r\n\r\nDropzone 5:\r\n\u003Ccode\u003E\r\n    \u0022repositories\u0022: [\r\n        ...\r\n        {\r\n            \u0022type\u0022: \u0022package\u0022,\r\n            \u0022package\u0022: {\r\n                \u0022name\u0022: \u0022enyo\/dropzone\u0022,\r\n                \u0022version\u0022: \u00225.9.3\u0022,\r\n                \u0022type\u0022: \u0022drupal-library\u0022,\r\n                \u0022dist\u0022: {\r\n                    \u0022url\u0022: \u0022https:\/\/github.com\/dropzone\/dropzone\/releases\/download\/v5.9.3\/dist.zip\u0022,\r\n                    \u0022type\u0022: \u0022zip\u0022\r\n                }\r\n            }\r\n        }\r\n    ]\r\n\u003C\/code\u003E\r\n\r\nDropzone 6:\r\n\u003Ccode\u003E\r\n    \u0022repositories\u0022: [\r\n        ...\r\n        {\r\n            \u0022type\u0022: \u0022package\u0022,\r\n            \u0022package\u0022: {\r\n                \u0022name\u0022: \u0022enyo\/dropzone\u0022,\r\n                \u0022version\u0022: \u00226.0.0-beta.2\u0022,\r\n                \u0022type\u0022: \u0022drupal-library\u0022,\r\n                \u0022dist\u0022: {\r\n                    \u0022url\u0022: \u0022https:\/\/github.com\/dropzone\/dropzone\/releases\/download\/v6.0.0-beta.2\/dist.zip\u0022,\r\n                    \u0022type\u0022: \u0022zip\u0022\r\n                }\r\n            }\r\n        }\r\n    ]\r\n\u003C\/code\u003E\r\n\r\nRun \u003Ccode\u003Ecomposer require drupal\/dropzonejs enyo\/dropzone\u003C\/code\u003E, the DropzoneJS library\r\nwill be installed to the `libraries` folder automatically as well.\r\n\r\nTo also install exif-js for optional client-resize, define another repository.\r\n\r\n\u003Ccode\u003E\r\n    {\r\n        \u0022type\u0022: \u0022package\u0022,\r\n        \u0022package\u0022: {\r\n            \u0022name\u0022: \u0022exif-js\/exif-js\u0022,\r\n            \u0022version\u0022: \u0022v2.3.0\u0022,\r\n            \u0022type\u0022: \u0022drupal-library\u0022,\r\n            \u0022dist\u0022: {\r\n                \u0022type\u0022: \u0022zip\u0022,\r\n                \u0022url\u0022: \u0022https:\/\/github.com\/exif-js\/exif-js\/archive\/refs\/tags\/v2.3.0.zip\u0022,\r\n            }\r\n        }\r\n    },\r\n\u003C\/code\u003E\r\n\r\nAnd require it with \u003Ccode\u003Ecomposer require exif-js\/exif-js\u003C\/code\u003E\r\n\r\n\u003Ch2\u003ECurrent module state\u003C\/h2\u003E\r\nThis module currently provide an element that can be used in forms and three \u003Ca href=\u0022https:\/\/www.drupal.org\/project\/entity_browser\u0022\u003EEntity Browser\u003C\/a\u003E widgest:\r\n\u003Cul\u003E\r\n  \u003Cli\u003Ea simple one that generates (default core) file entities\u003C\/li\u003E\r\n  \u003Cli\u003Eone that generates \u003Ca href=\u0022https:\/\/www.drupal.org\/project\/media_entity\u0022\u003EMedia entities\u003C\/a\u003E\u003C\/li\u003E\r\n  \u003Cli\u003Eone that uses \u003Ca href=\u0022https:\/\/www.drupal.org\/project\/inline_entity_form\u0022\u003EInline entity form\u003C\/a\u003E to provide forms for generated media entities\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n","format":"1","processed":"\u003Cdiv class=\u0022toc-filter\u0022\u003E\u003Cp\u003EDrupal integration for \u003Ca href=\u0022http:\/\/www.dropzonejs.com\/\u0022 rel=\u0022nofollow\u0022\u003EDropzoneJS\u003C\/a\u003E - an open source library that provides drag\u2019n\u2019drop file uploads with image previews.\u003C\/p\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022how-to-install\u0022\u003EHow to install\u003C\/h2\u003E\n\u003Ch3 id=\u0022the-non-composer-way\u0022\u003E The non-composer way\u003C\/h3\u003E\n\u003Col\u003E\n\u003Cli\u003EDownload this module\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/github.com\/enyo\/dropzone\u0022 rel=\u0022nofollow\u0022\u003EDownload DropzoneJS\u003C\/a\u003E library and place it in the libraries folder (\/libraries). Use the dist.zip and put the files in the libraries\/dropzone folder (the full path to the required files should be \/libraries\/dropzone\/dropzone-min.js and \/libraries\/dropzone\/dropzone.css).\u003C\/li\u003E\n\u003Cli\u003EInstall dropzonejs the \u003Ca href=\u0022https:\/\/www.drupal.org\/documentation\/install\/modules-themes\/modules-8\u0022 rel=\u0022nofollow\u0022\u003Eusual way\u003C\/a\u003E.\u003C\/li\u003E\n\u003C\/ol\u003E\n\u003Cp\u003ENote: if you use \u003Cstrong\u003Ebower\u003C\/strong\u003E to fetch the library, be sure to fetch the package named \u003Ccode\u003Edropzone\u003C\/code\u003E (NOT dropzonejs) that points to the correct repository.\u003C\/p\u003E\n\u003Ch3 id=\u0022the-composer-way\u0022\u003EThe composer way\u003C\/h3\u003E\n\u003Cp\u003EThis assumes that the type:drupal-library is set up to be installed in\u003Cbr\u003E\nweb\/libraries.\u003C\/p\u003E\n\u003Cp\u003EAdd a custom package to the root \u003Ccode\u003Ecomposer.json\u003C\/code\u003E file. Its \u003Ccode\u003Erepositories\u003C\/code\u003E key\u003Cbr\u003E\nlooks like the following. Adjust version numbers according to current release.\u003C\/p\u003E\n\u003Cp\u003EDropzone 5:\u003Cbr\u003E\n\u003Ccode\u003E\u003Cbr\u003E\n    \u0022repositories\u0022: [\u003Cbr\u003E\n        ...\u003Cbr\u003E\n        {\u003Cbr\u003E\n            \u0022type\u0022: \u0022package\u0022,\u003Cbr\u003E\n            \u0022package\u0022: {\u003Cbr\u003E\n                \u0022name\u0022: \u0022enyo\/dropzone\u0022,\u003Cbr\u003E\n                \u0022version\u0022: \u00225.9.3\u0022,\u003Cbr\u003E\n                \u0022type\u0022: \u0022drupal-library\u0022,\u003Cbr\u003E\n                \u0022dist\u0022: {\u003Cbr\u003E\n                    \u0022url\u0022: \u0022https:\/\/github.com\/dropzone\/dropzone\/releases\/download\/v5.9.3\/dist.zip\u0022,\u003Cbr\u003E\n                    \u0022type\u0022: \u0022zip\u0022\u003Cbr\u003E\n                }\u003Cbr\u003E\n            }\u003Cbr\u003E\n        }\u003Cbr\u003E\n    ]\u003Cbr\u003E\n\u003C\/code\u003E\u003C\/p\u003E\n\u003Cp\u003EDropzone 6:\u003Cbr\u003E\n\u003Ccode\u003E\u003Cbr\u003E\n    \u0022repositories\u0022: [\u003Cbr\u003E\n        ...\u003Cbr\u003E\n        {\u003Cbr\u003E\n            \u0022type\u0022: \u0022package\u0022,\u003Cbr\u003E\n            \u0022package\u0022: {\u003Cbr\u003E\n                \u0022name\u0022: \u0022enyo\/dropzone\u0022,\u003Cbr\u003E\n                \u0022version\u0022: \u00226.0.0-beta.2\u0022,\u003Cbr\u003E\n                \u0022type\u0022: \u0022drupal-library\u0022,\u003Cbr\u003E\n                \u0022dist\u0022: {\u003Cbr\u003E\n                    \u0022url\u0022: \u0022https:\/\/github.com\/dropzone\/dropzone\/releases\/download\/v6.0.0-beta.2\/dist.zip\u0022,\u003Cbr\u003E\n                    \u0022type\u0022: \u0022zip\u0022\u003Cbr\u003E\n                }\u003Cbr\u003E\n            }\u003Cbr\u003E\n        }\u003Cbr\u003E\n    ]\u003Cbr\u003E\n\u003C\/code\u003E\u003C\/p\u003E\n\u003Cp\u003ERun \u003Ccode\u003Ecomposer require drupal\/dropzonejs enyo\/dropzone\u003C\/code\u003E, the DropzoneJS library\u003Cbr\u003E\nwill be installed to the `libraries` folder automatically as well.\u003C\/p\u003E\n\u003Cp\u003ETo also install exif-js for optional client-resize, define another repository.\u003C\/p\u003E\n\u003Cp\u003E\u003Ccode\u003E\u003Cbr\u003E\n    {\u003Cbr\u003E\n        \u0022type\u0022: \u0022package\u0022,\u003Cbr\u003E\n        \u0022package\u0022: {\u003Cbr\u003E\n            \u0022name\u0022: \u0022exif-js\/exif-js\u0022,\u003Cbr\u003E\n            \u0022version\u0022: \u0022v2.3.0\u0022,\u003Cbr\u003E\n            \u0022type\u0022: \u0022drupal-library\u0022,\u003Cbr\u003E\n            \u0022dist\u0022: {\u003Cbr\u003E\n                \u0022type\u0022: \u0022zip\u0022,\u003Cbr\u003E\n                \u0022url\u0022: \u0022https:\/\/github.com\/exif-js\/exif-js\/archive\/refs\/tags\/v2.3.0.zip\u0022,\u003Cbr\u003E\n            }\u003Cbr\u003E\n        }\u003Cbr\u003E\n    },\u003Cbr\u003E\n\u003C\/code\u003E\u003C\/p\u003E\n\u003Cp\u003EAnd require it with \u003Ccode\u003Ecomposer require exif-js\/exif-js\u003C\/code\u003E\u003C\/p\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022current-module-state\u0022\u003ECurrent module state\u003C\/h2\u003E\n\u003Cp\u003EThis module currently provide an element that can be used in forms and three \u003Ca href=\u0022https:\/\/www.drupal.org\/project\/entity_browser\u0022 rel=\u0022nofollow\u0022\u003EEntity Browser\u003C\/a\u003E widgest:\u003C\/p\u003E\n\u003Cul\u003E\n\u003Cli\u003Ea simple one that generates (default core) file entities\u003C\/li\u003E\n\u003Cli\u003Eone that generates \u003Ca href=\u0022https:\/\/www.drupal.org\/project\/media_entity\u0022 rel=\u0022nofollow\u0022\u003EMedia entities\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003Eone that uses \u003Ca href=\u0022https:\/\/www.drupal.org\/project\/inline_entity_form\u0022 rel=\u0022nofollow\u0022\u003EInline entity form\u003C\/a\u003E to provide forms for generated media entities\u003C\/li\u003E\n\u003C\/ul\u003E\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\u003C\/div\u003E","summary":""},"field_active_installs":"{\u00228.x-1.x\u0022:888,\u00228.x-2.x\u0022:57691}","field_active_installs_total":58579,"field_composer_namespace":"drupal\/dropzonejs","field_core_semver_maximum":12000000,"field_core_semver_minimum":8000000,"field_issue_summary_template":null,"field_logo_url":null,"field_project_has_releases":true,"field_project_machine_name":"dropzonejs","field_security_advisory_coverage":"covered"},"relationships":{"uid":{"data":{"type":"user--user","id":"31f0ee56-0ffd-48ee-b942-873dc4142e54","meta":{"drupal_internal__target_id":888644}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/92a8cec0-2ccf-4a90-958b-e4f32a819c7c\/uid?resourceVersion=id%3A20026128"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/92a8cec0-2ccf-4a90-958b-e4f32a819c7c\/relationships\/uid?resourceVersion=id%3A20026128"}}},"field_development_status":{"data":{"type":"taxonomy_term--development_status","id":"e767288c-9800-4fb4-aeb8-8c311533838a","meta":{"drupal_internal__target_id":27274}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/92a8cec0-2ccf-4a90-958b-e4f32a819c7c\/field_development_status?resourceVersion=id%3A20026128"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/92a8cec0-2ccf-4a90-958b-e4f32a819c7c\/relationships\/field_development_status?resourceVersion=id%3A20026128"}}},"field_maintenance_status":{"data":{"type":"taxonomy_term--maintenance_status","id":"089406ad-304d-4737-80d1-2f08527ae49e","meta":{"drupal_internal__target_id":27271}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/92a8cec0-2ccf-4a90-958b-e4f32a819c7c\/field_maintenance_status?resourceVersion=id%3A20026128"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/92a8cec0-2ccf-4a90-958b-e4f32a819c7c\/relationships\/field_maintenance_status?resourceVersion=id%3A20026128"}}},"field_module_categories":{"data":[{"type":"taxonomy_term--module_categories","id":"086cebcf-200f-4c34-886e-f9921919b292","meta":{"drupal_internal__target_id":189}},{"type":"taxonomy_term--module_categories","id":"68428c33-1db7-438d-b1b3-e23004e0982b","meta":{"drupal_internal__target_id":192}},{"type":"taxonomy_term--module_categories","id":"dcb48e9f-6afa-4842-8ef6-44b90b083fcc","meta":{"drupal_internal__target_id":200}}],"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/92a8cec0-2ccf-4a90-958b-e4f32a819c7c\/field_module_categories?resourceVersion=id%3A20026128"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/92a8cec0-2ccf-4a90-958b-e4f32a819c7c\/relationships\/field_module_categories?resourceVersion=id%3A20026128"}}},"field_project_images":{"data":[{"type":"file--file","id":"bfd5032d-b1c9-42a3-bf65-6b2e746a9601","meta":{"alt":"DropzoneJS Demo","title":null,"width":872,"height":545,"drupal_internal__target_id":9321}}],"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/92a8cec0-2ccf-4a90-958b-e4f32a819c7c\/field_project_images?resourceVersion=id%3A20026128"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/92a8cec0-2ccf-4a90-958b-e4f32a819c7c\/relationships\/field_project_images?resourceVersion=id%3A20026128"}}}}}],"included":[{"type":"taxonomy_term--module_categories","id":"86237004-3801-40cf-96b5-fe7d60efccb5","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/taxonomy_term\/module_categories\/86237004-3801-40cf-96b5-fe7d60efccb5?resourceVersion=id%3A187"},"working-copy":{"href":"https:\/\/new.drupal.org\/jsonapi\/taxonomy_term\/module_categories\/86237004-3801-40cf-96b5-fe7d60efccb5?resourceVersion=rel%3Aworking-copy"}},"attributes":{"name":"Content editing experience","drupal_internal__tid":187,"status":true,"description":{"value":"Enhance the editorial interface and improve the processes and workflows around creating, editing or removing content.","format":"1","processed":"\u003Cp\u003EEnhance the editorial interface and improve the processes and workflows around creating, editing or removing content.\u003C\/p\u003E"}}},{"type":"taxonomy_term--module_categories","id":"086cebcf-200f-4c34-886e-f9921919b292","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/taxonomy_term\/module_categories\/086cebcf-200f-4c34-886e-f9921919b292?resourceVersion=id%3A189"},"working-copy":{"href":"https:\/\/new.drupal.org\/jsonapi\/taxonomy_term\/module_categories\/086cebcf-200f-4c34-886e-f9921919b292?resourceVersion=rel%3Aworking-copy"}},"attributes":{"name":"Developer tools","drupal_internal__tid":189,"status":true,"description":{"value":"Empower developers with tools that assist with developing and debugging the frontend or backend of the site.","format":"1","processed":"\u003Cp\u003EEmpower developers with tools that assist with developing and debugging the frontend or backend of the site.\u003C\/p\u003E"}}},{"type":"taxonomy_term--module_categories","id":"68428c33-1db7-438d-b1b3-e23004e0982b","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/taxonomy_term\/module_categories\/68428c33-1db7-438d-b1b3-e23004e0982b?resourceVersion=id%3A192"},"working-copy":{"href":"https:\/\/new.drupal.org\/jsonapi\/taxonomy_term\/module_categories\/68428c33-1db7-438d-b1b3-e23004e0982b?resourceVersion=rel%3Aworking-copy"}},"attributes":{"name":"Media","drupal_internal__tid":192,"status":true,"description":{"value":"Enhance functionality related to media, or expand media resource types, such as images, videos, audio files, or documents.","format":"1","processed":"\u003Cp\u003EEnhance functionality related to media, or expand media resource types, such as images, videos, audio files, or documents.\u003C\/p\u003E"}}},{"type":"taxonomy_term--module_categories","id":"754c04cb-6da2-42ba-9032-d64307f68f45","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/taxonomy_term\/module_categories\/754c04cb-6da2-42ba-9032-d64307f68f45?resourceVersion=id%3A188"},"working-copy":{"href":"https:\/\/new.drupal.org\/jsonapi\/taxonomy_term\/module_categories\/754c04cb-6da2-42ba-9032-d64307f68f45?resourceVersion=rel%3Aworking-copy"}},"attributes":{"name":"Content display","drupal_internal__tid":188,"status":true,"description":{"value":"Configure the layout and format of content and data presented to site visitors.","format":"1","processed":"\u003Cp\u003EConfigure the layout and format of content and data presented to site visitors.\u003C\/p\u003E"}}},{"type":"taxonomy_term--module_categories","id":"3322058a-a158-4806-ac5b-9bcabc95edac","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/taxonomy_term\/module_categories\/3322058a-a158-4806-ac5b-9bcabc95edac?resourceVersion=id%3A185"},"working-copy":{"href":"https:\/\/new.drupal.org\/jsonapi\/taxonomy_term\/module_categories\/3322058a-a158-4806-ac5b-9bcabc95edac?resourceVersion=rel%3Aworking-copy"}},"attributes":{"name":"Integrations","drupal_internal__tid":185,"status":true,"description":{"value":"Use a third-party CSS or JS Framework, a self-hosted service like a CRM, or a third-party service with the site.","format":"1","processed":"\u003Cp\u003EUse a third-party CSS or JS Framework, a self-hosted service like a CRM, or a third-party service with the site.\u003C\/p\u003E"}}},{"type":"taxonomy_term--module_categories","id":"dcb48e9f-6afa-4842-8ef6-44b90b083fcc","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/taxonomy_term\/module_categories\/dcb48e9f-6afa-4842-8ef6-44b90b083fcc?resourceVersion=id%3A200"},"working-copy":{"href":"https:\/\/new.drupal.org\/jsonapi\/taxonomy_term\/module_categories\/dcb48e9f-6afa-4842-8ef6-44b90b083fcc?resourceVersion=rel%3Aworking-copy"}},"attributes":{"name":"Site structure","drupal_internal__tid":200,"status":true,"description":{"value":"Extend the structure of the site by way of content models, data storage, field types, and navigation, so it is more understandable to users.","format":"1","processed":"\u003Cp\u003EExtend the structure of the site by way of content models, data storage, field types, and navigation, so it is more understandable to users.\u003C\/p\u003E"}}},{"type":"taxonomy_term--module_categories","id":"d1322ab4-e2be-4f21-9e01-8c19b3da8bea","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/taxonomy_term\/module_categories\/d1322ab4-e2be-4f21-9e01-8c19b3da8bea?resourceVersion=id%3A197"},"working-copy":{"href":"https:\/\/new.drupal.org\/jsonapi\/taxonomy_term\/module_categories\/d1322ab4-e2be-4f21-9e01-8c19b3da8bea?resourceVersion=rel%3Aworking-copy"}},"attributes":{"name":"Performance","drupal_internal__tid":197,"status":true,"description":{"value":"Improve the real or perceived speed of the site, or monitor performance metrics.","format":"1","processed":"\u003Cp\u003EImprove the real or perceived speed of the site, or monitor performance metrics.\u003C\/p\u003E"}}},{"type":"taxonomy_term--maintenance_status","id":"09a378d2-fd35-41f3-bff0-10d9801741a4","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/taxonomy_term\/maintenance_status\/09a378d2-fd35-41f3-bff0-10d9801741a4?resourceVersion=id%3A27269"},"working-copy":{"href":"https:\/\/new.drupal.org\/jsonapi\/taxonomy_term\/maintenance_status\/09a378d2-fd35-41f3-bff0-10d9801741a4?resourceVersion=rel%3Aworking-copy"}},"attributes":{"drupal_internal__tid":27269,"status":true,"name":"Seeking co-maintainer(s)","description":{"value":"Maintainers are looking for help reviewing issues.","format":"1","processed":"\u003Cp\u003EMaintainers are looking for help reviewing issues.\u003C\/p\u003E"}}},{"type":"taxonomy_term--maintenance_status","id":"089406ad-304d-4737-80d1-2f08527ae49e","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/taxonomy_term\/maintenance_status\/089406ad-304d-4737-80d1-2f08527ae49e?resourceVersion=id%3A27271"},"working-copy":{"href":"https:\/\/new.drupal.org\/jsonapi\/taxonomy_term\/maintenance_status\/089406ad-304d-4737-80d1-2f08527ae49e?resourceVersion=rel%3Aworking-copy"}},"attributes":{"drupal_internal__tid":27271,"status":true,"name":"Actively maintained","description":{"value":"Maintainers strive to actively monitor issues and respond in a timely manner.","format":"1","processed":"\u003Cp\u003EMaintainers strive to actively monitor issues and respond in a timely manner.\u003C\/p\u003E"}}},{"type":"taxonomy_term--maintenance_status","id":"cee844e2-68b5-489d-bafa-6a0ade2b6dfd","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/taxonomy_term\/maintenance_status\/cee844e2-68b5-489d-bafa-6a0ade2b6dfd?resourceVersion=id%3A27273"},"working-copy":{"href":"https:\/\/new.drupal.org\/jsonapi\/taxonomy_term\/maintenance_status\/cee844e2-68b5-489d-bafa-6a0ade2b6dfd?resourceVersion=rel%3Aworking-copy"}},"attributes":{"drupal_internal__tid":27273,"status":true,"name":"Minimally maintained","description":{"value":"Maintainers monitor issues, but fast responses are not guaranteed.","format":"1","processed":"\u003Cp\u003EMaintainers monitor issues, but fast responses are not guaranteed.\u003C\/p\u003E"}}},{"type":"taxonomy_term--development_status","id":"e767288c-9800-4fb4-aeb8-8c311533838a","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/taxonomy_term\/development_status\/e767288c-9800-4fb4-aeb8-8c311533838a?resourceVersion=id%3A27274"},"working-copy":{"href":"https:\/\/new.drupal.org\/jsonapi\/taxonomy_term\/development_status\/e767288c-9800-4fb4-aeb8-8c311533838a?resourceVersion=rel%3Aworking-copy"}},"attributes":{"drupal_internal__tid":27274,"status":true,"name":"Under active development","description":{"value":"This project is under active development.","format":"1","processed":"\u003Cp\u003EThis project is under active development.\u003C\/p\u003E"}}},{"type":"taxonomy_term--development_status","id":"219c1cf2-dd7f-474b-9dd5-a26643fbc699","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/taxonomy_term\/development_status\/219c1cf2-dd7f-474b-9dd5-a26643fbc699?resourceVersion=id%3A27276"},"working-copy":{"href":"https:\/\/new.drupal.org\/jsonapi\/taxonomy_term\/development_status\/219c1cf2-dd7f-474b-9dd5-a26643fbc699?resourceVersion=rel%3Aworking-copy"}},"attributes":{"drupal_internal__tid":27276,"status":true,"name":"Maintenance fixes only","description":{"value":"Considered feature-complete by its maintainers.","format":"1","processed":"\u003Cp\u003EConsidered feature-complete by its maintainers.\u003C\/p\u003E"}}},{"type":"user--user","id":"45aa7efc-40a7-4cd3-a412-723ef2d49285","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/user\/user\/45aa7efc-40a7-4cd3-a412-723ef2d49285"}},"attributes":{"display_name":"Drupal Media Team","drupal_internal__uid":3260690,"name":"Drupal Media Team","field_country":null,"field_first_name":null,"field_git_username":"DrupalMedia","field_last_name":null},"relationships":{"user_picture":{"data":{"type":"file--file","id":"992629c2-134b-4da2-9434-73f839586d5b","meta":{"alt":null,"title":null,"width":261,"height":261,"drupal_internal__target_id":87132}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/user\/user\/45aa7efc-40a7-4cd3-a412-723ef2d49285\/user_picture"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/user\/user\/45aa7efc-40a7-4cd3-a412-723ef2d49285\/relationships\/user_picture"}}}}},{"type":"user--user","id":"4e809440-75b7-4ca9-b1d9-11fb32fe8280","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/user\/user\/4e809440-75b7-4ca9-b1d9-11fb32fe8280"}},"attributes":{"display_name":"bleen","drupal_internal__uid":77375,"name":"bleen","field_country":"US","field_first_name":"Alexander","field_git_username":"bleen18","field_last_name":"Ross"},"relationships":{"user_picture":{"data":{"type":"file--file","id":"0a2099aa-faba-4d99-9c4e-a3bcdb98db99","meta":{"alt":null,"title":null,"width":1024,"height":685,"drupal_internal__target_id":33153}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/user\/user\/4e809440-75b7-4ca9-b1d9-11fb32fe8280\/user_picture"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/user\/user\/4e809440-75b7-4ca9-b1d9-11fb32fe8280\/relationships\/user_picture"}}}}},{"type":"user--user","id":"66dde292-bfd9-479f-932e-25e8c466f2ee","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/user\/user\/66dde292-bfd9-479f-932e-25e8c466f2ee"}},"attributes":{"display_name":"ufku","drupal_internal__uid":9910,"name":"ufku","field_country":null,"field_first_name":null,"field_git_username":"ufku","field_last_name":null},"relationships":{"user_picture":{"data":null,"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/user\/user\/66dde292-bfd9-479f-932e-25e8c466f2ee\/user_picture"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/user\/user\/66dde292-bfd9-479f-932e-25e8c466f2ee\/relationships\/user_picture"}}}}},{"type":"user--user","id":"0de8e322-97e1-40d5-b668-54d0b4ba1c35","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/user\/user\/0de8e322-97e1-40d5-b668-54d0b4ba1c35"}},"attributes":{"display_name":"imyaro","drupal_internal__uid":2870933,"name":"imyaro","field_country":null,"field_first_name":"Yaroslav","field_git_username":"YaroslavLushnikov","field_last_name":"Lushnikov"},"relationships":{"user_picture":{"data":{"type":"file--file","id":"14ef2ba5-69c5-4b59-bf56-53ecd1c9c9c8","meta":{"alt":null,"title":null,"width":512,"height":512,"drupal_internal__target_id":107773}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/user\/user\/0de8e322-97e1-40d5-b668-54d0b4ba1c35\/user_picture"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/user\/user\/0de8e322-97e1-40d5-b668-54d0b4ba1c35\/relationships\/user_picture"}}}}},{"type":"user--user","id":"f30523fc-5428-4d45-b59b-d25fb80ac58e","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/user\/user\/f30523fc-5428-4d45-b59b-d25fb80ac58e"}},"attributes":{"display_name":"jec006","drupal_internal__uid":855980,"name":"jec006","field_country":"US","field_first_name":"Josh","field_git_username":"jec006","field_last_name":"Caldwell"},"relationships":{"user_picture":{"data":null,"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/user\/user\/f30523fc-5428-4d45-b59b-d25fb80ac58e\/user_picture"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/user\/user\/f30523fc-5428-4d45-b59b-d25fb80ac58e\/relationships\/user_picture"}}}}},{"type":"user--user","id":"5ed154af-9c4f-4050-a567-1ac169f73f5c","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/user\/user\/5ed154af-9c4f-4050-a567-1ac169f73f5c"}},"attributes":{"display_name":"gausarts","drupal_internal__uid":159062,"name":"gausarts","field_country":"ID","field_first_name":"Gaus","field_git_username":"gausarts","field_last_name":"Surahman"},"relationships":{"user_picture":{"data":{"type":"file--file","id":"913731c6-78e1-4797-b930-d5ffbec7ad51","meta":{"alt":null,"title":null,"width":280,"height":268,"drupal_internal__target_id":65818}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/user\/user\/5ed154af-9c4f-4050-a567-1ac169f73f5c\/user_picture"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/user\/user\/5ed154af-9c4f-4050-a567-1ac169f73f5c\/relationships\/user_picture"}}}}},{"type":"user--user","id":"29ec3ae7-ffa3-4a34-8950-5f35a15607b6","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/user\/user\/29ec3ae7-ffa3-4a34-8950-5f35a15607b6"}},"attributes":{"display_name":"woprrr","drupal_internal__uid":858604,"name":"woprrr","field_country":"FR","field_first_name":"Alexandre","field_git_username":"woprrr","field_last_name":"Mallet"},"relationships":{"user_picture":{"data":{"type":"file--file","id":"9b9bd66c-22d6-4184-9879-0f2882007df2","meta":{"alt":null,"title":null,"width":460,"height":460,"drupal_internal__target_id":99654}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/user\/user\/29ec3ae7-ffa3-4a34-8950-5f35a15607b6\/user_picture"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/user\/user\/29ec3ae7-ffa3-4a34-8950-5f35a15607b6\/relationships\/user_picture"}}}}},{"type":"user--user","id":"299d79e6-7915-49fc-a637-0ff3f39a6a1e","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/user\/user\/299d79e6-7915-49fc-a637-0ff3f39a6a1e"}},"attributes":{"display_name":"shadcn","drupal_internal__uid":571032,"name":"shadcn","field_country":"US","field_first_name":"shadcn","field_git_username":"arshad","field_last_name":null},"relationships":{"user_picture":{"data":{"type":"file--file","id":"d9d980de-67d8-4b1d-8768-99827296c32f","meta":{"alt":null,"title":null,"width":978,"height":1024,"drupal_internal__target_id":147498}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/user\/user\/299d79e6-7915-49fc-a637-0ff3f39a6a1e\/user_picture"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/user\/user\/299d79e6-7915-49fc-a637-0ff3f39a6a1e\/relationships\/user_picture"}}}}},{"type":"user--user","id":"31f0ee56-0ffd-48ee-b942-873dc4142e54","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/user\/user\/31f0ee56-0ffd-48ee-b942-873dc4142e54"}},"attributes":{"display_name":"zkday","drupal_internal__uid":888644,"name":"zkday","field_country":"VN","field_first_name":null,"field_git_username":"zkday","field_last_name":null},"relationships":{"user_picture":{"data":null,"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/user\/user\/31f0ee56-0ffd-48ee-b942-873dc4142e54\/user_picture"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/user\/user\/31f0ee56-0ffd-48ee-b942-873dc4142e54\/relationships\/user_picture"}}}}},{"type":"file--file","id":"ad73639c-9a26-4617-8877-4e5e64583277","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/file\/file\/ad73639c-9a26-4617-8877-4e5e64583277"}},"attributes":{"uri":{"value":"public:\/\/project-images\/logo_CROP.png","url":"\/assets\/project-images\/logo_CROP.png"}}},{"type":"file--file","id":"9fd9e5f8-a0d4-4108-87bd-e708fa9b568a","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/file\/file\/9fd9e5f8-a0d4-4108-87bd-e708fa9b568a"}},"attributes":{"uri":{"value":"public:\/\/project-images\/entity_browser_logo.png","url":"\/assets\/project-images\/entity_browser_logo.png"}}},{"type":"file--file","id":"dc3950dc-4883-408c-937e-fde99ac8ea0f","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/file\/file\/dc3950dc-4883-408c-937e-fde99ac8ea0f"}},"attributes":{"uri":{"value":"public:\/\/project-images\/Focal_Point_Test_Drivel.png","url":"\/assets\/project-images\/Focal_Point_Test_Drivel.png"}}},{"type":"file--file","id":"6d0a7960-ebd7-420a-b476-7ed1393e032e","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/file\/file\/6d0a7960-ebd7-420a-b476-7ed1393e032e"}},"attributes":{"uri":{"value":"public:\/\/project-images\/imce-file-browser-d8_0.png","url":"\/assets\/project-images\/imce-file-browser-d8_0.png"}}},{"type":"file--file","id":"8352c22a-ee54-485d-97c8-827b101be8a1","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/file\/file\/8352c22a-ee54-485d-97c8-827b101be8a1"}},"attributes":{"uri":{"value":"public:\/\/project-images\/01-native-grid-Screenshot from 2021-09-16 21-53-29.png","url":"\/assets\/project-images\/01-native-grid-Screenshot%20from%202021-09-16%2021-53-29.png"}}},{"type":"file--file","id":"dfad7049-f12d-4ee2-bca8-0b8f7900ac8f","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/file\/file\/dfad7049-f12d-4ee2-bca8-0b8f7900ac8f"}},"attributes":{"uri":{"value":"public:\/\/project-images\/entity_embed.png","url":"\/assets\/project-images\/entity_embed.png"}}},{"type":"file--file","id":"eb984425-09cf-4a2f-8b63-1e43800efd34","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/file\/file\/eb984425-09cf-4a2f-8b63-1e43800efd34"}},"attributes":{"uri":{"value":"public:\/\/project-images\/iwc_logo.png","url":"\/assets\/project-images\/iwc_logo.png"}}},{"type":"file--file","id":"dd59bc9c-7938-4c8f-b2e5-efd546596f79","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/file\/file\/dd59bc9c-7938-4c8f-b2e5-efd546596f79"}},"attributes":{"uri":{"value":"public:\/\/project-images\/slick-carousel-drupal.png","url":"\/assets\/project-images\/slick-carousel-drupal.png"}}},{"type":"file--file","id":"bfd5032d-b1c9-42a3-bf65-6b2e746a9601","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/file\/file\/bfd5032d-b1c9-42a3-bf65-6b2e746a9601"}},"attributes":{"uri":{"value":"public:\/\/project-images\/17-02-2013-23-37-56-dropzonejs.png","url":"\/assets\/project-images\/17-02-2013-23-37-56-dropzonejs.png"}}}],"meta":{"count":6291},"links":{"last":{"href":"https:\/\/new.drupal.org\/jsonapi\/index\/project_modules?filter%5Bstatus%5D=1\u0026filter%5Btype%5D=project_module\u0026filter%5Bproject_type%5D=full\u0026filter%5Bmodule_categories_uuid%5D%5Bvalue%5D%5B0%5D=3df293b3-c9a1-4232-962b-3c8169e8e6e3\u0026filter%5Bmodule_categories_uuid%5D%5Bvalue%5D%5B1%5D=0cd80c8e-5c20-43a8-aa3e-ec701007d443\u0026filter%5Bmodule_categories_uuid%5D%5Bvalue%5D%5B2%5D=68428c33-1db7-438d-b1b3-e23004e0982b\u0026filter%5Bmodule_categories_uuid%5D%5Boperator%5D=IN\u0026filter%5Bmodule_categories_uuid%5D%5Bpath%5D=module_categories_uuid\u0026filter%5Bn_security_coverage%5D%5Bvalue%5D%5B0%5D=revoked\u0026filter%5Bn_security_coverage%5D%5Boperator%5D=NOT%20IN\u0026filter%5Bn_security_coverage%5D%5Bpath%5D=security_coverage\u0026page%5Boffset%5D=6288\u0026page%5Blimit%5D=12\u0026include=field_module_categories%2Cfield_maintenance_status%2Cfield_development_status%2Cuid%2Cfield_project_images"},"next":{"href":"https:\/\/new.drupal.org\/jsonapi\/index\/project_modules?filter%5Bstatus%5D=1\u0026filter%5Btype%5D=project_module\u0026filter%5Bproject_type%5D=full\u0026filter%5Bmodule_categories_uuid%5D%5Bvalue%5D%5B0%5D=3df293b3-c9a1-4232-962b-3c8169e8e6e3\u0026filter%5Bmodule_categories_uuid%5D%5Bvalue%5D%5B1%5D=0cd80c8e-5c20-43a8-aa3e-ec701007d443\u0026filter%5Bmodule_categories_uuid%5D%5Bvalue%5D%5B2%5D=68428c33-1db7-438d-b1b3-e23004e0982b\u0026filter%5Bmodule_categories_uuid%5D%5Boperator%5D=IN\u0026filter%5Bmodule_categories_uuid%5D%5Bpath%5D=module_categories_uuid\u0026filter%5Bn_security_coverage%5D%5Bvalue%5D%5B0%5D=revoked\u0026filter%5Bn_security_coverage%5D%5Boperator%5D=NOT%20IN\u0026filter%5Bn_security_coverage%5D%5Bpath%5D=security_coverage\u0026page%5Boffset%5D=12\u0026page%5Blimit%5D=12\u0026include=field_module_categories%2Cfield_maintenance_status%2Cfield_development_status%2Cuid%2Cfield_project_images"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/index\/project_modules?filter%5Bstatus%5D=1\u0026filter%5Btype%5D=project_module\u0026filter%5Bproject_type%5D=full\u0026filter%5Bmodule_categories_uuid%5D%5Bvalue%5D%5B0%5D=3df293b3-c9a1-4232-962b-3c8169e8e6e3\u0026filter%5Bmodule_categories_uuid%5D%5Bvalue%5D%5B1%5D=0cd80c8e-5c20-43a8-aa3e-ec701007d443\u0026filter%5Bmodule_categories_uuid%5D%5Bvalue%5D%5B2%5D=68428c33-1db7-438d-b1b3-e23004e0982b\u0026filter%5Bmodule_categories_uuid%5D%5Boperator%5D=IN\u0026filter%5Bmodule_categories_uuid%5D%5Bpath%5D=module_categories_uuid\u0026filter%5Bn_security_coverage%5D%5Bvalue%5D%5B0%5D=revoked\u0026filter%5Bn_security_coverage%5D%5Boperator%5D=NOT%20IN\u0026filter%5Bn_security_coverage%5D%5Bpath%5D=security_coverage\u0026include=field_module_categories%2Cfield_maintenance_status%2Cfield_development_status%2Cuid%2Cfield_project_images\u0026page%5Blimit%5D=12\u0026page%5Boffset%5D=0"}}}