=== ShapeBlock - Powerful Gutenberg Blocks to Build Better Websites Faster ===
Contributors: shapekode22
Tags: gutenberg blocks, header footer builder, block editor, gutenberg, wordpress blocks
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 1.0.1
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

30+ Gutenberg blocks - sliders, grids, tabs, counters and more - plus a Header & Footer Builder, with per-device controls.

== Description ==

**ShapeBlock adds 30+** blocks to the WordPress block editor, plus a **Header & Footer Builder**.

Every block has the same three tabs: **Settings** for the content, **Layout** for columns, alignment and spacing, and **Style** for colours, typography, borders, shadows and hover effects. Sizes, spacing and columns can be set separately for desktop, tablet and mobile.

See every block in action on the [ShapeBlock demo](https://shapekode.com/product/shapeblock/).

= Key Features =

* **30+ blocks** for layouts, content, media, navigation and marketing.
* **Header & Footer Builder** with Include and Exclude display conditions, for classic and block themes.
* **Fully responsive** - separate desktop, tablet and mobile values, and hide any block per device.
* **Full design control** - typography, gradients, borders, shadows, spacing and a built-in icon picker.
* **Custom Templates** - build a layout once and reuse it anywhere with a shortcode.
* **Lightweight** - each block loads its files only on pages that use it, and unused blocks can be switched off.
* **Export & Import** - move your settings and templates between sites in one file.
* **Privacy friendly** - no tracking, no CDN, and Google Fonts stays off until you turn it on.

= Blocks =

1. [Accordion](https://shapekode.com/product/shapeblock/accordion/) - Collapsible question and answer sections.
2. [Breadcrumb](https://shapekode.com/product/shapeblock/breadcrumb/) - Shows visitors where they are on the site.
3. [Button](https://shapekode.com/product/shapeblock/button/) - Buttons with icons, sizes and hover styles.
4. [Client Logo](https://shapekode.com/product/shapeblock/client-logo/) - A grid of client or partner logos with links, grayscale and hover-swap.
5. Column - A column inside a Row, with its own width per device.
6. [Countdown](https://shapekode.com/product/shapeblock/countdown/) - Counts down to a date and time.
7. [Counter](https://shapekode.com/product/shapeblock/counter/) - Animated number counters.
8. [Features List](https://shapekode.com/product/shapeblock/feature-list/) - Feature lists with icons.
9. [Filterable List](https://shapekode.com/product/shapeblock/filterable-list/) - A list of links with icons, filter buttons that count their items, badges and a search box.
10. [Heading](https://shapekode.com/product/shapeblock/heading/) - Headings with typography, gradient and highlight options.
11. [Hover Box](https://shapekode.com/product/shapeblock/hover-box/) - An image or icon in a circle or square that shows a title and description on hover.
12. [Icon Box](https://shapekode.com/product/shapeblock/icon-box/) - Icon, heading and text together, in several layouts, with an optional button (text, icon or icon only).
13. [Icon List](https://shapekode.com/product/shapeblock/icon-list/) - A list where each item gets its own icon.
14. [Icon](https://shapekode.com/product/shapeblock/icon/) - A single icon with colour, size and link.
15. [Image Carousel](https://shapekode.com/product/shapeblock/image-carousel/) - Several images at once, with centred slides and continuous scrolling.
16. [Image Comparison](https://shapekode.com/product/shapeblock/image-comparison/) - Before / after images with a draggable handle - side by side, top and bottom, or corner to corner - with labels and several handle styles.
17. [Isotope Filter](https://shapekode.com/product/shapeblock/isotope-filter/) - A filterable grid with category buttons, an optional search box, and an icon, title, description and badge for each item.
18. [Menu](https://shapekode.com/product/shapeblock/menu/) - Shows a WordPress navigation menu with layout, alignment and colour options.
19. [Offcanvas](https://shapekode.com/product/shapeblock/offcanvas/) - Slide-in panels for menus, sidebars or extra content.
20. [Post Grid](https://shapekode.com/product/shapeblock/post-grid/) - Posts in grid layouts, with pagination.
21. [Pricing Table](https://shapekode.com/product/shapeblock/pricing-table/) - Pricing plans with features, badges and a button.
22. [Progress Bar](https://shapekode.com/product/shapeblock/progress-bar/) - Animated progress and skill bars.
23. Row - A responsive row that holds Column blocks, boxed, full width or a custom width.
24. [Scroll Top](https://shapekode.com/product/shapeblock/scroll-to-top/) - A back-to-top button.
25. [Search](https://shapekode.com/product/shapeblock/search/) - A search field you can put anywhere.
26. [Simple Gallery](https://shapekode.com/product/shapeblock/simple-gallery/) - An image gallery with spacing and column controls, and a popup with a choice of animations.
27. [Slider](https://shapekode.com/product/shapeblock/slider/) - A full-width image slider with arrows, dots and autoplay.
28. [Social Icon](https://shapekode.com/product/shapeblock/social-icon/) - Linked social icons, coloured all together or one by one.
29. [Social Share](https://shapekode.com/product/shapeblock/social-share/) - Share buttons for the current page.
30. [Sticky Stack](https://shapekode.com/product/shapeblock/sticky-stack/) - Cards that stick as you scroll and stack over one another.
31. [Table](https://shapekode.com/product/shapeblock/table/) - Tables with styled headers, rows and cells.
32. [Tabs](https://shapekode.com/product/shapeblock/tabs/) - Tabbed content with icons and a few tab styles to pick from.
33. [Team Member](https://shapekode.com/product/shapeblock/team-member/) - Team members with photo, role and social links.
34. [Testimonial](https://shapekode.com/product/shapeblock/testimonial/) - Testimonials in three styles, with ratings, quote icons and logos.

= Header & Footer Builder =

**Build your header and footer in the block editor** - no child theme and no PHP. Then pick where each one shows up with **display conditions**: Entire Site, Front Page, All Pages, All Posts, All Archives, Search Results, 404 Page, or specific pages and posts. Any condition can be set to Include or Exclude.

It **works with classic and block themes**. Pages that match none of your conditions keep the theme's own header and footer. There's also a Custom Block type you can place anywhere with the `[shapeblock_builder]` shortcode.

= Features =

**Design controls on every block**

* Settings, Layout and Style tabs, plus an Advanced tab with padding, margin and a solid or gradient background.
* Typography: font family, size, weight, style, line height, letter spacing, transform and decoration.
* Borders, radius and box shadows.
* A built-in icon picker with search, served from your own site.

**Fully responsive**

* A desktop, tablet and mobile switcher on sizes, spacing, columns and typography, so each device gets its own value.
* Tablet styles apply up to 1024px and mobile styles up to 767px.
* Padding and margin per device on every block.
* Hide any block on desktop, tablet or mobile from its Responsive panel.
* Tablet and mobile padding and margin for core WordPress blocks too.

**Header & Footer Builder**

* Header, Footer and Custom Block templates, built in the block editor.
* Include and Exclude display conditions, where Exclude always wins.
* Works with classic and block themes.
* Copy a template's shortcode with one click.

**Custom Templates**

* Save a layout once and reuse it anywhere with the `[shapeblock_template]` shortcode.
* Use a template as the content of the Offcanvas block.
* Search, sort, trash, restore and bulk actions in the template list.

**Dashboard**

* Turn any block on or off, or all at once. A block that's off doesn't load.
* A global container width for the Row block.
* Export and import your settings, Custom Templates and Theme Builder templates as one JSON file. Pick what to import and skip duplicates.

**Speed**

* Block styles and scripts load only on pages that use the block.
* Styles are generated per block, so two copies of a block can look different.
* All libraries are bundled with the plugin, with no CDN.
* Google Fonts are optional, off by default, and load only the fonts you use.

**Other**

* Duplicated or pasted blocks get a new ID, so their styles never clash.
* Translation ready, with a `.pot` file.
* No tracking and no licence check.
* Deleting the plugin removes its settings and cached data, and keeps your content.

== External services ==

Out of the box, **ShapeBlock** doesn't connect to any outside service. It only does in the cases below, and each one is your choice.

= Google Fonts (optional, off by default) =

When it's turned on, Google Fonts feeds the Font Family picker in the block settings and loads the fonts you pick. While it's off, the plugin doesn't talk to Google at all. To turn it on, go to **ShapeBlock > Settings > Google Fonts**. If you turn it off later, the requests stop and the cached font list is deleted.

With it switched on:

* In the WordPress admin, your server fetches the font list from `https://fonts.google.com/metadata/fonts` and caches it for a week. That request carries no site, post or user data.
* In the block editor and on the front end, the browser loads the font stylesheet from `https://fonts.googleapis.com` and the font files from `https://fonts.gstatic.com`. Like any browser request, this sends the visitor's IP address, user agent and the referring page to Google.

Google Fonts is provided by Google LLC. Terms of service: https://policies.google.com/terms - Privacy policy: https://policies.google.com/privacy

= Appsero (usage data, only if you allow it) =

After activation, an admin notice asks whether you want to share usage data to help improve ShapeBlock. Nothing is sent unless you click **Allow**; **No thanks** sends nothing.

With it allowed, your server sends this to Appsero right away and then once a week: the site URL and name, the admin email and name, the WordPress, PHP and MySQL versions, the server software, the site language, the number of users, posts and pages, the active theme and plugins, ShapeBlock's version and the server IP address. The IP address is looked up through `https://icanhazip.com`. Deactivating the plugin stops it.

When you deactivate ShapeBlock, a dialog asks why. Only **Submit & Deactivate** sends the reason you picked to Appsero (with the site details above only if you had allowed sharing); **Skip & Deactivate** sends nothing.

Appsero (https://appsero.com) - Privacy policy: https://appsero.com/privacy-policy/
icanhazip - About and privacy: https://major.io/icanhazip-com-faq/

= Gravatar (Post Grid author picture) =

When a Post Grid uses meta style 2 or 3 with the author shown, it shows the author's profile picture from Gravatar. The visitor's browser loads that picture from Gravatar, which receives the visitor's IP address, user agent and the referring page, and a hash of the author's email address (WordPress' own avatars work the same way). With other meta styles, or the author hidden, nothing is loaded.

Gravatar is provided by Automattic Inc. Terms of service: https://automattic.com/tos/ - Privacy policy: https://automattic.com/privacy/

= Social Share and Social Icon links =

These blocks only output normal links. Nothing is sent until a visitor clicks one; the Social Share links then pass the page URL and title (and for Pinterest the featured image) to that network: Facebook, X, LinkedIn, Pinterest, WhatsApp, Telegram and Reddit. Email opens the visitor's own mail app, and Copy Link copies the URL in the browser.

== Source code and build process ==

Every compiled file in the plugin ships with its readable source right beside it:

* Blocks: `includes/public/blocks/<block>/src/`, built into the `build/` folder next to it. The Menu block is hand-written in `includes/public/blocks/menu/build/` and has no build step.
* Admin dashboard: `src/` in the plugin root, built into `build/`.
* Stylesheets: `assets/css/style.scss`, `includes/public/assets/css/public.scss` and `assets/lib/bootstrap/bootstrap-grid.scss`, each built beside its source.

Built with [@wordpress/scripts](https://www.npmjs.com/package/@wordpress/scripts) and [Dart Sass](https://sass-lang.com/dart-sass/). To rebuild: `npm install`, then `npm run build` and `npm run build:<block>` (all script names are in `package.json`).

== Credits ==

ShapeBlock is licensed GPLv2 or later and includes these MIT-licensed libraries, each with its licence file:

* Swiper 12.0.3 (https://swiperjs.com) - `assets/lib/swiper/LICENSE`, unmodified release files.
* Bootstrap 5.3 grid (https://getbootstrap.com) - `assets/lib/bootstrap/LICENSE`, only the grid, recompiled with a `shapeblock-` prefix.
* Ant Design 6 and Ant Design Icons (https://ant.design) - `assets/lib/antd/LICENSE`, used only in the admin dashboard.
* Bootstrap Icons 1.13.1 (https://icons.getbootstrap.com) - `includes/public/assets/font/bootstrap-icons-LICENSE.txt`, the icons of the built-in icon picker.

The icon fonts were made with Fontello (https://fontello.com). Our own icons are GPLv2 or later; three come from Font Awesome 4.7 and Elusive Icons under the SIL Open Font License 1.1 (https://openfontlicense.org), listed in `includes/public/assets/icon/config.json`.



==  Privacy Policy == 

ShapeBlock uses [Appsero](https://appsero.com) SDK to collect some telemetry data upon user's confirmation. This helps us to troubleshoot problems faster & make product improvements.

Appsero SDK **does not gather any data by default.** The SDK only starts gathering basic telemetry data **when a user allows it via the admin notice**. We collect the data to ensure a great user experience for all our users. 

Integrating Appsero SDK **DOES NOT IMMEDIATELY** start gathering data, **without confirmation from users in any case.**

Learn more about how [Appsero collects and uses this data](https://appsero.com/privacy-policy/).

== Installation ==

1. Go to **Plugins > Add New Plugin**, search for "ShapeBlock" and click **Install Now**.
2. Activate ShapeBlock from the Plugins screen.
3. Open any post or page and add a ShapeBlock block from the block inserter.
4. Optional: visit **ShapeBlock > Blocks Settings** to turn off blocks you won't use.

== Frequently Asked Questions ==

= Will it work with my theme? =

Yes, with any well-coded theme, including block themes. The blocks pick up your theme's typography, and you can restyle them from the block settings.

= Do I have to use all 34 blocks? =

No. Turn off any you don't need in **ShapeBlock > Blocks Settings**. A block that's off isn't registered and its files aren't loaded.

= Can I replace my theme's header and footer? =

Yes. Build one in **ShapeBlock > Theme Builder** and set where it should appear. Pages that don't match your conditions keep the theme's own header and footer.

= Does ShapeBlock send any data to outside servers? =

Not by default. See External services above.

= What happens when I delete the plugin? =

Deleting the plugin removes the options and cached data it created. Your Custom Templates, Theme Builder items and the blocks in your posts are your content, so they stay.

== Changelog ==

= 1.0.1 =
* New: Filterable List block - links with icons, filter buttons with item counts, badges and a search box.
* New: Isotope Filter - an optional search box beside the filter buttons, with a line below them.
* New: Row - a Custom content width, set per device.
* New: Icon Box - an optional button (text, text with icon, or icon only with its own size).
* New: Image Comparison - Before / After labels, a corner-to-corner direction and more handle styles.
* New: Simple Gallery - popup animations.
* New: Post Grid - more style and hover options, laid out more clearly.
* New: a gradient option on background colours.
* New: Theme Builder templates offer Wide and Full alignment in every theme.
* Fix: column widths in a Row now add up correctly whatever the number of columns, and a gap of 0 works.
* Fix: Row margin now applies in the editor and is no longer lost to the order stylesheets load in.
* Fix: colours can be cleared again, and Post Grid colour changes show in the editor.

= 1.0.0 =
* Initial release.