=== WPMozo Canvas ===
Contributors: elicus
Tags: full-site-editing, block-patterns, style-variations, wide-blocks, blog, one-column, two-columns, custom-colors, custom-logo, editor-style, featured-images, rtl-language-support, threaded-comments, translation-ready
Requires at least: 6.8
Tested up to: 7.0
Requires PHP: 7.4
Stable tag: 1.0.6
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Canvas is a fast, lightweight native WordPress block theme built for speed and flexibility.

== Description ==

WPMozo Canvas is a native WordPress block theme with the design decisions already made — so you can focus on your content, not the chrome.

It ships with 59+ block patterns across every common page section, 16 one-click style variations, swappable header and footer template parts, and 10 curated typography presets — all bundled locally for GDPR-safe and WordPress.org-compliant operation.

Default rendering uses the system font stack (zero font requests, instant first paint). Activate any of the 10 typography presets with one click and only that preset's two fonts download to the visitor's browser.

Built by Elicus — makers of WPMozo and DiviExtended.

== Features ==

* 59 block patterns across hero, services, about, stats, testimonials, process, blog, CTA, clients, pricing, FAQ, team, gallery, contact, page-headers, features categories
* 16 one-click style variations: Default Blue, Sky Blue, Forest Green, Vivid Orange, Sunshine Yellow, Ruby Red, Soft Pink, Indigo Night, Ocean Teal, Royal Violet, Editorial Slate, Warm Terracotta, Electric Cyan, Hot Fuchsia, Coral Sunset, Lime Burst
* 5 header variations + 5 footer variations as swappable template parts
* 10 typography presets bundled locally (Bricolage Grotesque, DM Sans, Inter, Playfair Display, Source Sans 3, Anton, Lora, Space Grotesk, Manrope, Bitter, Fraunces, Caveat, Nunito, JetBrains Mono — all SIL Open Font License)
* System Fonts default — zero font requests until a preset is explicitly chosen
* GDPR compliant — no third-party CDN font loading, ever
* Conditional font loading — only the active preset's fonts load on the front-end
* Snapshot / reset / import tooling for Site Editor state (Tools → Canvas Tools)
* WP-CLI commands: `wp canvas snapshot|reset|import|preset|status`
* Zero scoped CSS — all styling via theme.json
* theme.json-driven architecture — visual decisions live in theme.json + core block attributes, minimising scoped CSS
* Full-width, wide-width, and constrained layout support
* RTL language support
* Translation-ready (.pot file included)
* Page-builder compatible — page-blank-canvas template ships unstyled for Divi / Elementor / Bricks
* Block-editor matched — preset typography also loads in the post / site editors so visual editing matches front-end

== Installation ==

1. In your WordPress admin, go to Appearance → Themes → Add New
2. Click "Upload Theme" and select wpmozo-canvas.zip
3. Click "Install Now" then "Activate"
4. (Optional) Go to Appearance → Typography Presets to pick a curated font pairing
5. Go to Appearance → Editor to customise headers, footers, and style variations

== Frequently Asked Questions ==

= Why does the theme use system fonts by default? =
Default = zero font requests = fastest first paint and zero GDPR concerns. To switch to a curated font pairing, visit Appearance → Typography Presets and click any of the 10 cards. Only the activated preset's fonts download to visitors.

= Are fonts bundled or loaded from Google? =
Bundled. All 14 unique font files (~600 KB on disk) ship inside the theme under SIL Open Font License. Zero requests go to fonts.googleapis.com or any third-party CDN. WordPress.org compliant and GDPR safe.

= Does this theme work with page builders? =
Yes. Canvas has zero scoped CSS, so it does not fight with Divi, Elementor, Bricks, or any other builder. Use the included `page-blank-canvas` template for full-page builder takeover.

= Are the block patterns editable? =
Yes. Every pattern is fully editable once inserted. Placeholder images use the theme's built-in placeholder SVGs.

= Can I change the colour scheme? =
Yes. Go to Appearance → Editor → Styles and choose from the 16 built-in style variations, or customise your own.

= Is this theme WooCommerce compatible? =
Canvas provides a clean, unstyled base. The H4 ecommerce header part is provided for stores. No dedicated WooCommerce templates are included in this release.

= Can I use Google Fonts? =
Yes — install via Appearance → Editor → Styles → Typography → Manage Fonts (the WordPress Font Library, requires WP 6.5+). The theme's bundled presets work without needing this.

= How do I reset the Site Editor to theme defaults? =
Go to Tools → Canvas Tools and use the bucket reset UI. You can also snapshot before resetting, or use WP-CLI: `wp canvas reset all --snapshot --yes`.

== Resources ==

This theme bundles the following font families under their respective SIL Open Font Licenses:

