diff --git a/blocks/cake_gallery.ninjatpl b/blocks/cake_gallery.ninjatpl index 318a6a1..b1f617e 100644 --- a/blocks/cake_gallery.ninjatpl +++ b/blocks/cake_gallery.ninjatpl @@ -10,14 +10,10 @@
{% if cake.image %}
{% img cake.image alt=cake.name|default:"Cake" class="block h-full w-full object-cover" %}
{% endif %}
-
-
- {% if cake.name %}

{{ cake.name }}

{% endif %} - {% if cake.flavour %}

{{ cake.flavour }}

{% endif %} -
- {% if cake.price %}{% if currency %}{{ currency }}{% endif %}{{ cake.price }}{% endif %} -
- {% if cake.orderUrl %}Order this cake{% endif %} + {% if cake.name %}

{{ cake.name }}

{% endif %} + {% if cake.flavour %}

{{ cake.flavour }}

{% endif %} + {% if cake.price %}

{% if currency %}{{ currency }}{% endif %}{{ cake.price }}

{% endif %} + {% if cake.orderUrl %}Order this cake{% endif %}
{% endfor %} diff --git a/blocks/order_ribbon.ninjatpl b/blocks/order_ribbon.ninjatpl index bdec333..8efd13f 100644 --- a/blocks/order_ribbon.ninjatpl +++ b/blocks/order_ribbon.ninjatpl @@ -9,7 +9,7 @@ {% if ctaLabel %}
- {{ ctaLabel }} + {{ ctaLabel }}
{% endif %} diff --git a/blocks/seasonal_specials.ninjatpl b/blocks/seasonal_specials.ninjatpl index 083f583..24001ca 100644 --- a/blocks/seasonal_specials.ninjatpl +++ b/blocks/seasonal_specials.ninjatpl @@ -11,11 +11,11 @@
{% if item.image %}
{% img item.image alt=item.name|default:"Seasonal special" class="block h-full w-full object-cover" %}
{% endif %}
-
-

{{ item.name }}

- {% if item.price %}{% if currency %}{{ currency }}{% endif %}{{ item.price }}{% endif %} +

{{ item.name }}

+
+ {% if item.price %}{% if currency %}{{ currency }}{% endif %}{{ item.price }}{% endif %} + {% if item.badge %}{{ item.badge }}{% endif %}
- {% if item.badge %}{{ item.badge }}{% endif %} {% if item.note %}

{{ item.note }}

