# Aurelia — Shopify theme

Dawn 15.5.0 with 102 extra sections and 6 demo layouts. Built to be
installed on a new store in minutes and reused indefinitely.

(Dawn's own `README.md` and MIT `LICENSE.md` are untouched alongside this.)

## Reuse in one command

```bash
./deploy.sh yourstore.myshopify.com
```

Audits first, then pushes as a **new unpublished theme**. It never
publishes and never touches a live theme.

Or upload the ZIP: Online Store → Themes → Add theme → Upload.

## What's in it

| Provenance | Sections | Reuse |
|---|---|---|
| Dawn stock | 55 | MIT — unlimited |
| Written for this theme | 12 | unlimited |
| Ascendify-derived | 73 | covered by your Ascendify licence |

There is **no licence gate of any kind** here — no `icon_fav`, no
`fav_collection`, no phone-home. Verified by `audit.py` and by grep.

That is a statement about the code, not about the Ascendify licence.
"No gate" is not the same as "licensed for unlimited stores." If you want
a build with zero ambiguity, drop the 73 Ascendify-derived sections and
you still have a 67-section theme that is entirely yours.

### The 12 built from scratch

`shop-the-look` · `size-guide` · `free-shipping-bar` · `sticky-add-to-cart`
· `press-logos` · `marquee-banner` · `gift-box` · `bundle-offer`
· `editorial-split-reformation` · `category-tiles-anthropologie`
· `image-hero-houseofcb` · `community-grid-parke`

All schema-driven — every colour, size and string edits in the theme
editor. No third-party round-trip.

## Per-store setup

1. **`snippets/store-schema.liquid`** — fill the assigns at the top
   (verification tag, business name, address, phone, socials). Blank by
   default so this theme never carries another store's identity.
2. **Theme settings → Colors** — Dawn ships neutral; set brand colours.
3. **Images** — sections fall back to `picsum.photos` placeholders via
   their *Image URL* field. Pick a real image and it wins automatically.
4. **Demo templates** — create a Page, choose
   `page.demo-{reformation,houseofcb,anthropologie,freepeople,urban,parke}`
   from the template dropdown. Delete the ones you don't want.

## Before every push

```bash
python3 audit.py
```

13 checks, including ones **only** Shopify's push validator enforces and
no linter catches:

- `range`: max < 10000, ≤101 steps, step ≤1 decimal place
- `range`: default must land exactly on a step boundary
- range values **inside templates** must also sit on a step
- `unit` ≤ 3 characters
- section `name` ≤ 25 characters
- no Ruby-style `#{}` interpolation in filter arguments
- schema JSON validity, missing snippets/assets, undeclared block types,
  duplicate setting ids, missing `t:` translation keys

### Two traps worth remembering

**Never pipe `theme push` to `grep success`.** The success banner prints
*alongside* errors. Filtering to "success" hides real schema failures —
that is how broken sections shipped once already.

**An invalid schema anywhere breaks the whole theme.** Shopify refuses to
render everything, so even an empty `index.json` returns HTTP 500. Don't
bisect section by section; run a full push and read the validator output.

## Improving the base

This is a git repo. Improve here, then re-run `./deploy.sh` per store.
Stores do **not** auto-update — each deploy is an independent copy.

```
git tag dawn-pristine     # untouched Dawn 15.5.0, for diffing
```
