Hallmark's Anti-Patterns: A Complete Guide to Banned Fonts, Gradients, and Layout Patterns

Hallmark automatically blocks common AI-generated design clichés—Inter everywhere, purple gradient heroes, three-column feature grids, and nine other visual tells—to enforce handcrafted-looking sites.

The Hallmark static site generator maintains a strict visual-design vocabulary codified in reference files that its SKILL engine consults before emitting any HTML/CSS. These anti-patterns represent the most recognizable "AI-template" aesthetics that large language models default to when lacking design constraints. According to the Nutlope/hallmark source code, every rule is non-bypassable; the engine strips banned patterns even when users request parity with prior builds.

Banned Fonts: The "Inter Everywhere" Anti-Pattern

What Hallmark Blocks

The generator hard-bans using Inter, Roboto, Open Sans, Poppins, Lato, Work Sans, DM Sans, Montserrat, or system-ui for both display and body text. This "Inter-everywhere" pattern is documented in skills/hallmark/references/anti-patterns.md#inter-everywhere and reinforced through the banned-defaults table in skills/hallmark/references/typography.md.

Why It's Flagged

A single-font page signals template-generated output because LLMs rarely learn proper typographic hierarchy without explicit constraints. The uniformity creates an immediate visual tell of uncurated generation.

The Correct Pattern: Distinct Font Pairings

Hallmark ships with approved pairings such as Instrument Serif for display and Geist Sans for body. Reference these through CSS tokens defined in site/css/tokens.css:

<link rel="stylesheet" href="site/css/tokens.css">

<style>
  body {
    font-family: var(--font-body);   /* e.g., Geist Sans */
    color: var(--color-text);
  }

  h1, h2, h3 {
    font-family: var(--font-display); /* e.g., Instrument Serif */
    font-weight: 700;
    font-style: normal;               /* never italic for headers */
  }
</style>

Source: Token definitions live in [data-theme] blocks within site/css/tokens.css.

Banned Gradients: From Purple Heroes to Gradient Text

Prohibited Gradient Patterns

Pattern Location in Source Description
Purple-to-blue/pink hero backgrounds anti-patterns.md#the-purple-gradient-hero The archetypal "AI startup" aesthetic
Gradient headline with background-clip: text anti-patterns.md#the-gradient-headline Rainbow typography without semantic purpose
Gradients between accent colors (e.g., pear→cyan) themes/hum.md#gradients-between-accents Theme-specific bans
Gradient text (universal) genres/playful.md#gradient-text Genre-level prohibition at gate 2

Why Gradients Signal "AI-Generated"

Gradient-filled heroes and headlines are the most recognizable synthetic aesthetic—they provide visual noise without structural meaning. The hallmark engine treats these as Critical severity violations in its 58-gate post-emit validator defined in skills/hallmark/references/slop-test.md.

The Correct Pattern: Solid Anchors and Subtle Accents

Use a single anchor hue for backgrounds. Apply two-stop CSS gradients only to non-text elements (thin underlines, borders) and reference the accent token:

<section class="hero">
  <h1>Build faster, ship smarter</h1>
  <p>Our platform empowers developers to iterate quickly.</p>
  <a class="cta" href="#signup">Get started</a>
</section>

<style>
  .hero {
    background-color: var(--color-surface); /* single token */
    padding: 4rem 2rem;
    /* No gradient, no background-clip:text */
  }
</style>

Source: Hero enrichment rules in skills/hallmark/references/hero-enrichment.md.

Banned Layout Patterns: Breaking the LLM Default Structure

The Critical and Major Violations

The anti-patterns.md file enumerates layout patterns under Critical and Major severity. These include:

  • Three-column feature grid: Equal-width cards with icon-above-heading
  • Full-viewport centered hero: min-height: 100vh with single sentence and CTA
  • Left-margin label / hanging header: Tag-left/header-right two-column section heads (gate 54, hard ban)
  • Eyebrow on every section: Uppercase mono-cap labels before each heading
  • Side-stripe card, card-in-card, icon-tile feature card
  • Floating-orb decoration, Aurora-blob background
  • Centered-everything composition
  • Italic headers

