diff --git a/blocks/discography.ninjatpl b/blocks/discography.ninjatpl index 9860bc4..19bddfd 100644 --- a/blocks/discography.ninjatpl +++ b/blocks/discography.ninjatpl @@ -12,7 +12,7 @@ {% else %}
{% endif %}No audio source set yet.
{% endif %} + {% if audioUrl %}{% else %}Chrome Static started in a share house with a borrowed drum machine and a broken amp. We kept the sound and fixed the amp.
We record live to tape in one room. What you hear on the record is what we play on the night. Four people, no click track, one take when we can get it.
" } }, - { "block_key": "quote", "title": "Quote", "slot": "main", "sort_order": 3, "content": { "style": "pull", "quote": "Loud, bright, and done in one take.", "attribution": "Chrome Static" } }, - { "block_key": "divider", "title": "Divider", "slot": "main", "sort_order": 4, "content": { "variant": "line", "weight": "medium" } }, + { + "block_key": "image", + "title": "Band image", + "slot": "main", + "sort_order": 1, + "content": { + "src": "media:b7c0de00-0000-4000-8000-000000000006", + "alt": "Brushed metallic chrome texture", + "caption": "Chrome Static — live to tape, one room.", + "size": "full", + "aspectRatio": "wide" + } + }, + { + "block_key": "heading", + "title": "Heading", + "slot": "main", + "sort_order": 2, + "content": { + "text": "The band", + "level": 1 + } + }, + { + "block_key": "rich-text", + "title": "Story", + "slot": "main", + "sort_order": 3, + "content": { + "html": "Chrome Static started in a share house with a borrowed drum machine and a broken amp. We kept the sound and fixed the amp.
We record live to tape in one room. What you hear on the record is what we play on the night. Four people, no click track, one take when we can get it.
" + } + }, + { + "block_key": "quote", + "title": "Quote", + "slot": "main", + "sort_order": 4, + "content": { + "style": "pull", + "quote": "Loud, bright, and done in one take.", + "attribution": "Chrome Static" + } + }, + { + "block_key": "divider", + "title": "Divider", + "slot": "main", + "sort_order": 5, + "content": { + "variant": "line", + "weight": "medium" + } + }, { "block_key": "y2k:tracklist", "title": "Frosted tracklist", "slot": "main", - "sort_order": 5, + "sort_order": 6, "content": { "tracks": [ - { "title": "Frosted", "duration": "3:12", "url": "" }, - { "title": "Dial Tone", "duration": "2:48", "url": "" }, - { "title": "Silver Static", "duration": "4:01", "url": "" }, - { "title": "Skyline", "duration": "3:35", "url": "" } + { + "title": "Frosted", + "duration": "3:12", + "url": "" + }, + { + "title": "Dial Tone", + "duration": "2:48", + "url": "" + }, + { + "title": "Silver Static", + "duration": "4:01", + "url": "" + }, + { + "title": "Skyline", + "duration": "3:35", + "url": "" + } ] } } @@ -128,9 +299,45 @@ "title": "Journal", "template_key": "blog-index", "blocks": [ - { "block_key": "card", "title": "Post: Tape", "slot": "main", "sort_order": 1, "content": { "layout": "vertical", "title": "Why we still track to tape", "text": "Tape makes us commit. Here is what that costs and what we get back.
", "link": "/blog/tracking-to-tape", "linkLabel": "Read on" } }, - { "block_key": "card", "title": "Post: Tour", "slot": "main", "sort_order": 2, "content": { "layout": "vertical", "title": "Notes from the September run", "text": "Three cities in a van. What went right and what broke.
", "link": "/blog/september-run", "linkLabel": "Read on" } }, - { "block_key": "card", "title": "Post: Gear", "slot": "main", "sort_order": 3, "content": { "layout": "vertical", "title": "The one pedal we cannot replace", "text": "A cheap chorus pedal from 1999. It is the whole sound.
", "link": "/blog/the-chorus-pedal", "linkLabel": "Read on" } } + { + "block_key": "card", + "title": "Post: Tape", + "slot": "main", + "sort_order": 1, + "content": { + "layout": "vertical", + "title": "Why we still track to tape", + "text": "Tape makes us commit. Here is what that costs and what we get back.
", + "link": "/blog/tracking-to-tape", + "linkLabel": "Read on" + } + }, + { + "block_key": "card", + "title": "Post: Tour", + "slot": "main", + "sort_order": 2, + "content": { + "layout": "vertical", + "title": "Notes from the September run", + "text": "Three cities in a van. What went right and what broke.
", + "link": "/blog/september-run", + "linkLabel": "Read on" + } + }, + { + "block_key": "card", + "title": "Post: Gear", + "slot": "main", + "sort_order": 3, + "content": { + "layout": "vertical", + "title": "The one pedal we cannot replace", + "text": "A cheap chorus pedal from 1999. It is the whole sound.
", + "link": "/blog/the-chorus-pedal", + "linkLabel": "Read on" + } + } ] }, { @@ -139,8 +346,25 @@ "template_key": "article", "parent_slug": "/blog", "blocks": [ - { "block_key": "heading", "title": "Title", "slot": "main", "sort_order": 1, "content": { "text": "Why we still track to tape", "level": 1 } }, - { "block_key": "rich-text", "title": "Body", "slot": "main", "sort_order": 2, "content": { "html": "Tape does not let you undo. You play it, you keep it, or you play it again. That pressure shows up in the take.
It is slower and it costs more. We think the trade is worth it. The record sounds like a room, not a grid.
" } } + { + "block_key": "heading", + "title": "Title", + "slot": "main", + "sort_order": 1, + "content": { + "text": "Why we still track to tape", + "level": 1 + } + }, + { + "block_key": "rich-text", + "title": "Body", + "slot": "main", + "sort_order": 2, + "content": { + "html": "Everyone asks why we still bother with tape. The honest answer is that it makes us better — not the sound first, the playing. Tape does not let you undo, so you stop treating a take like a draft and start treating it like a performance.
We tracked Frosted in a converted laundry in Brunswick over four nights in the winter of 1999. One room, one machine, four of us, and whoever wandered in. The reel we used was already half-worn from a demo we would rather forget, which is why side A has a faint ghost of an old chorus under the second verse. We kept it.
The rule was simple. Three takes, then we move on. If a song was not working by the third pass it was the arrangement, not the take, and no amount of punching in was going to save it. That rule cost us two songs and saved us a fortnight.
Digital gives you infinite tries and somehow that makes everyone worse. When you can fix it later, you play like you will fix it later. You lean back. Tape makes you lean in. The only click is your own pulse, and the only quantising is whether the four of you agree on where the beat lands.
There is a cost and we are not going to pretend there isn't. Tape is expensive, editing is a razor blade and a chinagraph pencil, and if the machine eats a reel you have lost the night. We lost one night. The heads needed cleaning and nobody noticed until the playback came back muddy, and by then it was three in the morning and the coffee was gone.
What you get back is a record that sounds like a room instead of a grid. You can hear the walls. You can hear the amp two feet from the kit bleeding into the overheads, and that bleed is the glue that makes four people sound like one band instead of four separate files.
We mix to tape too, which horrifies our engineer friends. The two-track we bounce down to adds a compression you cannot dial in on a plugin — a gentle softening on the transients that takes the ice off the top end. Chrome, without the cuts.
People say tape is nostalgia. Maybe. But nobody accuses a painter of nostalgia for using oil instead of a screen. It is a medium with a grain, and the grain is the point. We are not trying to sound like 1979. We are trying to sound like the four of us in a laundry in 1999, because that is what we are.
If you are thinking about doing it, do it once before you decide. Book a day, bring three songs you know cold, and give yourself three takes each. You will learn more about your band in eight hours than in a year of overdubs.
The next record will be tape as well. We already booked the room — same laundry, new reels — and we will keep whatever ghosts turn up.
" + } + } ] }, { @@ -149,8 +373,25 @@ "template_key": "article", "parent_slug": "/blog", "blocks": [ - { "block_key": "heading", "title": "Title", "slot": "main", "sort_order": 1, "content": { "text": "Notes from the September run", "level": 1 } }, - { "block_key": "rich-text", "title": "Body", "slot": "main", "sort_order": 2, "content": { "html": "Three cities, one van, four amps. The van held. One amp did not.
Sydney sold out and Brisbane nearly did. We ate too much servo food and slept in the van outside a Bunnings. We would do it again next week.
" } } + { + "block_key": "heading", + "title": "Title", + "slot": "main", + "sort_order": 1, + "content": { + "text": "Notes from the September run", + "level": 1 + } + }, + { + "block_key": "rich-text", + "title": "Body", + "slot": "main", + "sort_order": 2, + "content": { + "html": "Three cities, one van, four amps. The van held. One amp did not.
Sydney sold out and Brisbane nearly did. We ate too much servo food and slept in the van outside a Bunnings. We would do it again next week.
" + } + } ] }, { @@ -159,8 +400,25 @@ "template_key": "article", "parent_slug": "/blog", "blocks": [ - { "block_key": "heading", "title": "Title", "slot": "main", "sort_order": 1, "content": { "text": "The one pedal we cannot replace", "level": 1 } }, - { "block_key": "rich-text", "title": "Body", "slot": "main", "sort_order": 2, "content": { "html": "It is a plastic chorus pedal from 1999. It hisses and the knob is loose. It is also the whole guitar sound.
We have tried to replace it twice. Both times the record sounded wrong, so the old one went back on the board.
" } } + { + "block_key": "heading", + "title": "Title", + "slot": "main", + "sort_order": 1, + "content": { + "text": "The one pedal we cannot replace", + "level": 1 + } + }, + { + "block_key": "rich-text", + "title": "Body", + "slot": "main", + "sort_order": 2, + "content": { + "html": "It is a plastic chorus pedal from 1999. It hisses and the knob is loose. It is also the whole guitar sound.
We have tried to replace it twice. Both times the record sounded wrong, so the old one went back on the board.
" + } + } ] }, { @@ -179,12 +437,40 @@ "submitLabel": "Send", "successMessage": "Thanks. We will get back to you soon.", "fields": [ - { "name": "name", "label": "Your name", "type": "text", "required": true, "width": "half" }, - { "name": "email", "label": "Email", "type": "email", "required": true, "width": "half" }, - { "name": "subject", "label": "Subject", "type": "text", "required": false, "width": "full" }, - { "name": "message", "label": "Message", "type": "textarea", "required": true, "width": "full" } + { + "name": "name", + "label": "Your name", + "type": "text", + "required": true, + "width": "half" + }, + { + "name": "email", + "label": "Email", + "type": "email", + "required": true, + "width": "half" + }, + { + "name": "subject", + "label": "Subject", + "type": "text", + "required": false, + "width": "full" + }, + { + "name": "message", + "label": "Message", + "type": "textarea", + "required": true, + "width": "full" + } ], - "formConfig": { "enabled": true, "captchaEnabled": false, "targetTable": "contact_submissions" } + "formConfig": { + "enabled": true, + "captchaEnabled": false, + "targetTable": "contact_submissions" + } } }, { @@ -196,9 +482,24 @@ "heading": "Other ways in", "columns": 3, "channels": [ - { "icon": "lucide:mail", "label": "Email", "value": "hello@chromestatic.band", "link": "mailto:hello@chromestatic.band" }, - { "icon": "simple-icons:bandcamp", "label": "Bandcamp", "value": "chromestatic.bandcamp.com", "link": "#" }, - { "icon": "simple-icons:instagram", "label": "Instagram", "value": "@chromestatic", "link": "#" } + { + "icon": "lucide:mail", + "label": "Email", + "value": "hello@chromestatic.band", + "link": "mailto:hello@chromestatic.band" + }, + { + "icon": "simple-icons:bandcamp", + "label": "Bandcamp", + "value": "chromestatic.bandcamp.com", + "link": "#" + }, + { + "icon": "simple-icons:instagram", + "label": "Instagram", + "value": "@chromestatic", + "link": "#" + } ] } } @@ -209,14 +510,43 @@ "title": "Sign in", "template_key": "auth", "blocks": [ - { "block_key": "auth-form", "title": "Sign in", "slot": "main", "sort_order": 1, "content": { "default_tab": "login", "show_social": false } } + { + "block_key": "auth-form", + "title": "Sign in", + "slot": "main", + "sort_order": 1, + "content": { + "default_tab": "login", + "show_social": false + } + } ] } ], "menu_items": [ - { "menu": "main", "label": "Home", "page_slug": "/", "sort_order": 1 }, - { "menu": "main", "label": "The band", "page_slug": "/about", "sort_order": 2 }, - { "menu": "main", "label": "Journal", "page_slug": "/blog", "sort_order": 3 }, - { "menu": "main", "label": "Contact", "page_slug": "/contact", "sort_order": 4 } + { + "menu": "main", + "label": "Home", + "page_slug": "/", + "sort_order": 1 + }, + { + "menu": "main", + "label": "The band", + "page_slug": "/about", + "sort_order": 2 + }, + { + "menu": "main", + "label": "Journal", + "page_slug": "/blog", + "sort_order": 3 + }, + { + "menu": "main", + "label": "Contact", + "page_slug": "/contact", + "sort_order": 4 + } ] } diff --git a/templates/overrides/y2k/audio-embed.ninjatpl b/templates/overrides/y2k/audio-embed.ninjatpl index f9bd0aa..5acb697 100644 --- a/templates/overrides/y2k/audio-embed.ninjatpl +++ b/templates/overrides/y2k/audio-embed.ninjatpl @@ -1,5 +1,5 @@ {# audio-embed y2k override: neon panel, mono meta. Facade script + data-bn-* attributes + {% img %} preserved byte-for-byte. #} -{{ title }}
{% endif %}{% if artist %}{{ artist }}
{% endif %}{{ form.message|default:successMessage|default:"Thanks — your message has been sent." }}
{{ text }}
{% endif %}{{ event.venue }}
{% endif %} {% if event.description %}{{ event.description }}
{% endif %} - {% if event.link %}{{ event.linkLabel|default:"Details" }}{% endif %} + {% if event.link %}{{ event.linkLabel|default:"Details" }}{% endif %} {% endif %}{% endfor %} diff --git a/templates/overrides/y2k/faq.ninjatpl b/templates/overrides/y2k/faq.ninjatpl index f37973b..1edfe2e 100644 --- a/templates/overrides/y2k/faq.ninjatpl +++ b/templates/overrides/y2k/faq.ninjatpl @@ -8,7 +8,7 @@{{ item.text }}
{% endif %} - {% if item.linkUrl and item.linkLabel %}{{ item.linkLabel }}{% endif %} + {% if item.linkUrl and item.linkLabel %}{{ item.linkLabel }}{% endif %}{{ specialHoursNote }}
{% endif %} {% if address %}{{ emptyMessage|default:"That route returned nothing. The page moved, shipped, or never existed." }}
{% if context.path %}requested: {{ context.path }}
{% endif %} diff --git a/templates/overrides/y2k/pricing.ninjatpl b/templates/overrides/y2k/pricing.ninjatpl index bb9af2f..f879cb9 100644 --- a/templates/overrides/y2k/pricing.ninjatpl +++ b/templates/overrides/y2k/pricing.ninjatpl @@ -15,7 +15,7 @@ {% if tier.description %}{{ tier.description }}
{% endif %} {% if tier.features %}{{ eyebrow }}
{% endif %} {% if heading %}{{ member.role }}
{% endif %} {% if member.bio %}{{ member.bio }}
{% endif %} {% if member.socials %}{% endif %}{% if q.quote %}“{{ q.quote }}”{% endif %}
{{ step.label }}
{% endif %} diff --git a/templates/overrides/y2k/utility-bar.ninjatpl b/templates/overrides/y2k/utility-bar.ninjatpl index 4340e4d..94be0b3 100644 --- a/templates/overrides/y2k/utility-bar.ninjatpl +++ b/templates/overrides/y2k/utility-bar.ninjatpl @@ -1,7 +1,7 @@ {# utility_bar (WO-TF-006): thin top contact strip; left/right item lists {icon,label,link}; icons render through the sprite pipeline via the ::pack:name:: shorthand. Y2K override: mono terminal readout, neon underline. #} {% set ubcls = "bg-muted text-muted-foreground border-b border-primary/30" %} {% if variant == "primary" %}{% set ubcls = "bg-primary text-primary-foreground" %}{% elif variant == "dark" %}{% set ubcls = "bg-foreground text-background" %}{% endif %} -{% macro ubitem(it) %}{% if it.link %}{% if it.icon %}::{{ it.icon }}::{% endif %}{% if it.label %}{{ it.label }}{% endif %}{% else %}{% if it.icon %}::{{ it.icon }}::{% endif %}{% if it.label %}{{ it.label }}{% endif %}{% endif %}{% endmacro %} +{% macro ubitem(it) %}{% if it.link %}{% if it.icon %}{% endif %}{% if it.label %}{{ it.label }}{% endif %}{% else %}{% if it.icon %}{% endif %}{% if it.label %}{{ it.label }}{% endif %}{% endif %}{% endmacro %}