{"id":298217,"date":"2026-04-17T17:15:04","date_gmt":"2026-04-17T17:15:04","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/wuppi-blocks\/"},"modified":"2026-04-20T16:29:39","modified_gmt":"2026-04-20T16:29:39","slug":"wuppi-blocks","status":"publish","type":"plugin","link":"https:\/\/ky.wordpress.org\/plugins\/wuppi-blocks\/","author":23471449,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.0.2","stable_tag":"1.0.2","tested":"6.9.4","requires":"6.5","requires_php":"8.0","requires_plugins":null,"header_name":"Wuppi Blocks","header_author":"ambronet","header_description":"Twelve lightweight Gutenberg blocks and service-focused patterns for modern block themes.","assets_banners_color":"f8f5f5","last_updated":"2026-04-20 16:29:39","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/www.ambronet.dk\/wuppi\/blocks","header_author_uri":"https:\/\/www.ambronet.dk","rating":0,"author_block_rating":0,"active_installs":0,"downloads":153,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.1":{"tag":"1.0.1","author":"giannidk","date":"2026-04-17 17:14:27"},"1.0.2":{"tag":"1.0.2","author":"giannidk","date":"2026-04-20 16:29:39"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3509130,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3509130,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3509130,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3509130,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3509130,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{"blueprint.json":{"filename":"blueprint.json","revision":3511045,"resolution":false,"location":"assets","locale":"","contents":"{\"$schema\":\"https:\\\/\\\/playground.wordpress.net\\\/blueprint-schema.json\",\"landingPage\":\"\\\/\",\"preferredVersions\":{\"php\":\"8.3\",\"wp\":\"latest\"},\"phpExtensionBundles\":[\"kitchen-sink\"],\"steps\":[{\"step\":\"setSiteOptions\",\"options\":{\"blogname\":\"Wuppi Blocks Preview\",\"blogdescription\":\"Lightweight Gutenberg blocks and service-focused patterns.\"}},{\"step\":\"installTheme\",\"themeData\":{\"resource\":\"wordpress.org\\\/themes\",\"slug\":\"wuppi\"}},{\"step\":\"runPHP\",\"code\":\"<?php\\nrequire '\\\/wordpress\\\/wp-load.php';\\n\\n$delete_post_by_path = static function ( $path, $post_type ) {\\n    $post = get_page_by_path( $path, OBJECT, $post_type );\\n    if ( $post instanceof WP_Post ) {\\n        wp_delete_post( $post->ID, true );\\n    }\\n};\\n\\n$ensure_page = static function ( array $args ) {\\n    $existing = get_page_by_path( $args['post_name'], OBJECT, 'page' );\\n\\n    if ( $existing instanceof WP_Post ) {\\n        $args['ID'] = $existing->ID;\\n        wp_update_post( $args );\\n        return (int) $existing->ID;\\n    }\\n\\n    return (int) wp_insert_post( $args );\\n};\\n\\nswitch_theme( 'wuppi' );\\n$delete_post_by_path( 'hello-world', 'post' );\\n$delete_post_by_path( 'sample-page', 'page' );\\n$delete_post_by_path( 'privacy-policy', 'page' );\\n\\n$home_content = implode(\\n    \\\"\\\\n\\\\n\\\",\\n    array(\\n        '<!-- wp:group {\\\"align\\\":\\\"full\\\",\\\"style\\\":{\\\"spacing\\\":{\\\"padding\\\":{\\\"top\\\":\\\"var:preset|spacing|80\\\",\\\"right\\\":\\\"var:preset|spacing|50\\\",\\\"bottom\\\":\\\"var:preset|spacing|80\\\",\\\"left\\\":\\\"var:preset|spacing|50\\\"},\\\"blockGap\\\":\\\"var:preset|spacing|50\\\"}},\\\"layout\\\":{\\\"type\\\":\\\"constrained\\\"}} -->',\\n        '<div class=\\\"wp-block-group alignfull\\\" style=\\\"padding-top:var(--wp--preset--spacing--80);padding-right:var(--wp--preset--spacing--50);padding-bottom:var(--wp--preset--spacing--80);padding-left:var(--wp--preset--spacing--50)\\\">',\\n        '<!-- wp:paragraph {\\\"textColor\\\":\\\"primary\\\",\\\"fontSize\\\":\\\"small\\\"} -->',\\n        '<p class=\\\"has-primary-color has-text-color has-small-font-size\\\">WUPPI BLOCKS<\\\/p>',\\n        '<!-- \\\/wp:paragraph -->',\\n        '<!-- wp:heading {\\\"level\\\":1,\\\"fontSize\\\":\\\"xx-large\\\"} -->',\\n        '<h1 class=\\\"wp-block-heading has-xx-large-font-size\\\">A focused block toolkit for modern service websites.<\\\/h1>',\\n        '<!-- \\\/wp:heading -->',\\n        '<!-- wp:paragraph {\\\"textColor\\\":\\\"muted-foreground\\\",\\\"fontSize\\\":\\\"medium\\\"} -->',\\n        '<p class=\\\"has-muted-foreground-color has-text-color has-medium-font-size\\\">This preview combines custom blocks and ready-made patterns from Wuppi Blocks on the published Wuppi theme, so reviewers can see the collection in a complete site context.<\\\/p>',\\n        '<!-- \\\/wp:paragraph -->',\\n        '<!-- wp:columns {\\\"align\\\":\\\"wide\\\",\\\"style\\\":{\\\"spacing\\\":{\\\"blockGap\\\":{\\\"left\\\":\\\"var:preset|spacing|40\\\"}}}} -->',\\n        '<div class=\\\"wp-block-columns alignwide\\\">',\\n        '<!-- wp:column -->',\\n        '<div class=\\\"wp-block-column\\\"><!-- wp:wuppi\\\/counter {\\\"value\\\":12,\\\"suffix\\\":\\\"+\\\",\\\"label\\\":\\\"Custom blocks\\\",\\\"iconEnabled\\\":true,\\\"iconName\\\":\\\"star\\\"} \\\/--><\\\/div>',\\n        '<!-- \\\/wp:column -->',\\n        '<!-- wp:column -->',\\n        '<div class=\\\"wp-block-column\\\"><!-- wp:wuppi\\\/counter {\\\"value\\\":4,\\\"label\\\":\\\"Ready-made patterns\\\",\\\"iconEnabled\\\":true,\\\"iconName\\\":\\\"briefcase\\\"} \\\/--><\\\/div>',\\n        '<!-- \\\/wp:column -->',\\n        '<!-- wp:column -->',\\n        '<div class=\\\"wp-block-column\\\"><!-- wp:wuppi\\\/counter {\\\"value\\\":100,\\\"suffix\\\":\\\"%\\\",\\\"label\\\":\\\"Native WordPress UI\\\",\\\"iconEnabled\\\":true,\\\"iconName\\\":\\\"check\\\"} \\\/--><\\\/div>',\\n        '<!-- \\\/wp:column -->',\\n        '<\\\/div>',\\n        '<!-- \\\/wp:columns -->',\\n        '<!-- wp:pattern {\\\"slug\\\":\\\"wuppi\\\/services-grid\\\"} \\\/-->',\\n        '<!-- wp:wuppi\\\/notice {\\\"type\\\":\\\"success\\\",\\\"title\\\":\\\"Built for real client work\\\",\\\"content\\\":\\\"Wuppi Blocks adds practical sections for services, pricing, testimonials, FAQs, and contact details without shipping tracking or external UI frameworks.\\\",\\\"showIcon\\\":true,\\\"align\\\":\\\"wide\\\"} \\\/-->',\\n        '<!-- wp:columns {\\\"align\\\":\\\"wide\\\",\\\"style\\\":{\\\"spacing\\\":{\\\"blockGap\\\":{\\\"left\\\":\\\"var:preset|spacing|40\\\"}}}} -->',\\n        '<div class=\\\"wp-block-columns alignwide\\\">',\\n        '<!-- wp:column -->',\\n        '<div class=\\\"wp-block-column\\\"><!-- wp:wuppi\\\/pricing-table {\\\"planName\\\":\\\"Studio Plan\\\",\\\"description\\\":\\\"A clean pricing card for solo practitioners and small studios.\\\",\\\"priceMonthly\\\":\\\"79\\\",\\\"priceYearly\\\":\\\"790\\\",\\\"currency\\\":\\\"EUR\\\",\\\"features\\\":[{\\\"text\\\":\\\"Service and pricing sections\\\",\\\"available\\\":true},{\\\"text\\\":\\\"FAQ block with schema\\\",\\\"available\\\":true},{\\\"text\\\":\\\"Animated counters\\\",\\\"available\\\":true}],\\\"ctaLabel\\\":\\\"Get started\\\",\\\"ctaUrl\\\":\\\"https:\\\/\\\/example.com\\\",\\\"badge\\\":\\\"Popular\\\",\\\"isFeatured\\\":true} \\\/--><\\\/div>',\\n        '<!-- \\\/wp:column -->',\\n        '<!-- wp:column -->',\\n        '<div class=\\\"wp-block-column\\\"><!-- wp:wuppi\\\/opening-hours {\\\"title\\\":\\\"Opening hours\\\",\\\"hours\\\":[{\\\"day\\\":\\\"Monday\\\",\\\"open\\\":\\\"09:00\\\",\\\"close\\\":\\\"17:00\\\",\\\"closed\\\":false},{\\\"day\\\":\\\"Tuesday\\\",\\\"open\\\":\\\"09:00\\\",\\\"close\\\":\\\"17:00\\\",\\\"closed\\\":false},{\\\"day\\\":\\\"Wednesday\\\",\\\"open\\\":\\\"09:00\\\",\\\"close\\\":\\\"17:00\\\",\\\"closed\\\":false},{\\\"day\\\":\\\"Thursday\\\",\\\"open\\\":\\\"09:00\\\",\\\"close\\\":\\\"17:00\\\",\\\"closed\\\":false},{\\\"day\\\":\\\"Friday\\\",\\\"open\\\":\\\"09:00\\\",\\\"close\\\":\\\"15:00\\\",\\\"closed\\\":false},{\\\"day\\\":\\\"Saturday\\\",\\\"open\\\":\\\"\\\",\\\"close\\\":\\\"\\\",\\\"closed\\\":true},{\\\"day\\\":\\\"Sunday\\\",\\\"open\\\":\\\"\\\",\\\"close\\\":\\\"\\\",\\\"closed\\\":true}],\\\"closedLabel\\\":\\\"Closed\\\"} \\\/--><\\\/div>',\\n        '<!-- \\\/wp:column -->',\\n        '<\\\/div>',\\n        '<!-- \\\/wp:columns -->',\\n        '<!-- wp:wuppi\\\/testimonial {\\\"quote\\\":\\\"The patterns gave us a calm, polished page structure in minutes, and the custom blocks covered the practical details we usually have to build by hand.\\\",\\\"name\\\":\\\"Emma Larsen\\\",\\\"role\\\":\\\"Studio owner\\\",\\\"rating\\\":5,\\\"align\\\":\\\"wide\\\"} \\\/-->',\\n        '<!-- wp:wuppi\\\/accordion {\\\"items\\\":[{\\\"question\\\":\\\"Does the plugin require the Wuppi theme?\\\",\\\"answer\\\":\\\"No. The core custom blocks and the section patterns work with block themes in general. The Wuppi theme is used here to provide the visual frame for the public preview.\\\"},{\\\"question\\\":\\\"Can I use the blocks for services and pricing pages?\\\",\\\"answer\\\":\\\"Yes. The collection focuses on common needs such as service cards, pricing, testimonials, FAQs, hours, and contact sections.\\\"},{\\\"question\\\":\\\"Does the plugin load external libraries on the front end?\\\",\\\"answer\\\":\\\"No external UI frameworks are bundled for the front end. The blocks rely on WordPress core APIs and the plugin assets that ship with Wuppi Blocks.\\\"}],\\\"showSchema\\\":true,\\\"align\\\":\\\"wide\\\"} \\\/-->',\\n        '<!-- wp:wuppi\\\/price-list {\\\"title\\\":\\\"Popular sessions\\\",\\\"currency\\\":\\\"DKK\\\",\\\"currencyPosition\\\":\\\"after\\\",\\\"items\\\":[{\\\"name\\\":\\\"Intro session\\\",\\\"description\\\":\\\"60 minute consultation\\\",\\\"price\\\":\\\"690\\\",\\\"available\\\":true},{\\\"name\\\":\\\"Follow-up session\\\",\\\"description\\\":\\\"45 minute appointment\\\",\\\"price\\\":\\\"520\\\",\\\"available\\\":true},{\\\"name\\\":\\\"Online guidance\\\",\\\"description\\\":\\\"30 minute call\\\",\\\"price\\\":\\\"350\\\",\\\"available\\\":true}],\\\"align\\\":\\\"wide\\\"} \\\/-->',\\n        '<!-- wp:pattern {\\\"slug\\\":\\\"wuppi\\\/contact-booking\\\"} \\\/-->',\\n        '<\\\/div>',\\n        '<!-- \\\/wp:group -->'\\n    )\\n);\\n\\n$patterns_content = implode(\\n    \\\"\\\\n\\\\n\\\",\\n    array(\\n        '<!-- wp:group {\\\"align\\\":\\\"full\\\",\\\"style\\\":{\\\"spacing\\\":{\\\"padding\\\":{\\\"top\\\":\\\"var:preset|spacing|80\\\",\\\"right\\\":\\\"var:preset|spacing|50\\\",\\\"bottom\\\":\\\"var:preset|spacing|80\\\",\\\"left\\\":\\\"var:preset|spacing|50\\\"},\\\"blockGap\\\":\\\"var:preset|spacing|50\\\"}},\\\"layout\\\":{\\\"type\\\":\\\"constrained\\\"}} -->',\\n        '<div class=\\\"wp-block-group alignfull\\\" style=\\\"padding-top:var(--wp--preset--spacing--80);padding-right:var(--wp--preset--spacing--50);padding-bottom:var(--wp--preset--spacing--80);padding-left:var(--wp--preset--spacing--50)\\\">',\\n        '<!-- wp:heading {\\\"level\\\":1,\\\"fontSize\\\":\\\"x-large\\\"} -->',\\n        '<h1 class=\\\"wp-block-heading has-x-large-font-size\\\">Pattern samples<\\\/h1>',\\n        '<!-- \\\/wp:heading -->',\\n        '<!-- wp:paragraph {\\\"textColor\\\":\\\"muted-foreground\\\"} -->',\\n        '<p class=\\\"has-muted-foreground-color has-text-color\\\">These sections are included with Wuppi Blocks and can be inserted from the pattern inserter.<\\\/p>',\\n        '<!-- \\\/wp:paragraph -->',\\n        '<!-- wp:pattern {\\\"slug\\\":\\\"wuppi\\\/service-card\\\"} \\\/-->',\\n        '<!-- wp:pattern {\\\"slug\\\":\\\"wuppi\\\/services-grid\\\"} \\\/-->',\\n        '<!-- wp:pattern {\\\"slug\\\":\\\"wuppi\\\/contact-cards\\\"} \\\/-->',\\n        '<\\\/div>',\\n        '<!-- \\\/wp:group -->'\\n    )\\n);\\n\\n$home_page_id = $ensure_page(\\n    array(\\n        'post_title'   => 'Home',\\n        'post_name'    => 'home',\\n        'post_status'  => 'publish',\\n        'post_type'    => 'page',\\n        'menu_order'   => 0,\\n        'post_content' => $home_content,\\n    )\\n);\\n\\n$patterns_page_id = $ensure_page(\\n    array(\\n        'post_title'   => 'Patterns',\\n        'post_name'    => 'patterns',\\n        'post_status'  => 'publish',\\n        'post_type'    => 'page',\\n        'menu_order'   => 1,\\n        'post_content' => $patterns_content,\\n    )\\n);\\n\\n$existing_navs = get_posts(\\n    array(\\n        'numberposts' => -1,\\n        'post_type'   => 'wp_navigation',\\n        'post_status' => 'any',\\n    )\\n);\\n\\nforeach ( $existing_navs as $existing_nav ) {\\n    wp_delete_post( $existing_nav->ID, true );\\n}\\n\\n$nav_content = '<!-- wp:navigation-link {\\\"label\\\":\\\"Home\\\",\\\"type\\\":\\\"page\\\",\\\"id\\\":' . $home_page_id . ',\\\"url\\\":\\\"\\\/\\\",\\\"kind\\\":\\\"post-type\\\"} \\\/-->'\\n    . '<!-- wp:navigation-link {\\\"label\\\":\\\"Patterns\\\",\\\"type\\\":\\\"page\\\",\\\"id\\\":' . $patterns_page_id . ',\\\"url\\\":\\\"\\\/patterns\\\/\\\",\\\"kind\\\":\\\"post-type\\\"} \\\/-->';\\n\\nwp_insert_post(\\n    array(\\n        'post_title'   => 'Preview Navigation',\\n        'post_name'    => 'preview-navigation',\\n        'post_status'  => 'publish',\\n        'post_type'    => 'wp_navigation',\\n        'post_content' => $nav_content,\\n    )\\n);\\n\\nupdate_option( 'show_on_front', 'page' );\\nupdate_option( 'page_on_front', $home_page_id );\\nupdate_option( 'page_for_posts', 0 );\\nupdate_option( 'permalink_structure', '\\\/%postname%\\\/' );\\n\\nflush_rewrite_rules();\\n\"},{\"step\":\"installPlugin\",\"pluginData\":{\"resource\":\"wordpress.org\\\/plugins\",\"slug\":\"wuppi-blocks\"},\"options\":{\"activate\":true}}]}"}},"all_blocks":[],"tagged_versions":["1.0.1","1.0.2"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3509130,"resolution":"1","location":"assets","locale":"","width":2000,"height":1400},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3509130,"resolution":"2","location":"assets","locale":"","width":2000,"height":1400},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3509130,"resolution":"3","location":"assets","locale":"","width":2000,"height":1400},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3509130,"resolution":"4","location":"assets","locale":"","width":2000,"height":1400},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3509130,"resolution":"5","location":"assets","locale":"","width":2000,"height":1400},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3509130,"resolution":"6","location":"assets","locale":"","width":2000,"height":1400},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3509130,"resolution":"7","location":"assets","locale":"","width":2000,"height":1400},"screenshot-8.png":{"filename":"screenshot-8.png","revision":3509130,"resolution":"8","location":"assets","locale":"","width":2000,"height":1400}},"screenshots":{"1":"Pricing Table blocks with monthly and yearly pricing, feature lists, and a featured plan badge.","2":"Hero section layouts for service websites.","3":"Service Card layouts for presenting individual services and grouped service sections.","4":"Testimonial block layouts for showcasing single quotes and larger review grids.","5":"Team Member profile cards with photos, roles, biographies, and social links.","6":"Call-to-action and pricing sections that guide visitors toward booking or contact.","7":"Accordion FAQ sections for organizing common questions in a clean, readable layout.","8":"The editor experience, including the Wuppi block collection, icon picker, and block controls."},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[4121,201618,18850,4394,1518],"plugin_category":[53],"plugin_contributors":[260474],"plugin_business_model":[],"class_list":["post-298217","plugin","type-plugin","status-publish","hentry","plugin_tags-blocks","plugin_tags-full-site-editing","plugin_tags-patterns","plugin_tags-pricing","plugin_tags-testimonials","plugin_category-ratings-and-reviews","plugin_contributors-giannidk","plugin_committers-giannidk"],"banners":{"banner":"https:\/\/ps.w.org\/wuppi-blocks\/assets\/banner-772x250.png?rev=3509130","banner_2x":"https:\/\/ps.w.org\/wuppi-blocks\/assets\/banner-1544x500.png?rev=3509130","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/wuppi-blocks\/assets\/icon.svg?rev=3509130","icon":"https:\/\/ps.w.org\/wuppi-blocks\/assets\/icon.svg?rev=3509130","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/wuppi-blocks\/assets\/screenshot-1.png?rev=3509130","caption":"Pricing Table blocks with monthly and yearly pricing, feature lists, and a featured plan badge."},{"src":"https:\/\/ps.w.org\/wuppi-blocks\/assets\/screenshot-2.png?rev=3509130","caption":"Hero section layouts for service websites."},{"src":"https:\/\/ps.w.org\/wuppi-blocks\/assets\/screenshot-3.png?rev=3509130","caption":"Service Card layouts for presenting individual services and grouped service sections."},{"src":"https:\/\/ps.w.org\/wuppi-blocks\/assets\/screenshot-4.png?rev=3509130","caption":"Testimonial block layouts for showcasing single quotes and larger review grids."},{"src":"https:\/\/ps.w.org\/wuppi-blocks\/assets\/screenshot-5.png?rev=3509130","caption":"Team Member profile cards with photos, roles, biographies, and social links."},{"src":"https:\/\/ps.w.org\/wuppi-blocks\/assets\/screenshot-6.png?rev=3509130","caption":"Call-to-action and pricing sections that guide visitors toward booking or contact."},{"src":"https:\/\/ps.w.org\/wuppi-blocks\/assets\/screenshot-7.png?rev=3509130","caption":"Accordion FAQ sections for organizing common questions in a clean, readable layout."},{"src":"https:\/\/ps.w.org\/wuppi-blocks\/assets\/screenshot-8.png?rev=3509130","caption":"The editor experience, including the Wuppi block collection, icon picker, and block controls."}],"raw_content":"<!--section=description-->\n<p>Wuppi Blocks is a collection of twelve lightweight Gutenberg blocks and service-focused patterns for modern block themes. It is designed to pair naturally with the <a href=\"https:\/\/wordpress.org\/themes\/wuppi\/\">Wuppi theme<\/a>, while keeping the core blocks and section patterns usable on other modern WordPress themes.<\/p>\n\n<p>The plugin focuses on common needs for service businesses: icons, notices, testimonials, accordions, service cards, team profiles, opening hours, counters, pricing tables, price lists, icon lists, and an animated hero section. All custom blocks use WordPress core APIs and bundled assets only. On non-Wuppi themes, the plugin exposes four ready-made section patterns: Service Card, Services Grid, Contact Cards, and Contact Booking. When the Wuppi theme is active, it also registers the extra Home Page Starter and Contact Page Starter layouts.<\/p>\n\n<h3>Features<\/h3>\n\n<ul>\n<li><strong>wuppi\/icon<\/strong> \u2014 inline SVG icons from the Lucide icon set with size, color, stroke, and alignment controls<\/li>\n<li><strong>wuppi\/notice<\/strong> \u2014 alert and notice boxes with info, warning, success, and error variants<\/li>\n<li><strong>wuppi\/testimonial<\/strong> \u2014 testimonial card with quote, author, role, and star rating<\/li>\n<li><strong>wuppi\/accordion<\/strong> \u2014 expandable FAQ items with optional JSON-LD schema markup<\/li>\n<li><strong>wuppi\/icon-list<\/strong> \u2014 list of items with inline icons and text labels<\/li>\n<li><strong>wuppi\/lumina-hero<\/strong> \u2014 animated aurora borealis hero section with InnerBlocks content area<\/li>\n<li><strong>wuppi\/service-card<\/strong> \u2014 service card with icon, heading, description, and optional link<\/li>\n<li><strong>wuppi\/team-member<\/strong> \u2014 team member card with photo, name, role, bio, and social links<\/li>\n<li><strong>wuppi\/opening-hours<\/strong> \u2014 business hours table with automatic today highlight<\/li>\n<li><strong>wuppi\/counter<\/strong> \u2014 animated numeric counter triggered on scroll<\/li>\n<li><strong>wuppi\/pricing-table<\/strong> \u2014 pricing card with feature list, badge, and call-to-action button<\/li>\n<li><strong>wuppi\/price-list<\/strong> \u2014 service or menu price list with configurable currency and divider styles<\/li>\n<li>Service Card pattern \u2014 single card with icon, heading, and description<\/li>\n<li>Services Grid pattern \u2014 three service cards in a responsive row<\/li>\n<li>Contact Cards pattern \u2014 stacked horizontal cards for contact information<\/li>\n<li>Contact Booking Section pattern \u2014 full section with hours, address, and booking details<\/li>\n<li>Home Page Starter \u2014 full-page layout available only when the Wuppi theme is active<\/li>\n<li>Contact Page Starter \u2014 full-page contact layout available only when the Wuppi theme is active<\/li>\n<\/ul>\n\n<h3>Credits<\/h3>\n\n<h4>Icons<\/h4>\n\n<p>Lucide SVG icons\nCopyright: Lucide Contributors\nLicense: ISC - https:\/\/lucide.dev\/license\nSource: https:\/\/lucide.dev<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to <code>\/wp-content\/plugins\/<\/code> or install the ZIP from <strong>Plugins &gt; Add New<\/strong>.<\/li>\n<li>Activate <strong>Wuppi Blocks<\/strong> in <strong>Plugins<\/strong>.<\/li>\n<li>Open the block inserter and search for <strong>Wuppi<\/strong>, or browse the bundled sections from the <strong>Patterns<\/strong> tab in the editor.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"where%20can%20i%20find%20the%20wuppi%20theme%3F\"><h3>Where can I find the Wuppi theme?<\/h3><\/dt>\n<dd><p>The Wuppi theme is available for free at <a href=\"https:\/\/wordpress.org\/themes\/wuppi\/\">wordpress.org\/themes\/wuppi<\/a>. Installing it alongside this plugin unlocks the two full-page starter patterns and the intended visual system.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20require%20the%20wuppi%20theme%3F\"><h3>Does this plugin require the Wuppi theme?<\/h3><\/dt>\n<dd><p>No. The custom blocks and the four section patterns (Service Card, Services Grid, Contact Cards, Contact Booking) work on modern WordPress themes in general. The Wuppi theme provides the intended visual system, and the two full-page starter patterns (Home Page Starter, Contact Page Starter) are only registered when Wuppi is active.<\/p><\/dd>\n<dt id=\"where%20do%20i%20find%20the%20blocks%20and%20patterns%3F\"><h3>Where do I find the blocks and patterns?<\/h3><\/dt>\n<dd><p>Search for \"Wuppi\" in the block inserter to find the custom blocks. The bundled layouts are available from the <strong>Patterns<\/strong> tab in the editor or Site Editor. On non-Wuppi themes you will see the four section patterns; with the Wuppi theme active you will also see the two starter page patterns.<\/p><\/dd>\n<dt id=\"which%20icons%20are%20included%3F\"><h3>Which icons are included?<\/h3><\/dt>\n<dd><p>The plugin bundles a curated selection of Lucide SVG icons. Lucide is an open-source icon library released under the ISC license. See https:\/\/lucide.dev for the full set.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20use%20external%20services%20or%20tracking%3F\"><h3>Does the plugin use external services or tracking?<\/h3><\/dt>\n<dd><p>No. The plugin does not connect to third-party services or load remote front-end assets. All block assets ship with the plugin.<\/p><\/dd>\n<dt id=\"which%20wordpress%20version%20is%20required%3F\"><h3>Which WordPress version is required?<\/h3><\/dt>\n<dd><p>WordPress 6.5 or later and PHP 8.0 or later.<\/p><\/dd>\n<dt id=\"where%20can%20i%20find%20support%3F\"><h3>Where can I find support?<\/h3><\/dt>\n<dd><p>Support and documentation are available at https:\/\/www.ambronet.dk\/wuppi\/blocks.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Add dismissible admin notice suggesting the Wuppi theme when it is not the active theme<\/li>\n<li>Add Wuppi theme cross-link to readme description and FAQ<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Fix card vertical alignment and equal-height layout in service and testimonial blocks<\/li>\n<li>Remove hard-coded font weights to let style variations control typography<\/li>\n<li>Fix Plugin Check compliance issues<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release with 12 custom blocks, 4 cross-theme section patterns, and 2 Wuppi-only starter patterns<\/li>\n<\/ul>","raw_excerpt":"Twelve lightweight Gutenberg blocks and service-focused patterns for modern block themes.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/298217","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=298217"}],"author":[{"embeddable":true,"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/giannidk"}],"wp:attachment":[{"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=298217"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=298217"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=298217"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=298217"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=298217"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=298217"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}