Skip to content

Patterns / Marketing

Theme-driven compositions for sites that explain and persuade.

Fifteen granular, CSS-only contracts preserve landmarks, headings, media fallbacks, and native forms. Their visual voice comes from the active theme—not different markup.

Explore algorithmic marketing examples

One semantic contract, two visual voices

The two previews below render byte-for-byte identical Hero markup.

Neutral

Independent publishing

Stories that travel farther than the feed

Long-form reporting, field notes, and conversations delivered without an algorithm deciding what matters.

Read independentlyBrowse the latest issue

Featured story image unavailable. Read the complete story below.

Thin-Sky

Independent publishing

Stories that travel farther than the feed

Long-form reporting, field notes, and conversations delivered without an algorithm deciding what matters.

Read independentlyBrowse the latest issue

Featured story image unavailable. Read the complete story below.

Granular pattern catalog

Each example links to its independently generated contract, states, fallback, and API documentation.

Site header

Frame a site identity and its primary destinations in a resilient header landmark without owning routing or application state.

Show code
<header class="thin-site-header">
  <a data-site-brand href="/">Northline Journal</a>
  <nav class="thin-navigation-menu" aria-label="Primary">
    <ul>
      <li><a href="/stories/" aria-current="page">Stories</a></li>
      <li><a href="/field-notes/">Field notes from cooperatives and independent workshops</a></li>
      <li><a href="/about/">About</a></li>
    </ul>
  </nav>
</header>

Hero

Introduce one page promise and its next actions without displacing the document heading hierarchy.

Independent publishing

Stories that travel farther than the feed

Long-form reporting, field notes, and conversations delivered without an algorithm deciding what matters.

Read independentlyBrowse the latest issue

Featured story image unavailable. Read the complete story below.

Read the complete Hero contract

Show code
<section class="thin-hero" aria-labelledby="hero-title">
  <div class="thin-hero-copy">
    <p>Independent publishing</p>
    <h1 id="hero-title">Stories that travel farther than the feed</h1>
    <p>Long-form reporting, field notes, and conversations delivered without an algorithm deciding what matters.</p>
    <p class="thin-hero-actions">
      <a  href="#subscribe">Read independently</a>
      <a href="#latest">Browse the latest issue</a>
    </p>
  </div>
  <figure class="thin-hero-media" data-media-missing>
    <figcaption>Featured story image unavailable. Read the complete story below.</figcaption>
  </figure>
</section>

Announcement

Present a single promotional, launch, or advisory message alongside its next action without displacing the document heading order.

Read the complete Announcement contract

Show code
<aside class="thin-announcement" role="status" aria-labelledby="announcement-heading">
  <p class="thin-announcement-eyebrow">New release</p>
  <p id="announcement-heading"><strong>Issue 08 is available with expanded field reporting from five continents.</strong></p>
  <p class="thin-announcement-actions">
    <a  href="/issues/08/">Read issue 08</a>
    <a href="/archive/">Browse the archive</a>
  </p>
</aside>

Logo cloud

Present a finite set of client or partner marks as labelled supporting evidence.

Trusted by independent teams

  • Aperture
  • Fieldwork Cooperative
  • Nordhimmel Gemeinschaftswerkstatt
  • Northline

Read the complete Logo cloud contract

Show code
<section aria-labelledby="trusted-heading">
  <h2 id="trusted-heading">Trusted by independent teams</h2>
  <ul class="thin-logo-cloud">
    <li><span>Aperture</span></li>
    <li><span>Fieldwork Cooperative</span></li>
    <li><span>Nordhimmel Gemeinschaftswerkstatt</span></li>
    <li><span>Northline</span></li>
  </ul>
</section>

Feature grid

Explain a set of peer capabilities in semantic articles that reflow intrinsically.

Built for durable publishing

Theme driven

The same contract feels editorial in Neutral and expressive in Thin-Sky.

Content first

A deliberately long localized explanation wraps without hiding the destination or changing source order.

Read the complete Feature grid contract

Show code
<section aria-labelledby="features-heading">
  <h2 id="features-heading">Built for durable publishing</h2>
  <div class="thin-feature-grid">
    <article class="thin-feature">
      <svg data-icon aria-hidden="true">
        <use href="/icons/sprite.svg#sparkles">
        </use>
      </svg>
      <h3>Theme driven</h3>
      <p>The same contract feels editorial in Neutral and expressive in Thin-Sky.</p>
    </article>
    <article class="thin-feature">
      <h3>Content first</h3>
      <p>A deliberately long localized explanation wraps without hiding the destination or changing source order.</p>
    </article>
  </div>
</section>

Stats pattern