* Bricolage Grotesque © Mathieu Triay et al — https://github.com/ateliertriay/bricolage
* DM Sans © Indian Type Foundry & Google — https://github.com/googlefonts/dm-fonts
* Inter © Rasmus Andersson — https://github.com/rsms/inter
* Playfair Display © Claus Eggers Sørensen — https://github.com/clauseggers/Playfair-Display
* Source Sans 3 © Adobe — https://github.com/adobe-fonts/source-sans
* Anton © Vernon Adams et al — https://github.com/googlefonts/anton
* Lora © Cyreal — https://github.com/cyrealtype/Lora-Cyrillic
* Space Grotesk © Florian Karsten — https://github.com/floriankarsten/space-grotesk
* Manrope © Mikhail Sharanda — https://github.com/sharanda/manrope
* Bitter © Solmatas / Huerta Tipográfica — https://github.com/solmatas/BitterPro
* Fraunces © Phaedra Charles & Flavia Zimbardi — https://github.com/undercasetype/Fraunces
* Caveat © Pablo Impallari Olivares — https://github.com/googlefonts/caveat
* Nunito © Vernon Adams et al — https://github.com/googlefonts/nunito
* JetBrains Mono © JetBrains — https://github.com/JetBrains/JetBrainsMono

Full license terms: assets/fonts/OFL.txt

The 4 SVG placeholders in `assets/placeholders/` (hero-illustration.svg, about-portrait.svg, blog-thumbnail.svg, team-avatar.svg) are original artwork created in-house by Elicus for this theme. Composed using basic SVG primitives in the theme's color palette. No third-party assets or libraries are used. Licensed GPL-2.0-or-later (same as the theme).

== Changelog ==

= 1.0.6 - 2026-06-25 =

Translation readiness (patterns folder)
* Wrapped all user-facing text strings across all 59 pattern PHP files in the appropriate internationalization functions (esc_html_e, __ with wp_kses_post for strings containing inline markup, esc_attr_e for alt, placeholder, and aria-label attributes), all with the wpmozo-canvas text domain. Approximately 490 strings are now translatable.
* Regenerated languages/wpmozo-canvas.pot; it now carries 646 translatable entries.

Pattern demo content
* Replaced theme-promotional demo copy inside patterns with neutral studio-persona placeholder content. Pattern text no longer references the theme, WordPress, page builders, or theme features; testimonials, FAQs, pricing tiers, process steps, and feature grids now read as generic small-studio content that users replace with their own.
* Refreshed two stale pattern header descriptions (cta-dark-card, pricing-two-tier) to match the updated demo content.

= 1.0.5 - 2026-06-25 =

Theme metadata and assets
* Replaced theme screenshot with a neutral homepage capture per WordPress.org guidelines (no promotional text, no theme features showcased).

Front-facing credit links
* Reduced front-facing credit links from two to one in all five footer template parts (footer.html, footer-brand.html, footer-centered.html, footer-dark.html, footer-newsletter.html). The Theme URI link on "WPMozo Canvas" was removed; the Author URI link on "Elicus" was retained.

Translation readiness
* Wrapped all hard-coded user-facing strings in PHP files in __() with the 'wpmozo-canvas' text domain. Affects inc/class-wpmozo-canvas-cli.php (5 strings) and inc/admin-tools.php (typography preset name and tag fields, ~44 strings).
* Added translators comment and numbered placeholders to the WP-CLI preset list format string.
* Regenerated languages/wpmozo-canvas.pot to capture the new translatable strings.

= 1.0.4 - 2026-05-25 =

Placeholder illustrations
* Replaced all four SVG placeholders in assets/placeholders/ (hero-illustration.svg, about-portrait.svg, blog-thumbnail.svg, team-avatar.svg) with original artwork composed in-house at Elicus, using basic SVG primitives in the theme's color palette. Licensed GPL-2.0-or-later, same as the theme.

Documentation
* Added attribution and license information for placeholder illustrations to the Resources section of readme.txt.

Theme metadata
* Bumped Requires at least to 6.8 and Tested up to 7.0 after verification on the latest released WordPress.

Code quality
* Reattach orphaned docblocks for `wpmozo_canvas_flush_global_styles_cache()` and `wpmozo_canvas_print_preset_fonts()` so PHPDoc parses cleanly. Auto-fix one alignment warning. WPCS now reports zero errors and zero warnings across functions.php, inc/, and all 59 patterns.

= 1.0.3 - 2026-04-30 =

Style variations (palette set expanded from 8 to 16)
* Add 8 new sparky palettes: Ocean Teal, Royal Violet, Editorial Slate, Warm Terracotta, Electric Cyan, Hot Fuchsia, Coral Sunset, Lime Burst.
* All 15 named variations are now palette-only (no styles section) so picking any variation gives a clean color swap with no leftover styling from previously-selected variations. Resolves a wp_global_styles persistence quirk where embedded variation CSS could compound across switches.
* Reorder default theme.json palette so accent slugs come first, matching variation files.

