=== Von Block Builder ===
Contributors: Von Block
Tags: block editor, css framework, grid, typography, figma
Requires at least: 6.0
Tested up to: 7.1
Requires PHP: 8.1
Stable tag: 1.6.2
License: GPLv2 or later (the PHP code); proprietary (JavaScript, CSS, images), see LICENSE.txt
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Generate the Von Block CSS framework for your site from its own settings: Rule-Sets, colors, typography, properties and fonts.

== Description ==

Von Block Builder turns a set of layout settings into a CSS framework for this site, built on the MCG
(margin, column, gutter) grid that Von Block uses to carry a Figma layout over to the web.

The settings are edited with the shared Von Block settings editor, the same editor as on
framework.vonblock.com: Rule-Sets and their column-layout grids, colors, typography styles, the two
property lists and the fonts. Saving compiles them into CSS right on your site, in about a second,
and stores it with your uploads; nothing is sent anywhere.

== External services ==

Von Block Builder compiles its CSS on your site; building pages sends nothing anywhere. It does
connect to the services below, each for the reason given and only with the data listed.

**Von Block licensing (licensing.vonblock.com)**, run by the makers of Von Block.

* Licence check, once a day: the host the site runs on.
* Activation, each time the plugin is activated: the site's address (subdomain and subfolder
  included), the date and time, the Von Block, WordPress and PHP versions, and whether the site is
  a multisite network. No names or email addresses.
* Registration, when you register the site on the settings page: the site's address, the email
  address you enter, and the site administrator's email address. Licensing calls the site back
  once to confirm the request came from it.
* Licence reminders: on the main site of a registered domain (the bare domain or its www address),
  the administrator's email address is sent again after the plugin is installed, updated or
  activated, so reminders reach whoever runs the site now.

Privacy policy: https://www.vonblock.com/privacy-policy/ — Terms of use: https://www.vonblock.com/terms-of-use/

**Von Block updates (updates.vonblock.com)**, run by the makers of Von Block. WordPress checks it for
new versions of the plugin and downloads updates from it. Nothing about the site is sent beyond
the request itself. Privacy policy: https://www.vonblock.com/privacy-policy/

**Google Fonts (fonts.googleapis.com, fonts.gstatic.com)**, only when a Google font is added to the
framework: the font's stylesheet and files are downloaded once and then served from your own site,
so visitors' browsers never contact Google. No data about the site or its visitors is sent.
Privacy policy: https://policies.google.com/privacy — Terms: https://developers.google.com/fonts/terms

**Claude (claude.ai), by Anthropic**, only when you connect Claude to the site: the site fetches
Claude's public client description to complete the sign-in, and when Claude uploads an image from
a web address, the site downloads it from that address. What you send to Claude is covered by
Anthropic's terms. Privacy policy: https://www.anthropic.com/legal/privacy — Terms:
https://www.anthropic.com/legal/consumer-terms

== Licence ==