Pair a small set of meaningful measures with explicit labels.

Measured impact

Reader-supported editions
128
Countries and territories reached
42
Required client-side scripts
0

Read the complete Stats pattern contract

Show code
<section aria-labelledby="impact-heading">
  <h2 id="impact-heading">Measured impact</h2>
  <dl class="thin-marketing-stats">
    <div class="thin-stat">
      <dt>Reader-supported editions</dt>
      <dd><strong>128</strong></dd>
    </div>
    <div class="thin-stat">
      <dt>Countries and territories reached</dt>
      <dd><strong>42</strong></dd>
    </div>
    <div class="thin-stat">
      <dt>Required client-side scripts</dt>
      <dd><strong>0</strong></dd>
    </div>
  </dl>
</section>

Testimonial

Attribute a short endorsement without manufacturing interactive carousel behavior.

“We changed the theme, not the reading order or the markup. The publication finally feels like ours without becoming fragile.”

Marisol Vega, editorial director at a deliberately long organization name

Read the complete Testimonial contract

Show code
<figure class="thin-testimonial">
  <blockquote>
    <p>“We changed the theme, not the reading order or the markup. The publication finally feels like ours without becoming fragile.”</p>
  </blockquote>
  <figcaption>Marisol Vega, editorial director at a deliberately long organization name</figcaption>
</figure>

Call to action

Focus one supporting message and one honest next destination near the end of a content sequence.

Own your next release

Publish a readable page today and add enhancement only when the task requires it.

Start with semantic HTML

Read the complete Call to action contract

Show code
<section class="thin-cta" aria-labelledby="cta-heading">
  <div>
    <h2 id="cta-heading">Own your next release</h2>
    <p>Publish a readable page today and add enhancement only when the task requires it.</p>
  </div>
  <a  href="#start">Start with semantic HTML</a>
</section>

Close the page with supporting navigation, ownership, and policy information.

Show code
<footer class="thin-site-footer">
  <div>
    <strong>Northline</strong>
    <p><small>Independent stories since 2018.</small></p>
  </div>
  <nav aria-label="About">
    <strong>About</strong>
    <ul>
      <li><a href="/mission/">Mission</a></li>
      <li><a href="/accessibility/">Accessibility</a></li>
    </ul>
  </nav>
  <nav aria-label="Legal">
    <strong>Legal</strong>
    <ul>
      <li><a href="/privacy/">Privacy</a></li>
      <li><a href="/terms/">Terms</a></li>
    </ul>
  </nav>
</footer>

Pricing

Compare server-owned offers while keeping price, billing period, inclusions, and destination explicit.

Choose a publishing plan

International cooperative plan with extended support

€1.299,00 / year

  • Localized editions
  • Priority support
Choose Cooperative

Read the complete Pricing contract

Show code
<section aria-labelledby="pricing-heading">
  <h2 id="pricing-heading">Choose a publishing plan</h2>
  <div class="thin-pricing" data-align="rows">
    <article class="thin-price-card">
      <h3>Reader</h3>
      <p class="thin-price">
        <span aria-label="12 US dollars">$12</span>
        <small>/ month</small>
      </p>
      <ul>
        <li>One publication</li>
        <li>Email delivery</li>
      </ul>
      <a  href="/checkout/reader/">Choose Reader</a>
    </article>
    <article class="thin-price-card" data-featured>
      <h3>International cooperative plan with extended support</h3>
      <p class="thin-price">
        <span aria-label="1,299 euros">€1.299,00</span>
        <small>/ year</small>
      </p>
      <ul>
        <li>Localized editions</li>
        <li>Priority support</li>
      </ul>
      <a  href="/checkout/cooperative/">Choose Cooperative</a>
    </article>
  </div>
</section>

FAQ

Answer a finite set of supporting questions with native disclosure semantics.

Frequently asked questions

Can I read every edition without enabling JavaScript?

Yes. Articles, navigation, forms, and disclosures remain browser-native.

How does an unusually long localized question wrap in a narrow reading column?

It wraps in normal flow without clipping the disclosure marker.

Read the complete FAQ contract

Show code
<section aria-labelledby="faq-heading">
  <h2 id="faq-heading">Frequently asked questions</h2>
  <div class="thin-faq">
    <details>
      <summary>Can I read every edition without enabling JavaScript?</summary>
      <p>Yes. Articles, navigation, forms, and disclosures remain browser-native.</p>
    </details>
    <details>
      <summary>How does an unusually long localized question wrap in a narrow reading column?</summary>
      <p>It wraps in normal flow without clipping the disclosure marker.</p>
    </details>
  </div>
</section>

Newsletter