Accessibility (WCAG 2.1 AA contrast on accent-light pills)
* Add a single CSS rule in theme.json so accent-colored text on accent-light pill backgrounds automatically uses accent-dark (which always passes contrast). Keeps the bright original accent color everywhere else, restoring the visual "spark" while still passing the worst-case AA combo.

Touch targets
* Footer signature anchors (WPMozo Canvas, Elicus links) now meet WCAG 2.2 AA 24x24px minimum touch target via inline-block + padding (was ~12px tall).

.has-border-color text-color leak fix
* Cards that set a border-color preset (e.g. testimonial featured card with `style.border.color: ink`) were inheriting the border preset as text color, making author names appear near-invisible. Now `.has-border-color` only applies border color, leaving text color to inherit.

Theme metadata
* Drop misclaim tags from style.css (three-columns, four-columns) and from readme.txt (three-columns, four-columns, footer-widgets, theme-options).
* Add add_theme_support('custom-logo') with flex sizing so the custom-logo tag becomes legitimate.
* style.css and readme.txt Tags lists now identical (14 tags, all backed by implementation).

= 1.0.2 - 2026-04-30 =

Mobile and layout polish
* Mobile menu overlay: links now have proper horizontal padding instead of sitting flush against the screen edge.
* Header: guaranteed gap on the outer flex so the logo dot doesn't visually merge with the hamburger icon on narrow widths (4 standard headers).
* Footer copyright: dot separator paragraph between the year and site title for a cleaner single-line read (4 footer variants).
* Blog three-column pattern: section padding and grid blockGap so cards no longer sit flush.

Site Editor preset integration
* Active preset's heading and body font families now reflect in Site Editor → Styles → Typography → Fonts via the wp_theme_json_data_theme filter. Theme.json's existing element wiring (h1-h6, paragraphs, buttons, captions, links → preset slugs) cascades automatically.
* Reset to System Fonts safely removes any user-side font customization from wp_global_styles so theme defaults take over (defensive against malformed legacy data).

Admin Tools page
* Active preset display: shows "Caveat + Nunito" in an accent pill instead of the raw caveat-nunito slug.
* Active preset card: green corner ribbon plus tinted head/foot to make the active state visually unmistakable.

= 1.0.1 - 2026-04-27 =

Security
* CSS-safe sanitizer for font-family values in preset injection — replaces wp_strip_all_tags which left CSS injection vectors open.

Stability
* Stop calling wp_cache_flush() and opcache_reset() during preset switches; cache invalidation now targets only theme.json caches and leaves other plugins' transients/sessions intact.

Performance
* Gate legacy preset migration behind a one-shot option flag so it runs once per install instead of on every preset apply / clear.
* Memoize font_registry() and find_user_global_styles_post() so repeated calls hit a per-request static cache.

Templates and layout
* Restore content rhythm in post-content — headings, lists, quotes, and paragraphs now have proper vertical spacing.
* Add gap between title and content on page templates (page.html, page-with-sidebar.html).
* Add section padding before footer on archive.html and search.html.
* Add section padding and grid blockGap on Blog Feed Grid template part.
* Fix block recovery (AR) errors on author card columns in single.html and single-with-sidebar.html.
* Visible focus ring on tab navigation via focus-visible.

Cleanup
* Drop 3 unused add_image_size() calls; keep only the size used by patterns.
* Remove empty wpmozo_canvas_editor_assets() function and its hook.
* Extract admin presets-page CSS to assets/css/admin-tools.css and enqueue it conditionally on the page hook.
* Delete 8 obsolete silence-is-golden index.php stubs (root index.php retained per WordPress block-theme requirement).

= 1.0.0 - 2026-04-27 =
* Initial release.
* 46 block patterns across hero, services, about, stats, testimonials, process, blog, CTA, clients, pricing, FAQ, team, gallery, contact, features, and page-headers categories.
* 10 typography presets with locally bundled OFL fonts (System Fonts default, plus 9 curated heading + body pairings).
* 8 style variations (light + dark mode).
* 5 swappable headers + 5 footers, sidebar template part, and 3 blog feed layouts (List, Grid, With Sidebar).
* Conditional font loading — only the active preset's fonts download on the front-end.
* WCAG 2.1 focus rings via theme.json.
* WP-CLI: wp canvas status / wp canvas preset list|<id>|clear.

== Credits ==

* Built by Elicus — https://elicus.com
* Bundled fonts: see Resources section for per-font credits.
* License: GPL-2.0-or-later