{% endif %}
diff --git a/seed/media/bakery-interior.jpg b/seed/media/bakery-interior.jpg new file mode 100644 index 0000000..a2e65c1 Binary files /dev/null and b/seed/media/bakery-interior.jpg differ diff --git a/seed/media/croissants.jpg b/seed/media/croissants.jpg new file mode 100644 index 0000000..dd24896 Binary files /dev/null and b/seed/media/croissants.jpg differ diff --git a/seed/media/fruit-galette.jpg b/seed/media/fruit-galette.jpg new file mode 100644 index 0000000..478bb65 Binary files /dev/null and b/seed/media/fruit-galette.jpg differ diff --git a/seed/media/lemon-loaf.jpg b/seed/media/lemon-loaf.jpg new file mode 100644 index 0000000..04ab7d8 Binary files /dev/null and b/seed/media/lemon-loaf.jpg differ diff --git a/seed/media/sponge-cake.jpg b/seed/media/sponge-cake.jpg new file mode 100644 index 0000000..2e90d59 Binary files /dev/null and b/seed/media/sponge-cake.jpg differ diff --git a/seed/media/strawberry-tart.jpg b/seed/media/strawberry-tart.jpg new file mode 100644 index 0000000..05a10f9 Binary files /dev/null and b/seed/media/strawberry-tart.jpg differ diff --git a/seed/seed.json b/seed/seed.json index 17eb846..152f35b 100644 --- a/seed/seed.json +++ b/seed/seed.json @@ -6,6 +6,14 @@ "site_description": "A small patisserie baking cakes, pastries and seasonal treats." } }, + "media": [ + { "id": "a1b2c3d4-0001-4a00-8000-000000000001", "file": "media/strawberry-tart.jpg", "alt": "Strawberry tart with vanilla custard and a glaze of fresh berries", "folder": "Petal & Crumb" }, + { "id": "a1b2c3d4-0001-4a00-8000-000000000002", "file": "media/croissants.jpg", "alt": "Golden laminated croissants fresh from the oven", "folder": "Petal & Crumb" }, + { "id": "a1b2c3d4-0001-4a00-8000-000000000003", "file": "media/lemon-loaf.jpg", "alt": "Lemon poppy loaf dusted with sugar, sliced", "folder": "Petal & Crumb" }, + { "id": "a1b2c3d4-0001-4a00-8000-000000000004", "file": "media/sponge-cake.jpg", "alt": "Light sponge cake layered with cream", "folder": "Petal & Crumb" }, + { "id": "a1b2c3d4-0001-4a00-8000-000000000005", "file": "media/fruit-galette.jpg", "alt": "Rustic fruit galette with berries and whipped cream", "folder": "Petal & Crumb" }, + { "id": "a1b2c3d4-0001-4a00-8000-000000000006", "file": "media/bakery-interior.jpg", "alt": "The counter at Petal & Crumb, breads and pastries on display", "folder": "Petal & Crumb" } + ], "data_tables": [ { "key": "contact_submissions", @@ -36,9 +44,9 @@ { "block_key": "navbar", "title": "Navigation", "slot": "header", "sort_order": 0, "content": { "menuName": "main", "companyName": "Petal & Crumb", "ctaLabel": "Order a cake", "ctaUrl": "/contact" } }, { "block_key": "hero", "title": "Hero", "slot": "main", "sort_order": 0, "content": { "template": "centered", "eyebrow": "Open from 8", "headline": "Cakes and pastries, baked fresh each morning", "subheadline": "A small patisserie on the corner. Everything is made by hand the day you eat it.", "ctaPrimary": { "text": "See the menu", "url": "/#menu" }, "ctaSecondary": { "text": "Order a cake", "url": "/contact" }, "minHeight": "50vh" } }, { "block_key": "pastel-dream:seasonal_specials", "title": "Seasonal Specials", "slot": "main", "sort_order": 1, "content": { "kicker": "This week", "heading": "On the counter now", "intro": "A short list of what we are proud of this week. It changes with the season.", "currency": "$", "items": [ - { "name": "Strawberry tart", "note": "Vanilla custard, fresh strawberries, a thin glaze.", "price": "8.00", "badge": "New" }, - { "name": "Pistachio croissant", "note": "Laminated overnight, filled with pistachio cream.", "price": "6.50", "badge": "Popular" }, - { "name": "Lemon poppy loaf", "note": "Soft, tangy, dusted with sugar. Sold by the slice.", "price": "5.00", "badge": "" } + { "image": "media:a1b2c3d4-0001-4a00-8000-000000000001", "name": "Strawberry tart", "note": "Vanilla custard, fresh strawberries, a thin glaze.", "price": "8.00", "badge": "New" }, + { "image": "media:a1b2c3d4-0001-4a00-8000-000000000002", "name": "Pistachio croissant", "note": "Laminated overnight, filled with pistachio cream.", "price": "6.50", "badge": "Popular" }, + { "image": "media:a1b2c3d4-0001-4a00-8000-000000000003", "name": "Lemon poppy loaf", "note": "Soft, tangy, dusted with sugar. Sold by the slice.", "price": "5.00", "badge": "" } ] } }, { "block_key": "menu-list", "title": "Menu", "slot": "main", "sort_order": 2, "content": { "heading": "The full menu", "intro": "Prices are for takeaway. We can box anything for a gift.", "currency": "$", "columns": 2, "sections": [ { "title": "Pastries", "items": [ @@ -74,7 +82,7 @@ "blocks": [ { "block_key": "navbar", "title": "Navigation", "slot": "header", "sort_order": 0, "content": { "menuName": "main", "companyName": "Petal & Crumb", "ctaLabel": "Order a cake", "ctaUrl": "/contact" } }, { "block_key": "hero", "title": "Hero", "slot": "main", "sort_order": 0, "content": { "template": "centered", "eyebrow": "Our story", "headline": "One oven, one small room", "subheadline": "We opened with a single oven and a short menu. We kept it that way on purpose.", "minHeight": "auto" } }, - { "block_key": "rich-section", "title": "Story", "slot": "main", "sort_order": 1, "content": { "eyebrow": "How we bake", "heading": "Made the same day", "body": "

We start before dawn. The pastry is laminated the night before and baked in the morning, so it reaches you the same day it is made.

The menu is short because we make everything ourselves. When something is out, it is out until the next bake.

", "mediaPosition": "right" } }, + { "block_key": "rich-section", "title": "Story", "slot": "main", "sort_order": 1, "content": { "eyebrow": "How we bake", "heading": "Made the same day", "body": "

We start before dawn. The pastry is laminated the night before and baked in the morning, so it reaches you the same day it is made.

The menu is short because we make everything ourselves. When something is out, it is out until the next bake.

", "mediaPosition": "right", "media": "media:a1b2c3d4-0001-4a00-8000-000000000006", "mediaAlt": "The counter at Petal & Crumb, breads and pastries on display" } }, { "block_key": "pastel-dream:bakers_note", "title": "Baker's Note", "slot": "main", "sort_order": 2, "content": { "kicker": "A note from the kitchen", "body": "

Thank you for buying from a small shop. Every order helps us keep baking by hand. We taste each batch before it reaches the counter, and we would rather sell out than cut a corner.

", "signatureName": "Cara Wells", "signatureRole": "Baker and owner" } }, { "block_key": "team", "title": "Team", "slot": "main", "sort_order": 3, "content": { "heading": "The people at the bench", "members": [ { "name": "Cara", "role": "Baker and owner", "bio": "Laminates the pastry and runs the morning bake." }, @@ -105,11 +113,11 @@ "blocks": [ { "block_key": "navbar", "title": "Navigation", "slot": "header", "sort_order": 0, "content": { "menuName": "main", "companyName": "Petal & Crumb", "ctaLabel": "Order a cake", "ctaUrl": "/contact" } }, { "block_key": "heading", "title": "Title", "slot": "main", "sort_order": 0, "content": { "level": 1, "text": "Strawberries are in" } }, - { "block_key": "text", "title": "Body", "slot": "main", "sort_order": 1, "content": { "text": "

The first ripe strawberries came in this week. They are small, sweet, and they do not keep, so we use them fast.

This week they go into the strawberry tart and a plain sponge with cream. When they run out, we move on to the next fruit.

Come in early. The tarts tend to go before lunch.

" } }, + { "block_key": "text", "title": "Body", "slot": "main", "sort_order": 1, "content": { "text": "

The first ripe strawberries came in this week. They are small, sweet, and they do not keep, so we use them fast. A grower two towns over drops a tray at the back door before we open, still cool from the morning.

We sort them by hand at the bench. The neat ones go on the tarts, where they sit in rows and catch the light. The soft ones are just as good, so they go into the jam pan and cook down for the sponge.

A strawberry tart is a simple thing done carefully. We blind bake the pastry until it is properly short, cool it, then pipe in vanilla custard the same morning. The fruit goes on last, with a thin brush of glaze so it shines without turning sticky.

The sponge is the other side of the same fruit. We fold cream and a spoon of that quick jam between two light layers, then a dusting of sugar on top. It is the cake we make when we want the strawberry to taste like summer rather than like a garnish.

Strawberries do not wait. They are best the day they are picked and a little tired by the next, so we do not hold them back or freeze a batch for later. What comes in is what we bake, and when it is gone it is gone.

That is the whole reason the menu changes. We would rather follow the fruit than force it. Next it will be the first stone fruit, and the tarts will turn gold instead of red.

If you have a favourite, tell us at the counter. We keep a short list of who asked for what, and we will put one aside when the season is at its best.

Come in early if you can. The tarts tend to go before lunch, and the sponge is usually cut by mid afternoon. There is always something on the counter, but the strawberries are worth the early trip.

" } }, { "block_key": "pastel-dream:cake_gallery", "title": "Cake Gallery", "slot": "main", "sort_order": 2, "content": { "heading": "What we made this week", "intro": "A few things that came out of the oven.", "currency": "$", "cakes": [ - { "name": "Strawberry tart", "flavour": "Vanilla custard", "price": "8.00", "orderUrl": "/contact" }, - { "name": "Strawberry sponge", "flavour": "Cream and jam", "price": "7.00", "orderUrl": "/contact" }, - { "name": "Fruit galette", "flavour": "Seasonal", "price": "6.50", "orderUrl": "/contact" } + { "image": "media:a1b2c3d4-0001-4a00-8000-000000000001", "name": "Strawberry tart", "flavour": "Vanilla custard", "price": "8.00", "orderUrl": "/contact" }, + { "image": "media:a1b2c3d4-0001-4a00-8000-000000000004", "name": "Strawberry sponge", "flavour": "Cream and jam", "price": "7.00", "orderUrl": "/contact" }, + { "image": "media:a1b2c3d4-0001-4a00-8000-000000000005", "name": "Fruit galette", "flavour": "Seasonal", "price": "6.50", "orderUrl": "/contact" } ] } }, { "block_key": "footer", "title": "Footer", "slot": "footer", "sort_order": 0, "content": { "companyName": "Petal & Crumb", "tagline": "A small patisserie, baked fresh each morning.", "email": "hello@petalandcrumb.test", "copyright": "Petal & Crumb" } } ] diff --git a/templates/overrides/pastel-dream/audio-embed.ninjatpl b/templates/overrides/pastel-dream/audio-embed.ninjatpl index 0f78ec0..eab7891 100644 --- a/templates/overrides/pastel-dream/audio-embed.ninjatpl +++ b/templates/overrides/pastel-dream/audio-embed.ninjatpl @@ -1,4 +1,4 @@ -
{% if artwork %}
{% img artwork alt=title|default:"" class="h-full w-full object-cover" %}
{% endif %}
{% if title %}

{{ title }}

{% endif %}{% if artist %}

{{ artist }}

{% endif %}
{% if download %} Download{% endif %}