Collect a subscriber address through a native, server-submitted form with clear expectations.

Receive the field edition

One thoughtful issue each month. Unsubscribe with one link.

We use this only to send the edition.

Read the complete Newsletter contract

Show code
<section class="thin-newsletter" id="subscribe" aria-labelledby="newsletter-heading">
  <div>
    <h2 id="newsletter-heading">Receive the field edition</h2>
    <p>One thoughtful issue each month. Unsubscribe with one link.</p>
  </div>
  <form action="/subscribe" method="post">
    <div class="thin-field">
      <label for="newsletter-email">Email address</label>
      <input class="thin-input" id="newsletter-email" name="email" type="email" autocomplete="email" required />
      <small id="newsletter-note">We use this only to send the edition.</small>
    </div>
    <button class="thin-button" type="submit">Subscribe</button>
  </form>
</section>

Team

Introduce a finite set of collaborators with names, roles, and optional biographies in a semantic list of articles.

Editorial team

  • Rasmus Nordhimmel Field correspondent working across an intentionally long localized beat

    Covers rural cooperatives and independent workshops across Northern Europe.

    Read Rasmus's dispatches

  • Amara Okoye Accessibility editor

    Reviews every issue for readable measure, semantic structure, and durable reading order.

Read the complete Team contract

Show code
<section aria-labelledby="team-heading">
  <h2 id="team-heading">Editorial team</h2>
  <ul class="thin-team">
    <li>
      <article class="thin-team-member">
        <figure>
          <figcaption>
            <strong>Marisol Vega</strong>
            <span class="thin-team-role">Editorial director</span>
          </figcaption>
        </figure>
        <p>Reports on independent publishing from Lima and Berlin.</p>
        <p><a href="/team/marisol-vega/">Read Marisol's field notes</a></p>
      </article>
    </li>
    <li>
      <article class="thin-team-member">
        <figure>
          <figcaption>
            <strong>Rasmus Nordhimmel</strong>
            <span class="thin-team-role">Field correspondent working across an intentionally long localized beat</span>
          </figcaption>
        </figure>
        <p>Covers rural cooperatives and independent workshops across Northern Europe.</p>
        <p><a href="/team/rasmus-nordhimmel/">Read Rasmus's dispatches</a></p>
      </article>
    </li>
    <li>
      <article class="thin-team-member">
        <figure>
          <figcaption>
            <strong>Amara Okoye</strong>
            <span class="thin-team-role">Accessibility editor</span>
          </figcaption>
        </figure>
        <p>Reviews every issue for readable measure, semantic structure, and durable reading order.</p>
      </article>
    </li>
  </ul>
</section>

Contact

Collect an inbound message through a native, server-submitted form with visible expectations and no required JavaScript.

Reach the editorial desk

Responses within two working days. We use these fields only to answer your message.

Read the complete Contact contract

Show code
<section class="thin-contact" id="contact" aria-labelledby="contact-heading">
  <div>
    <h2 id="contact-heading">Reach the editorial desk</h2>
    <p>Responses within two working days. We use these fields only to answer your message.</p>
  </div>
  <form action="/contact" method="post">
    <div class="thin-field">
      <label for="contact-name">Full name</label>
      <input class="thin-input" id="contact-name" name="name" autocomplete="name" required />
    </div>
    <div class="thin-field">
      <label for="contact-email">Email address</label>
      <input class="thin-input" id="contact-email" name="email" type="email" autocomplete="email" required />
    </div>
    <div class="thin-field">
      <label for="contact-message">Message</label>
      <textarea class="thin-textarea" id="contact-message" name="message" rows="4" required>
      </textarea>
    </div>
    <button class="thin-button" type="submit">Send message</button>
  </form>
</section>

Content section

Compose editorial copy with optional supporting image or poster-first video while preserving a coherent reading order.

Field note 07

Reporting beyond the available image

When media is delayed or unavailable, the narrative and its heading remain complete. This deliberately extended localized paragraph verifies a useful reading measure and resilient wrapping.

Read the complete field note

Photograph unavailable; the article does not depend on it.

Read the complete Content section contract

Show code
<section class="thin-content-section" aria-labelledby="field-heading">
  <div>
    <p>Field note 07</p>
    <h2 id="field-heading">Reporting beyond the available image</h2>
    <p>When media is delayed or unavailable, the narrative and its heading remain complete. This deliberately extended localized paragraph verifies a useful reading measure and resilient wrapping.</p>
    <p><a href="/stories/field-note-07/">Read the complete field note</a></p>
  </div>
  <figure data-media-missing>
    <figcaption>Photograph unavailable; the article does not depend on it.</figcaption>
  </figure>
</section>