{"id":320400,"date":"2026-06-13T19:42:49","date_gmt":"2026-06-13T19:42:49","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/amitry-project-grid\/"},"modified":"2026-06-15T16:33:57","modified_gmt":"2026-06-15T16:33:57","slug":"amitry-project-grid","status":"publish","type":"plugin","link":"https:\/\/cn.wordpress.org\/plugins\/amitry-project-grid\/","author":23468925,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.2","stable_tag":"1.0.2","tested":"7.0","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"Amitry Project Grid","header_author":"Amitry","header_description":"Present projects and case studies as polished cards with icon, headline, description, an interactive browser-mockup screenshot that scrolls on hover, and a call-to-action button. Arrange single cards or use the grid container for multi-project layouts. Block, shortcode, and Elementor widget.","assets_banners_color":"1e2739","last_updated":"2026-06-15 16:33:57","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/amitry.de\/project-grid\/","header_author_uri":"https:\/\/amitry.de","rating":0,"author_block_rating":0,"active_installs":0,"downloads":79,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"amitry","date":"2026-06-13 19:42:21"},"1.0.1":{"tag":"1.0.1","author":"amitry","date":"2026-06-15 15:43:39"},"1.0.2":{"tag":"1.0.2","author":"amitry","date":"2026-06-15 16:33:57"}},"upgrade_notice":{"1.0.2":"<p>Adds a link to the new live demo.<\/p>","1.0.1":"<p>Shortcode tag is now [apshow_project_card]. Update any existing shortcodes.<\/p>","1.0.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3571304,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3571304,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3571304,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3571304,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"amitry\/project-card":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"amitry\/project-card","version":"1.0.0","title":"Project Card","category":"design","icon":"id-alt","description":"A single project showcase card: icon, headline, description, browser-mockup screenshot with hover-scroll, and call-to-action.","keywords":["card","project","portfolio","case study","amitry"],"textdomain":"amitry-project-grid","supports":{"html":false,"reusable":true,"spacing":{"margin":true},"anchor":true},"attributes":{"iconType":{"type":"string","default":"none"},"iconValue":{"type":"string","default":""},"iconId":{"type":"number","default":0},"iconAlt":{"type":"string","default":""},"headline":{"type":"string","default":""},"headlineTag":{"type":"string","default":"h3"},"description":{"type":"string","default":""},"imageId":{"type":"number","default":0},"imageUrl":{"type":"string","default":""},"imageAlt":{"type":"string","default":""},"imageWidth":{"type":"number","default":0},"imageHeight":{"type":"number","default":0},"frame":{"type":"string","default":"browser"},"scrollMode":{"type":"string","default":"hover_return"},"scrollSpeed":{"type":"number","default":8},"viewportRatio":{"type":"string","default":"16:10"},"urlLabel":{"type":"string","default":""},"mockupLink":{"type":"string","default":""},"ctaText":{"type":"string","default":""},"ctaUrl":{"type":"string","default":""},"ctaTarget":{"type":"string","default":"_self"},"maxWidth":{"type":"number","default":0},"align":{"type":"string","default":"left"}},"editorScript":"file:.\/index.js","style":"apshow-frontend","render":"file:.\/render.php"},"amitry\/project-grid":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"amitry\/project-grid","version":"1.0.0","title":"Project Grid","category":"design","icon":"screenoptions","description":"Container for multiple Project Cards arranged in a responsive grid.","keywords":["grid","portfolio","showcase","cards","amitry"],"textdomain":"amitry-project-grid","supports":{"html":false,"align":["wide","full"],"spacing":{"margin":true,"padding":true},"anchor":true},"attributes":{"columns":{"type":"number","default":3}},"editorScript":"file:.\/index.js","style":"apshow-frontend","render":"file:.\/render.php"}},"tagged_versions":["1.0.0","1.0.1","1.0.2"],"block_files":[],"assets_screenshots":{"screenshot-1.gif":{"filename":"screenshot-1.gif","revision":3573436,"resolution":"1","location":"assets","locale":"","width":760,"height":551},"screenshot-1.png":{"filename":"screenshot-1.png","revision":3571308,"resolution":"1","location":"assets","locale":"","width":1492,"height":767}},"screenshots":{"1":"The hover effect in action: a full-page website screenshot scrolling inside a browser mockup.","2":"The Project Card block in the editor with all fields filled in.","3":"A Project Grid block with three cards; set 1-6 columns in the sidebar.","4":"A single card on the frontend, and the same card during hover showing the screenshot scrolled.","5":"Sidebar controls for icon, headline, mockup and CTA."}},"plugin_section":[],"plugin_tags":[267267,789,267268,1116,14342],"plugin_category":[43,50],"plugin_contributors":[260954],"plugin_business_model":[],"class_list":["post-320400","plugin","type-plugin","status-publish","hentry","plugin_tags-browser-mockup","plugin_tags-portfolio","plugin_tags-scrolling-screenshot","plugin_tags-showcase","plugin_tags-website-preview","plugin_category-customization","plugin_category-media","plugin_contributors-amitry","plugin_committers-amitry"],"banners":{"banner":"https:\/\/ps.w.org\/amitry-project-grid\/assets\/banner-772x250.png?rev=3571304","banner_2x":"https:\/\/ps.w.org\/amitry-project-grid\/assets\/banner-1544x500.png?rev=3571304","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/amitry-project-grid\/assets\/icon-128x128.png?rev=3571304","icon_2x":"https:\/\/ps.w.org\/amitry-project-grid\/assets\/icon-256x256.png?rev=3571304","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/amitry-project-grid\/assets\/screenshot-1.png?rev=3571308","caption":"The hover effect in action: a full-page website screenshot scrolling inside a browser mockup."}],"raw_content":"<!--section=description-->\n<p><strong><a href=\"https:\/\/demo.amitry.de\/\">See the live demo &rarr;<\/a><\/strong> &mdash; hover any mockup to watch the full page scroll.<\/p>\n\n<p>Amitry Project Grid is a WordPress browser mockup and scrolling screenshot plugin for agencies and freelancers. Show a website preview inside a clean browser frame that scrolls through the full-page screenshot on hover, then group these project cards into a responsive portfolio grid. Each card has five fields: an icon (dashicon or uploaded image), a headline, a description, a browser-mockup screenshot that scrolls automatically on hover, and a call-to-action button.<\/p>\n\n<p>People look for this kind of plugin under many names - browser mockup, scrolling screenshot, website preview, portfolio screenshot grid, project showcase, or website frame. Amitry Project Grid covers that use case as a block, a shortcode, and an Elementor widget.<\/p>\n\n<p>Cards can be used individually or grouped into a responsive grid for portfolio overviews.<\/p>\n\n<h4>Card fields<\/h4>\n\n<ul>\n<li>Icon (Dashicon picker or uploaded image)<\/li>\n<li>Headline with selectable heading level (H2-H6)<\/li>\n<li>Description with basic inline formatting (bold, italic, links)<\/li>\n<li>Mockup image displayed inside a browser frame, with hover-scroll for full-page screenshots<\/li>\n<li>Call-to-action button with text, URL and target<\/li>\n<\/ul>\n\n<h4>Frontends<\/h4>\n\n<ul>\n<li>Project Grid block: grid container with a 1-6 column setting (responsive on smaller screens)<\/li>\n<li>Project Card block: single card, can be used standalone or inside a grid<\/li>\n<li>Shortcode for classic themes<\/li>\n<li>Elementor widget (loads only if Elementor is active)<\/li>\n<\/ul>\n\n<h4>Mockup feature<\/h4>\n\n<p>The mockup feature renders the uploaded screenshot inside a browser-style frame with traffic-light dots and an address bar. On hover (desktop) the image scrolls from top to bottom of the screenshot, then returns when the cursor leaves. On touch devices the scroll plays automatically when the card enters the viewport, and tapping replays it.<\/p>\n\n<p>The plugin uses the original uploaded image (not WordPress\\' auto-scaled version) so long screenshots stay sharp.<\/p>\n\n<h4>Privacy<\/h4>\n\n<p>The plugin makes no external network requests. No data is collected, transmitted or stored outside your own WordPress installation.<\/p>\n\n<h4>For developers<\/h4>\n\n<p>The plugin exposes hooks for extensions:<\/p>\n\n<ul>\n<li><code>apshow_renderer_defaults<\/code>, <code>apshow_wrapper_classes<\/code>, <code>apshow_render_html<\/code>, <code>apshow_kses_allowed<\/code> (filters)<\/li>\n<li><code>apshow_allowed_frames<\/code>, <code>apshow_allowed_scroll_modes<\/code>, <code>apshow_mockup_bar_html<\/code>, <code>apshow_mockup_html<\/code> (filters for extending mockup frames and animation modes)<\/li>\n<li><code>apshow_before_render<\/code>, <code>apshow_after_render<\/code>, <code>apshow_loaded<\/code>, <code>apshow_activated<\/code>, <code>apshow_deactivated<\/code>, <code>apshow_admin_about_after_content<\/code> (actions)<\/li>\n<li><code>APSHOW_HOOK_VERSION<\/code> constant for compatibility checks<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to <code>\/wp-content\/plugins\/<\/code> or install via the Plugins screen.<\/li>\n<li>Activate the plugin.<\/li>\n<li>Add the \"Project Grid\" or \"Project Card\" block, or use the <code>[apshow_project_card]<\/code> shortcode, or the Elementor widget.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20an%20external%20service%20or%20api%20key%3F\"><h3>Do I need an external service or API key?<\/h3><\/dt>\n<dd><p>No. The plugin works entirely with images you upload to your own media library.<\/p><\/dd>\n<dt id=\"can%20i%20use%20just%20one%20card%20without%20the%20grid%3F\"><h3>Can I use just one card without the grid?<\/h3><\/dt>\n<dd><p>Yes. The Project Card block works standalone.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20my%20theme%3F\"><h3>Does it work with my theme?<\/h3><\/dt>\n<dd><p>The blocks, shortcode and Elementor widget work with any standard WordPress theme. Block alignment options (wide, full) on the grid require a theme that supports them.<\/p><\/dd>\n<dt id=\"is%20elementor%20required%3F\"><h3>Is Elementor required?<\/h3><\/dt>\n<dd><p>No. The Elementor widget only registers when Elementor is active.<\/p><\/dd>\n<dt id=\"how%20tall%20can%20my%20screenshot%20be%3F\"><h3>How tall can my screenshot be?<\/h3><\/dt>\n<dd><p>Any height. The plugin reads the original uploaded image so even very tall full-page screenshots stay sharp inside the mockup.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Added a link to the live demo at https:\/\/demo.amitry.de\/<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Renamed the single-card shortcode to [apshow_project_card] for prefix consistency.<\/li>\n<li>Readme: clearer title and description for the browser-mockup \/ scrolling-screenshot use case.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Show website previews in a browser mockup that scrolls on hover. Build portfolio and project showcase grids with screenshots, headline, and CTA.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/320400","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=320400"}],"author":[{"embeddable":true,"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/amitry"}],"wp:attachment":[{"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=320400"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=320400"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=320400"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=320400"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=320400"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=320400"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}