Source File References

Anti-Pattern Reference Location
3-column feature grid anti-patterns.md#the-3-column-feature-grid
Full-viewport centered hero anti-patterns.md#full-viewport-centred-hero
Tag-left/header-right anti-patterns.md#hard-ban-tag-left-header-right-two-column-section-heads
Eyebrow on every section anti-patterns.md#eyebrow-on-every-section

The Correct Pattern: Asymmetric, Content-Driven Layouts

Replace symmetric grids with varied widths and typographic rhythm. Let hero height follow content rather than forcing full viewport. When section labels are needed, stack them vertically in a single column.

Left-Margin Label (Correct Stacking)

<section class="feature">
  <div class="label">01</div>
  <h2>Fast deployment</h2>
  <p>Deploy in seconds with zero-config pipelines.</p>
</section>

<style>
  .feature {
    display: block;               /* single-column, not two-column */
    margin-left: 0;
  }

  .label {
    font-variant-numeric: tabular-nums;
    color: var(--color-accent);
    margin-bottom: 0.5rem;
  }
</style>

Source: Hard ban description in anti-patterns.md.

Replacing the 3-Column Grid

<div class="features">
  <article class="feature">
    <h3>Realtime analytics</h3>
    <p>Watch metrics update live.</p>
    <a href="#">Learn more →</a>
  </article>

  <article class="feature">
    <h3>Zero-config CI</h3>
    <p>Push code, get a pipeline.</p>
    <a href="#">Learn more →</a>
  </article>
</div>

<style>
  .features {
    display: flex;
    flex-wrap: wrap;
    gap: 2rem;
  }

  .feature {
    flex: 1 1 45%;               /* varied widths, not equal */
    border: 1px solid var(--color-border);
    padding: 1.5rem;
  }
</style>

Enforcement: How Hallmark Maintains Anti-Pattern Compliance

The hallmark engine loads its anti-pattern library before generation begins, as specified in skills/hallmark/SKILL.md. Post-generation, the 58-gate validator in skills/hallmark/references/slop-test.md audits output against all documented anti-patterns. Audit results appear in site/_tests/*/audit-report.md with severity classifications.

All rules are hard bans—the engine strips violations automatically without user override. This ensures every generated site escapes the "AI-template" aesthetic regardless of prompt sophistication.

Summary

  • Fonts: Ban single-font pages (especially Inter/Roboto everywhere). Use distinct display/body pairings via var(--font-display) and var(--font-body).
  • Gradients: Eliminate purple-blue heroes, gradient text, and accent-to-accent fades. Prefer solid backgrounds with subtle accent underlines.
  • Layouts: Break symmetry, avoid three-column grids and centered-everything compositions, stack labels vertically, and keep headers Roman (not italic).
  • Enforcement: All rules are non-bypassable and validated through 58 gates defined in slop-test.md.

Frequently Asked Questions

What happens if I try to use a banned font in Hallmark?

The SKILL engine automatically substitutes approved alternatives defined in typography.md and site/css/tokens.css. Even explicit user requests for "Inter as the main font" are overridden to maintain visual distinctiveness.

Can I disable the gradient restrictions for a specific project?

No. According to the source code in anti-patterns.md, gradient anti-patterns are hard bans that apply universally across all themes and genres. The engine strips gradient declarations regardless of user parity requests.

Where do I find the complete list of banned layout patterns?

The master list lives in skills/hallmark/references/anti-patterns.md. This file categorizes every visual tell as Critical, Major, or Minor and includes specific gate numbers for the post-emit validator. Theme-specific variations appear in skills/hallmark/references/themes/*.md.

How does Hallmark's anti-pattern system compare to other static site generators?

Unlike generators that leave aesthetic decisions entirely to templates or prompts, Hallmark codifies design constraints at the engine level. The slop-test.md validator with 58 gates represents an architectural commitment to handcrafted output rather than LLM-default generation.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →