Classes now have real, readable names that render as typed in both the editor and the frontend, with validated unique names, a hierarchy separator, and a rebuilt sidebar for creating, searching and switching classes.
Style variables get readable CSS custom property names derived from their collection, group and variable labels, with an optional manual name that is validated and kept unique across the theme.
Mosaic is now available in 22 languages. Localization is an ongoing effort. If a string reads wrong in your language, send the correction to our support and it goes into a coming release.
New languages: Czech, Danish, Dutch, Finnish, French, German, Greek, Hungarian, Indonesian, Italian, Japanese, Persian, Polish, Portuguese, Portuguese (Brazil), Romanian, Russian, Simplified Chinese, Spanish, Swedish and Turkish.
A Badge variant turns a Link element into a badge, with default styles in every shipped theme. Existing badge subclass styles are migrated automatically and keep working as before.
A new Inactive setting renders Link, Button and Badge variants as a plain span: no link or button semantics, no focus and no interactive styling. Useful for labels, status pills and non-clickable badges.
Component instances no longer render an extra wrapper div on the frontend, so the markup matches the structure you built. Interaction targeting now uses a data attribute instead of the wrapper element.
ACF and SCF field groups assigned to attachments are now discovered, so media custom fields are available as variables inside the attachment loop.
Fixed option pages fataling on Repeater, Group and Flexible Content fields, two layouts sharing a sub-field name leaking values into each other, date field sorting, and sibling meta keys missing from variable lists.
Manually assigned templates were ignored on the frontend for pending, draft and scheduled posts, so users allowed to view unpublished content got the auto-assigned fallback template instead.
Post content lost its layout classes and rendered full width when another plugin appended markup to every block, for example PublishPress Blocks.
The Empty theme could not be imported into 1.0.7, because its bundled data version files were not updated with the release.
This release includes a data upgrade that converts your existing class labels into real class names. Most names are derived directly from the old label or CSS class. Names that cannot be converted, for example ones written with accented characters or non-Latin scripts, get a generated name instead and keep the original text as their label, so you can rename them at your own pace.
These legacy labels are kept until the first release after January 1, 2027, when they are removed. Nothing breaks at that point: the classes keep their generated names and continue to work exactly as before, only the original label is no longer shown.