Generate an image gallery in various layouts.
Generates responsive image galleries in various layouts with animations and saves to HTML files.
/plugin marketplace add vcode-sh/vibe-tools/plugin install greenshift-blocks@vibe-toolsGenerate an image gallery in various layouts.
$ARGUMENTS
Section (alignfull)
└── Content Area
└── Gallery Container (flexbox/grid)
├── Image Wrapper 1
│ └── Image
├── Image Wrapper 2
│ └── Image
└── ...
{
"styleAttributes": {
"display": ["flex"],
"flexWrap": ["wrap"],
"gap": ["var(--wp--preset--spacing--50, 1.5rem)"],
"flexColumns_Extra": 4,
"flexWidths_Extra": {
"desktop": {"widths": [25, 25, 25, 25]},
"tablet": {"widths": [50, 50, 50, 50]},
"mobile": {"widths": [100, 100, 100, 100]}
}
}
}
{
"type": "inner",
"styleAttributes": {
"overflow": ["hidden"],
"borderRadius": ["var(--wp--custom--border-radius--small, 10px)"]
}
}
{
"tag": "img",
"src": "https://placehold.co/600x600",
"alt": "",
"styleAttributes": {
"width": ["100%"],
"height": ["auto"],
"aspectRatio": ["1/1"],
"objectFit": ["cover"],
"transition": ["var(--wp--custom--transition--ease)"],
"scale_hover": ["1.05"]
}
}
CRITICAL: For image gallery sliders, use greenshift-blocks/element with tag:"img" inside slider-content-zone. Do NOT use direct <img> in slider-image-wrapper.
<!-- wp:greenshift-blocks/swiper {"id":"gsbp-gallery01","tabs":4,"slidesPerView":[4,null,null,null],"slidesPerGroup":[1],"loop":true,"autoplay":true,"autoplayRestore":true,"disablePause":true,"autodelay":3000,"arrowsOnHover":true,"bgContain":false,"effect":"scale","overflow":true,"centered":true,"autoHeight":true} -->
<div class="wp-block-greenshift-blocks-swiper gs-swiper gspb_slider-id-gsbp-gallery01" style="position:relative"><div class="gs-swiper-init" data-slidesperview="4" data-slidespergroup="1" data-spacebetween="10" data-loop="true" data-autoplay="true" data-autodelay="3000" data-effect="scale" data-centered="true" data-autoheight="true"><div class="swiper"><div class="swiper-wrapper"><!-- wp:greenshift-blocks/swipe {"imageurl":"","bgContain":false,"id":"gsbp-slide01"} -->
<div class="swiper-slide"><div class="wp-block-greenshift-blocks-swipe swiper-slide-inner gspb_sliderinner-id-gsbp-slide01"><div class="slider-content-zone"><!-- wp:greenshift-blocks/element {"id":"gsbp-img01","tag":"img","localId":"gsbp-img01","src":"https://placehold.co/600x400","alt":"Gallery image 1"} -->
<img src="https://placehold.co/600x400" alt="Gallery image 1" loading="lazy"/>
<!-- /wp:greenshift-blocks/element --></div></div></div>
<!-- /wp:greenshift-blocks/swipe -->
<!-- Additional slides follow same pattern... -->
</div></div><div class="swiper-pagination"></div><div class="swiper-button-prev"></div><div class="swiper-button-next"></div><div class="swiper-scrollbar"></div></div></div>
<!-- /wp:greenshift-blocks/swiper -->
imageurl must be empty string ""bgContain:false to swipe JSONslider-overlaybg or slider-image-wrapper divsslider-content-zone as greenshift-blocks/element blockswidth="100%" height="100%" on slide imagesfade-up with delay for each image (0, 100, 200, 300...)zoom-in on hoverfade-right/fade-left for 3-image layoutgallery-grid.html, gallery-slider.html)IMPORTANT: Always save output to a .html file. Never just display the code in chat.