diff --git a/assets/style.css b/assets/style.css index 94862d7..604bda1 100644 --- a/assets/style.css +++ b/assets/style.css @@ -410,66 +410,3 @@ border: 1px solid hsl(var(--border)); padding: 0.4rem 0.6rem; } - -/* --- Article layout grid --- */ - -.terminal-article-grid { - display: grid; - grid-template-columns: 18ch 1fr; - gap: 2rem; - align-items: start; -} - -@media (max-width: 768px) { - .terminal-article-grid { - grid-template-columns: 1fr; - } -} - -.terminal-main-80 { - max-width: 80ch; - margin: 0 auto; - font-family: var(--font-body, ui-monospace, monospace); -} - -/* --- Reliable responsive grids (see manifest.yaml input_css_append: - the host scans rendered block HTML, not theme override templates, so - responsive Tailwind grid utilities in overrides are purge-fragile; - define multi-column layout in CSS instead). minmax(0,1fr) prevents - long content forcing horizontal overflow on mobile. --- */ -.tty-grid, -.tty-grid-2, -.tty-grid-3, -.tty-grid-4 { display: grid; gap: 1.5rem; grid-template-columns: repeat(1, minmax(0, 1fr)); } -@media (min-width: 640px) { - .tty-grid-2, - .tty-grid-3, - .tty-grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } -} -@media (min-width: 1024px) { - .tty-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } - .tty-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } -} -.tty-grid-stats2, -.tty-grid-stats3, -.tty-grid-stats4 { display: grid; gap: 2rem; grid-template-columns: repeat(2, minmax(0, 1fr)); } -@media (min-width: 768px) { - .tty-grid-stats3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } - .tty-grid-stats4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } -} - -/* --- Two-column form grid (col-span utilities purge-fragile) --- */ -.tty-form-grid { display: grid; gap: 1.25rem; grid-template-columns: repeat(1, minmax(0, 1fr)); } -.tty-form-grid > .tty-col-full { grid-column: 1 / -1; } -@media (min-width: 640px) { .tty-form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } } - -/* --- Contained console shell for full-width landing pages --- */ -.tty-console-shell { width: 100%; max-width: 56rem; margin: 1.5rem auto; padding-inline: 1rem; } - -/* --- Hero heights (purge-fragile utilities pinned in CSS) --- */ -.tty-hero { position: relative; } -.tty-hero-screen { min-height: 100vh; } -.tty-hero-tall { min-height: 75vh; } -.tty-hero-half { min-height: 50vh; } -.tty-hero-auto { min-height: 24rem; } -.tty-hero-media { min-height: 20rem; } diff --git a/blocks/boot_log.ninjatpl b/blocks/boot_log.ninjatpl index 6f8b1d9..cd35273 100644 --- a/blocks/boot_log.ninjatpl +++ b/blocks/boot_log.ninjatpl @@ -1 +1 @@ -{% if lines %}
{% for line in lines %}[ {{ forloop.Counter0 }} ] {{ line }}{% endfor %}{% set cur = cursor|default:"block" %}{% if cur != "none" %}{% if cur == "underscore" %}_{% elif cur == "pipe" %}|{% else %}█{% endif %}{% endif %}
{% endif %} +{% if lines %}
{% for line in lines %}[ {{ forloop.Counter0 }} ] {{ line }}{% endfor %}{% set cur = cursor|default:"block" %}{% if cur != "none" %}{% if cur == "underscore" %}_{% elif cur == "pipe" %}|{% else %}█{% endif %}{% endif %}
{% endif %} diff --git a/blocks/code_console.ninjatpl b/blocks/code_console.ninjatpl index 99e2b7e..c5d3d00 100644 --- a/blocks/code_console.ninjatpl +++ b/blocks/code_console.ninjatpl @@ -1 +1 @@ -{% if command or output %}
{% if command %}
{{ prompt|default:"$" }}{{ command }}
{% endif %}{% if output %}
{{ output }}
{% endif %}
{% endif %} +{% if command or output %}
{% if command %}
{{ prompt|default:"$" }}{{ command }}
{% endif %}{% if output %}
{{ output }}
{% endif %}
{% endif %} diff --git a/manifest.yaml b/manifest.yaml index 6fcd716..2156b2e 100644 --- a/manifest.yaml +++ b/manifest.yaml @@ -446,70 +446,6 @@ css: animation: caret-blink 1s step-end infinite; } - /* --- Layout helpers --------------------------------------- */ - - .terminal-main-80 { max-width: 80ch; margin: 0 auto; } - - .terminal-article-grid { - display: grid; - grid-template-columns: 20ch 1fr; - gap: 2rem; - align-items: start; - } - @media (max-width: 768px) { .terminal-article-grid { grid-template-columns: 1fr; } } - - /* --- Reliable responsive grids ---------------------------- - The host scans rendered block HTML, not theme override - .ninjatpl files, so responsive Tailwind grid utilities used - only in overrides (lg:grid-cols-*, sm:grid-cols-2) are - purge-fragile and can silently collapse to one column on - desktop. Multi-column layout is therefore defined here as - plain CSS, which is compiled into the Tailwind input and can - never be purged. minmax(0,1fr) stops long/unbreakable content - from forcing horizontal overflow on mobile. */ - .tty-grid, - .tty-grid-2, - .tty-grid-3, - .tty-grid-4 { display: grid; gap: 1.5rem; grid-template-columns: repeat(1, minmax(0, 1fr)); } - @media (min-width: 640px) { - .tty-grid-2, - .tty-grid-3, - .tty-grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } - } - @media (min-width: 1024px) { - .tty-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } - .tty-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } - } - .tty-grid-stats2, - .tty-grid-stats3, - .tty-grid-stats4 { display: grid; gap: 2rem; grid-template-columns: repeat(2, minmax(0, 1fr)); } - @media (min-width: 768px) { - .tty-grid-stats3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } - .tty-grid-stats4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } - } - - /* --- Two-column form grid (col-span utilities in overrides - are purge-fragile; pin the grid in CSS) ------------------- */ - .tty-form-grid { display: grid; gap: 1.25rem; grid-template-columns: repeat(1, minmax(0, 1fr)); } - .tty-form-grid > .tty-col-full { grid-column: 1 / -1; } - @media (min-width: 640px) { .tty-form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } } - - /* --- Contained console shell ------------------------------ - The persona code-console / boot-log blocks ship no max-width - wrapper, so on a full-width landing page they run edge-to-edge - while the neighbouring sections are contained. This shell - centres them and keeps a mobile side gutter. */ - .tty-console-shell { width: 100%; max-width: 56rem; margin: 1.5rem auto; padding-inline: 1rem; } - - /* --- Hero heights (min-h-screen / arbitrary min-h-[..] are - purge-fragile utilities; pin them in CSS) ----------------- */ - .tty-hero { position: relative; } - .tty-hero-screen { min-height: 100vh; } - .tty-hero-tall { min-height: 75vh; } - .tty-hero-half { min-height: 50vh; } - .tty-hero-auto { min-height: 24rem; } - .tty-hero-media { min-height: 20rem; } - /* --- Reduced motion: kill all motion ---------------------- */ @media (prefers-reduced-motion: reduce) { diff --git a/templates/overrides/terminal/contact-card.ninjatpl b/templates/overrides/terminal/contact-card.ninjatpl index 16f13dc..4f7454f 100644 --- a/templates/overrides/terminal/contact-card.ninjatpl +++ b/templates/overrides/terminal/contact-card.ninjatpl @@ -3,7 +3,7 @@
{% if heading %}

{{ heading }}

{% endif %} {% if description %}

{{ description }}

{% endif %} -
+
{% for channel in channels %}
{% if channel.icon %}{% endif %} diff --git a/templates/overrides/terminal/contact-form.ninjatpl b/templates/overrides/terminal/contact-form.ninjatpl index 5a2e0f7..315766f 100644 --- a/templates/overrides/terminal/contact-form.ninjatpl +++ b/templates/overrides/terminal/contact-form.ninjatpl @@ -12,9 +12,9 @@ {% if description %}

{{ description }}

{% endif %} {% if form.errors._form %}
{{ form.errors._form }}
{% endif %} {% with formAction="/api/blocks/"|add:bid|add:"/submit" formTarget="#contact-form-"|add:bid %} - {% form action=formAction hx_target=formTarget hx_swap="outerHTML" class="mt-8 tty-form-grid" %} + {% form action=formAction hx_target=formTarget hx_swap="outerHTML" class="mt-8 grid grid-cols-1 sm:grid-cols-2 gap-5" %} {% for field in fields %} -
+
{% if field.label %}{% endif %} {% if field.type == "textarea" %} @@ -29,7 +29,7 @@
{% endfor %} -
+
{% endform %} diff --git a/templates/overrides/terminal/feature-grid.ninjatpl b/templates/overrides/terminal/feature-grid.ninjatpl index 2a1a60f..01453ae 100644 --- a/templates/overrides/terminal/feature-grid.ninjatpl +++ b/templates/overrides/terminal/feature-grid.ninjatpl @@ -5,7 +5,7 @@ {% if eyebrow %}

{{ eyebrow }}

{% endif %} {% if heading %}

{{ heading }}

{% endif %} {% if intro %}

{{ intro }}

{% endif %} -
+
{% for item in items %}
{% if item.icon %}
{% endif %} diff --git a/templates/overrides/terminal/hero.ninjatpl b/templates/overrides/terminal/hero.ninjatpl index 0ac86cf..796e995 100644 --- a/templates/overrides/terminal/hero.ninjatpl +++ b/templates/overrides/terminal/hero.ninjatpl @@ -26,13 +26,13 @@ {% endmacro %} {% if variant == "split" %}
-
{% if hasImage %}{% img backgroundImage alt=headlineText class="absolute inset-0 h-full w-full object-cover" layout="hero" %}{% else %}
{% endif %}
+
{% if hasImage %}{% img backgroundImage alt=headlineText class="absolute inset-0 h-full w-full object-cover" layout="hero" %}{% else %}
{% endif %}
{{ herocontent("left") }}
{% else %} {% set align = "center" %} {% if variant == "left-aligned" %}{% set align = "left" %}{% endif %} -
+
{% if hasImage %}
{% img backgroundImage alt=headlineText class="h-full w-full object-cover" layout="hero" %}{% if showOverlay %}
{% endif %}
{% else %}
{% endif %}
{{ herocontent(align) }}
diff --git a/templates/overrides/terminal/pricing.ninjatpl b/templates/overrides/terminal/pricing.ninjatpl index 0b6eb6b..0981a5c 100644 --- a/templates/overrides/terminal/pricing.ninjatpl +++ b/templates/overrides/terminal/pricing.ninjatpl @@ -4,7 +4,7 @@
{% if heading %}

{{ heading }}

{% endif %} {% if intro %}

{{ intro }}

{% endif %} -
+
{% for tier in tiers %}
{% if tier.badge %}{{ tier.badge }}{% endif %} diff --git a/templates/overrides/terminal/stats.ninjatpl b/templates/overrides/terminal/stats.ninjatpl index 6591b88..7a1cfcf 100644 --- a/templates/overrides/terminal/stats.ninjatpl +++ b/templates/overrides/terminal/stats.ninjatpl @@ -4,7 +4,7 @@
{% if heading %}

{{ heading }}

{% endif %} {% if intro %}

{{ intro }}

{% endif %} -
+
{% for item in items %}
{% if item.prefix %}{{ item.prefix }}{% endif %}{{ item.value }}{% if item.suffix %}{{ item.suffix }}{% endif %}
diff --git a/templates/terminal/article.ninjatpl b/templates/terminal/article.ninjatpl index 7032ba4..ebb3dc1 100644 --- a/templates/terminal/article.ninjatpl +++ b/templates/terminal/article.ninjatpl @@ -8,7 +8,7 @@
{% if slots.aside %} -
+
{% if slots.main %}{{ slots.main|safe }}{% else %}

// article body

{% endif %}
diff --git a/templates/terminal/default.ninjatpl b/templates/terminal/default.ninjatpl index 79c4682..236e8c1 100644 --- a/templates/terminal/default.ninjatpl +++ b/templates/terminal/default.ninjatpl @@ -6,7 +6,7 @@
{{ slots.header|safe }}
-
+
man page