diff --git a/CHANGELOG.md b/CHANGELOG.md index 3e54893..21e83b8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,8 +6,9 @@ Spark follows human-readable release notes rather than a package-manager version The GitHub release body is a summary, not a copy of the changelog section. Write one sentence framing the release, then a `### Highlights` list of at most five bullets, then a link to `CHANGELOG.md` at the release tag for the full record. A changelog entry stays as long as the change needs it to be, but the release page is scanned rather than read, so pasting a long entry into it produces notes nobody can follow. That is what happened to 1.3.0 and 1.4.0, both since rewritten. Use the 1.2.0 release as the reference format. -## Unreleased +## 1.5.0 - 2026-09-21 +- Product cards in grids now render for a product that cannot be bought instead of disappearing. The new Theme Setting `product_card_sold_out_style` (Product Pages > Product Cards) chooses `badge` (default: the card plus a localized Sold out badge in place of the Sale badge), `muted` (badge plus reduced opacity), or `hide` (the previous behaviour). A store whose data file predates the key falls back to `badge` without a `settings_data.json` push. `docs/extending-spark.md` gained a "Settings Data Safety On Live Stores" section: never push `configs/settings_data.json` to a live store by default, prefer template fallbacks so no data push is needed, and when keys must land on a live store pull first and merge onto the live file; `CLAUDE.md` and `docs/theme-settings-partials.md` point at it. - Added the Image with Text homepage section (`partials/section_image_text.html`, Theme Settings > Homepage > Image with Text, toggle `show_image_text`, off by default). It is a 50/50 image and copy split with image left/right, a square/portrait/landscape/native image ratio, eyebrow, heading, rich-text body, a CTA with primary/secondary/outline styles, and background and text colours; on mobile it stacks image first. It is included from `templates/index.html` between Featured Categories and On Sale. With the toggle on and nothing configured it renders the same setup placeholder pattern as the other sections. `partials/cta_button.html` gained a `secondary` style so the section can reuse the existing `.btn-secondary` class. Spec: `docs/section-specs/image-text.md`. `assets/main.css` grew from 50298 to 50536 bytes for the new ratio and ordering utilities. - Published the app-hook contract in `docs/app-hooks.md`: an inventory of all 13 `{% app_hook %}` sites with the file, page position, surrounding DOM, and whether each renders once per page or once per product card; the `_` naming rule derived from the existing names; and a stability policy (existing hook names are stable, new hooks are additive, renames and removals keep the old hook for at least one minor release). The two locations the platform Tag Reference documents, `global_header` and `global_footer`, are both carried. Linked from `docs/README.md`, `docs/extending-spark.md`, and `CLAUDE.md`; the matching `TODOS.md` entry is closed. - The default for `membership_status_metadata_key` is now the neutral `member_status` in `configs/settings_schema.json`, `layouts/base.html`, and `assets/js/spark-membership-pricing.js`. It previously shipped a store-specific key. A store that enabled membership pricing without setting the key explicitly must now set it in Theme Settings; the migration note in `docs/theme-settings-partials.md` names the old value. diff --git a/CLAUDE.md b/CLAUDE.md index 25499bb..f84da7d 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -3,7 +3,7 @@ ## Overview Spark is a modern starter theme for Next Commerce storefronts. Tailwind CSS + vanilla JS. Clean, minimal commerce aesthetic. Intended to replace Intro Bootstrap as the default starter theme and become a product in its own right. -**Current version:** 1.4.1 +**Current version:** 1.5.0 **Repo:** `NextCommerceCo/spark` (public starter theme) **ntk config:** `config.yml` is gitignored and store-specific. Create it with `ntk init`; never commit store credentials. **Companion skill:** Use the [next-theme-dev skill](https://github.com/NextCommerceCo/skills/tree/main/next-theme-dev) for AI-assisted Spark, Intro Bootstrap, and custom Next Commerce theme work. diff --git a/PLAN.md b/PLAN.md index c46cf77..a2dd12a 100644 --- a/PLAN.md +++ b/PLAN.md @@ -1,6 +1,6 @@ # Spark Theme — Public Roadmap -**Status:** v1.4.1 shipped. Functional, installable, Web Components in place, and ready for deeper storefront validation by theme developers. +**Status:** v1.5.0 shipped. Functional, installable, Web Components in place, and ready for deeper storefront validation by theme developers. **Release posture:** public starter theme. Spark is ready for theme developers to clone, inspect, adapt, and install on stores they control. It still needs more merchant-store mileage, testing, and packaging polish before it should be treated as a marketplace-grade release. diff --git a/README.md b/README.md index 09b57fe..07e26b4 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ A modern starter theme for Next Commerce. Tailwind CSS v4, vanilla JS + Web Components, zero jQuery, zero Bootstrap, no bundler required. -**Current version:** 1.4.1 +**Current version:** 1.5.0 **Release status:** Public starter theme. Spark is installable on NEXT stores via `ntk` and is used for public-facing storefront builds. The theme is ready for theme developers to clone, inspect, adapt, and push to stores they control. diff --git a/docs/theme-settings-partials.md b/docs/theme-settings-partials.md index 43ae8ca..94d097c 100644 --- a/docs/theme-settings-partials.md +++ b/docs/theme-settings-partials.md @@ -82,7 +82,7 @@ These are reusable implementation helpers. They are not directly controlled by T ## Migration Notes -### Membership status metadata key default (1.4.1 -> next release) +### Membership status metadata key default (1.4.1 -> 1.5.0) The default for `membership_status_metadata_key` changed from a store-specific value to the neutral `member_status`. The same default is applied in `layouts/base.html` (`|default:` filter) and `assets/js/spark-membership-pricing.js`, so all three moved together. diff --git a/manifest.json b/manifest.json index c53ef5b..a05aade 100644 --- a/manifest.json +++ b/manifest.json @@ -1,4 +1,4 @@ { "name": "Spark", - "version": "1.4.1" + "version": "1.5.0" }