The PHP code is free software under the GNU General Public License, version 2 or later. The
JavaScript, the stylesheets, the framework source and the images are proprietary: you may use them on
as many sites as you like under the terms of use (https://www.vonblock.com/terms-of-use/), but not
redistribute, modify or reuse them elsewhere. What runs on your website's pages, and everything you
build, you may keep using without time limit. The details, and the third-party licences, are in
LICENSE.txt.

== Changelog ==

= 1.6.2 =
* The Von Block Editor keeps up with the site's composite classes. It learned them once, when it opened, so a class written after that (in the settings, in another tab) showed among the utility classes, without its pill, until the editor was reloaded.

= 1.6.1 =
* The starting font variables read the heading and body styles a site actually has: primary from h1, h-1, display, hero or h2, and secondary from body, p or the style marked default. Before, a site whose styles are named copy or display started with a generic serif and sans-serif.

= 1.6.0 =
* Font variables: fonts by purpose, at the top of Typography Classes in the settings. A site has primary (for the headings) and secondary (for the text), and can add more (accent, mono …). Each holds a font-family value, family and fallbacks, and is written as a CSS variable, --mcg-font-primary. A typography style or composite class then says font-family: var(--mcg-font-primary), so a new font for the whole site is one value changed. The button beside a font-family value offers them.
* A site starts with primary and secondary filled from its own h1 and body typography styles, or with a serif and a sans-serif when they name no font. Nothing about its styles changes.
* The Claude connector knows about them: a font_variables settings section, and get_framework says which fonts the site has and that styles should name the variables.

= 1.5.8 =
* The Von Block Editor panel now has a heading of its own, "Block Styling", with its open-in-a-window and close buttons on it. The line under the heading shows the selected block alone. As a separate window it is unchanged.

= 1.5.7 =
* The Von Block Editor panel's edge now follows the pointer while it is dragged. Before, the panel stayed at its old width during the drag and jumped to the new one when the mouse was let go.

= 1.5.6 =
* In the editor, framework classes now lay blocks out as on the published page. WordPress's editor-only styles no longer outrank them: a cover's absolutely placed picture no longer drops under the cover's padding, and a sticky header sticks.
* An Image block with no height of its own is now sized by its classes in the editor, as on the page (a cover picture fills and is centred instead of cropped from its top).

= 1.5.5 =
* The Von Block Editor no longer has a Save button. The page is saved where it is edited, with WordPress's own Save.

= 1.5.4 =
* The editor canvas now goes down to 320px, or to the smallest breakpoint's width when that is narrower, instead of stopping at 350px. A breakpoint below 350px (345px, say) can now be worked in from the width slider, its menu and the Von Block Editor; before, the canvas stayed in the breakpoint above it.

= 1.5.3 =
* The Von Block Editor's top bar no longer shows the page title; the window's browser tab still names the page.

= 1.5.2 =
* The Von Block mark in the Von Block Editor moves from the top bar to the bottom bar, left of the settings button. The top bar starts with the selected block.

= 1.5.1 =
* The Claude connector can put your own files into the media library. Claude asks for an upload link and sends the files to it, from Claude Code with one curl command or from a browser by dropping them on the page the link opens. A link takes one upload of one or more files and closes once something is kept, or after 15 minutes; files are checked exactly as upload_media checks them.
* The connector can change a file in the media library: its title, alt text, caption and description, and its name. A rename moves the file and every size cut from it, and writes the new address wherever the old one was on the site: pages, header and footer, templates, patterns, menus, global CSS and the framework.
* The connector can delete a file from the media library. It refuses while a page, a featured image, the site icon or logo, or global CSS still uses the file, and says where, unless told to delete it anyway.

= 1.5.0 =
* A menu block. Its items are written by hand, each linking to a section of the page (picked by its anchor) or anywhere else, and any block can stand among them (a button, a language switch, an icon). From a breakpoint you choose, the menu becomes an icon that opens a panel from the right, with the rest of the screen veiled; Escape, the veil or a link closes it. Choose the open and close icons from a few, or use an SVG of your own. The panel's width, background, padding and gap and the veil's colour are set on the block; everything else is styled with Von Block classes, on the menu and on each item.
* Von Block classes can be given to the menu and its items in the Von Block Editor, as to core blocks.

= 1.4.4 =
* In the Von Block Editor, the pill that adds a state to a block or a class is now called + state (it was + pseudo:), as on the settings page.

= 1.4.3 =
* In the settings, the button that adds a state to a typography style or a composite class is now called + state (it was ::pseudo). In a composite class it adds a pseudo-class, a pseudo-element or a path of children such as > .wp-block-button__link.

= 1.4.2 =
* New: a composite class can style what is inside the block wearing it. A state can be a path of children, such as > .wp-block-button__link (a button's link, since a block's class is on its wrapper), :hover > .wp-block-button__link, > li::before or > a > img. Type it into a section's state menu in the settings, or write it from the connector; the Von Block Editor shows those states beside the pseudo ones.
* Fixed: a page from the Von Block Designer whose composite classes used such states lost those declarations on import, so its buttons, for one, came in unstyled.

= 1.4.1 =
* Fixed: on servers whose PHP has no intl extension (WordPress Playground among them), saving breakpoints or importing a page stopped with an error. It now works there too.

= 1.4.0 =
* New: Von Block → Import a page. Choose a page saved by the Von Block Designer (an .html file) and it becomes a draft page on your site. Its pictures, films, sounds and animations go into the media library, and its framework (fonts included) replaces your site's. The framework you had stays under Saved settings and compiled frameworks, one Revert away. Nothing else changes: no other page, header, footer or menu.
* Removed: Import a site, and the Adios Aloha import codes it took. The plugin no longer contacts b2b.adiosaloha.com.

= 1.3.9 =
* The Von Block Editor could now and then open empty when it opened while the block editor was busy, for example the panel beside an editor that was just loading. It now waits until it has drawn itself before listening to the editor, then asks the editor for everything it needs.

= 1.3.8 =
* An animated block at the very end of a page now plays when you scroll to the end. Before, the last block on a page, or one near the bottom of a page too short to scroll, could stay hidden for good, waiting to come further into view than the page allowed.

= 1.3.7 =
* A smaller download. The plugin no longer carries the source files its scripts and stylesheets are built from, only the files it runs on. Nothing changes in how it works.

= 1.3.6 =
* Claude now knows that animations belong in the framework. The connector's instructions, get_framework and the global CSS tool say that a movement is a keyframes entry played by a composite class (the site starts with animate-from-left, -right and -bottom), not @keyframes in global CSS. check_editor points out @keyframes still written in global CSS.
* Claude also knows that a block can wear several typography classes, a variant beside its base style or a colour class beside a style, and which of them wins.

= 1.3.5 =
* A smaller stylesheet. A typography class is also written as a rule for the HTML element of the same name only when there is one (h2, p, a…); for a name like card-title that rule matched nothing. A typography class picked as a font size in the editor is written once instead of twice. Nothing changes in how pages look.
* A typography class picked as a font size now shows its whole style in the editor even when the editor isn't in a frame (as on a page with meta boxes), not only its size.

= 1.3.4 =
* A typography class no longer needs a font size. One without it can be worn beside another class as a variant (say, only a lighter weight) and keeps the other's size. It isn't offered as a WordPress font size; classes with a size work as before.

= 1.3.3 =
* The whole button is now the link, not just its text: clicking a button's padding or its arrow follows the link too. The keyboard focus ring goes round the whole button. Nothing changes in how buttons look.

= 1.3.2 =
* In Typography Classes, the property field now suggests pointer-events, cursor and user-select.

= 1.3.1 =
* Animations now play once, as their block comes into view, instead of moving with the scroll. Pages with many animated blocks scroll smoothly again. A block that is already on screen when the page opens plays straight away.
* The starter classes animate-from-left, animate-from-right and animate-from-bottom are updated to match, unless you changed them.

= 1.3.0 =
* Animations. A new Keyframes section at the bottom of the settings page holds your @keyframes: a name, its stops (from, to, 50% …) and what changes at each. A composite class plays one, and a block wears the class.
* Every site starts with three keyframes, from-left, from-right and from-bottom (fade in while sliding 40px), and three composite classes that play them as a block scrolls into view: animate-from-left, animate-from-right and animate-from-bottom. You can change or delete them. On an existing site they are added once, and a class name the site already uses is left alone.
* Visitors who have asked their system for less motion see no animations; the blocks simply appear.
* Composite Classes offer the animation properties (animation, animation-timeline, animation-range …) in the property menu.

= 1.2.5 =
* The Claude connector section on the settings page is tidier. Whether anything is connected, and whether a client can discover the site (with its Check button), now sit next to the Von Block ♥ Claude icons. Below them are the connector name, the MCP server URL and the prompt to start a chat with.

= 1.2.4 =
* Below the Claude connector settings, the settings page now shows the prompt to start a chat with Claude. It points Claude to the Von Block heads-up guide, and a button copies it.

= 1.2.3 =
* In Colors, the CSS variable reference always shows the Von Block framework variable (var(--mcg-color-…)). The menu for choosing between that and the WordPress name is gone.

= 1.2.2 =
* A colour picked with the colour button now replaces the colour already in the value instead of being added next to it, on the settings page and in the Von Block window. In a value such as 1px solid #000, only the colour is replaced. If the value has several colours, the one where the cursor is gets replaced. A value with no colour yet gets the colour added at the end.

= 1.2.1 =
* On the settings page, a value whose property takes a colour has a colour button beside it, as in the Von Block window. It lists the framework's colours to pick from and adds the one you pick as its variable (var(--mcg-color-…)), or lets you choose any other colour. This works in Typography Classes, Composite Classes and Properties.

= 1.2.0 =
* In Colors, the CSS variable reference now shows the Von Block framework's variables (var(--mcg-color-…)) by default. WordPress's names are still available from the menu.

= 1.1.9 =
* A block can have several typography classes. Typing one in the Von Block window adds it next to the ones already there instead of replacing them. Where two say the same thing, the one later in the alphabet wins, so a variant such as claim-on-dark next to claim overrides it. The window lists them in that order.
* In the framework stylesheet, typography styles now come first, then composite classes, then utility classes. A composite class now wins over a typography style on the same block, and a utility class wins over both.

= 1.1.8 =
* The framework's color variables (var(--mcg-color-…)) also work on the page itself, outside the blocks, for example on body.

= 1.1.7 =
* The Copy and Move buttons in the Von Block window show their icons only.

= 1.1.6 =
* In the Von Block window, copying and moving between breakpoints works on everything you select: tick the items, then press Copy or Move by the heading and pick the breakpoint. The copy and move buttons on each row are gone.

= 1.1.5 =
* In the Von Block window, clicking a composite class in the block's class list, or the typo- part of a typography class, opens it for editing, the same as clicking its pill.

= 1.1.4 =
* A display or margin given to a Button block (by a typography style, a class or a custom style) now applies, on the page and in the editor, instead of losing to WordPress's own button styles. A style that puts the button's text and arrow side by side keeps them in one row.

= 1.1.3 =
* Custom styles on a block that builds its markup as the page is served, such as WPML's language switcher, apply again when that markup starts with a style or script of its own.

= 1.1.2 =
* Custom styles on a query loop's post template (for example a gap between the rows of cards) apply to the list again, instead of to each card.

= 1.1.1 =
* A typography style picked for a button's text in the block's settings styles the button again: in 1.1.0 its weight, colour and padding were taken off.
* Search, file and comment buttons keep WordPress's default look; only Button blocks are plain.
* Buttons no longer get the framework's small default padding; their spacing is whatever you give the block.
* After an update that changes the framework itself, the site's stylesheet is rebuilt on the next visit to the dashboard.

= 1.1.0 =
* Button blocks no longer carry WordPress's default button look. A button takes its colours, font, border and spacing from the classes and styles you give the block, in the editor and on the site. A button with no styling of its own now shows as a plain link.
* white-space set on a button, such as nowrap, now applies in the block editor too.
* Von Block Editor: a typography class on a block shows as a pill at the top, like a composite class, and opens the same way.
* Von Block Editor: typing typo-<name> for a typography style that doesn't exist offers to create it.
* Von Block Editor: a font family or weight that is a Google font not yet on the site is offered to be added, normal and italic, with Latin Extended.
* Von Block Editor: an image written into a value shows as a placeholder; click it to pick another file.

= 1.0.3 =
* Each time Von Block is activated, it tells licensing.vonblock.com the site's address and the Von Block, WordPress and PHP versions. No personal data is sent.
* After reactivating, the site reports its admin contact again, as it does after an update.

= 1.0.2 =
* Changing the framework no longer makes the block editor flash unstyled: the new stylesheet is loaded before the old one is removed.
* Every framework version is saved as a file of its own, so pages always get a complete stylesheet, and going back to an earlier version takes effect at once.

= 1.0.1 =
* The Von Block Editor finds composite classes, such as bleed, when you type them into the class box, and puts them on the block with Enter.
* Schools and universities (.edu domains, and edu.au, edu.pl and the like) are licensed for free with no end date, and the license card says so.

= 1.0.0 =
* First public release.
* The MCG grid framework, compiled on your site from its own settings.
* The Von Block Editor: a panel beside the block editor, or a window of its own.
* Utility, typography and composite classes, and custom styles per breakpoint.
* The Claude connector (MCP): Claude builds pages with your framework.
* Free registration in one click on the settings page.
