Custom Theme Protocol Tuned vs. Bespoke Depth: When to Use Each in Hallmark

Use tuned depth for custom color and font combinations within Hallmark's existing structures; choose bespoke depth only when the brief demands an entirely new page layout or composition from scratch.

The Custom Theme protocol in Nutlope/hallmark offers two distinct depths for generating non-catalog themes. Both produce a one-off OKLCH palette paired with free fonts, but they differ fundamentally in how much of Hallmark's design system they preserve. Understanding this distinction ensures you invoke the right depth for your brief and avoid unnecessary structural rework.


Tuned Depth: Custom aesthetics, preserved structures

Tuned depth generates a unique palette and font pairing while keeping Hallmark's existing macro-structures, archetypes, and genre defaults intact. In skills/hallmark/references/custom-theme.md, this is the default path once a user confirms "custom" and no structural override is detected.

What tuned depth changes

  • Color: One-off OKLCH palette constructed from brief signals (anchor colors, mood words, or attached swatches)
  • Typography: Free-font pairing selected from Hallmark's approved list, never system defaults
  • Structure: Unchanged—uses existing catalog macro-structures and genre tokens

When to select tuned depth

  • The brief requests a unique visual feel (fresh palette, specific accent color, distinctive header style) but does not describe a new layout
  • Signal 5 in the protocol is not triggered—meaning no structural vision is articulated
  • The user confirms "tuned" after the assistant offers the custom-theme fork

Example tuned brief

User: "We need a custom look for our newsletter – something fresh, 
with a teal accent and a handwriting-style header font."

Resulting stamp (from custom-theme.md § B):

/* Hallmark · macrostructure: Long Document …
 * theme: custom · vibe: "fresh, teal accent, handwriting header" …
 * axes: light / italic-serif / chromatic-other (teal) */

Bespoke Depth: Structural reconstruction from first principles

Bespoke depth triggers when the brief contains a singular structural vision that Hallmark's catalog cannot satisfy. This path in custom-theme.md (§ Bespoke depth) discards all catalog macro-structures, genres, and token defaults, rebuilding composition from universal constraints only.

What bespoke depth changes

  • Color: Custom OKLCH palette (same construction as tuned)
  • Typography: Free-font pairing (same discipline as tuned)
  • Structure: Complete redesign—no inherited macro-structure, genre, or catalog tokens; only the "slop-test" floor remains

When to select bespoke depth

  • The brief explicitly requests "no theme," "from scratch," "fully bespoke," or "ignore the catalog"
  • Signal 5 fires: the brief describes a novel structure or composition absent from the catalog (e.g., horizontal scrolling, asymmetric grids, experimental navigation)
  • The user wants art-direction rather than theme variation

Example bespoke brief

User: "We want a landing page that scrolls horizontally like a timeline, 
with no predefined macro-structure – build it from scratch."

Resulting stamp (from custom-theme.md § Bespoke depth):

/* Hallmark · macrostructure: Horizontal-Timeline …
 * theme: custom · vibe: "interactive museum exhibit, horizontal timeline" …
 * axes: dark / display-heavy / chromatic-other (museum-amber) */

How the protocol decides: Step 1 trigger signals

The fork to custom theme occurs in Step 1 of the skill flow (documented in skills/hallmark/SKILL.md). Five signals can trigger the custom route; signal 5 alone determines bespoke depth.

Signal Trigger Depth outcome
1 Explicit ask for "custom," "tailored," "own palette" Tuned (default after confirmation)
2 Named brand/anchor color Tuned
3 Three+ vibe words uncovered by catalog Tuned
4 Attached color swatch or moodboard Tuned
5 Singular structural vision—describes layout/composition the catalog lacks Bespoke

Quick check for bespoke forcing (pseudocode)

function isBespoke(brief) {
  const structuralKeywords = [
    "no theme", "from scratch", "fully bespoke",
    "ignore the catalog", "art-direct", "unique page-shape"
  ];
  return structuralKeywords.some(k => brief.toLowerCase().includes(k));
}

Universal constraints apply regardless of depth

Both tuned and bespoke depths must pass all slop-test gates defined in skills/hallmark/references/slop-test.md:

  • Color contrast and accessibility minimums
  • Typography discipline (no banned defaults, proper tone-pairings)
  • Chroma caps and paper-band definitions from color.md
  • Font-pairing rules from typography.md

Bespoke depth simply removes the catalog-derived structure layer while preserving these universal quality gates.


Key implementation files

File Purpose
skills/hallmark/references/custom-theme.md Full protocol specification, tuned vs. bespoke definitions (lines 10–13, 50–56)
skills/hallmark/references/color.md OKLCH palette construction, chroma caps, paper-band logic
skills/hallmark/references/typography.md Free-font pairing rules, banned defaults
skills/hallmark/references/slop-test.md Universal quality gates
skills/hallmark/SKILL.md Overall skill flow, Step 1 trigger logic
site/css/tokens.css Catalog-theme tokens (excluded from bespoke runs)

Summary

  • Tuned depth = custom palette + fonts within Hallmark's existing structures; use for color/font requests without layout changes
  • Bespoke depth = full structural redesign from first principles; use only when signal 5 fires or the brief explicitly rejects catalog structures
  • Both depths enforce universal slop-test gates from slop-test.md, color.md, and typography.md
  • Signal 5 (singular structural vision) is the sole automatic trigger for bespoke depth in the Step 1 protocol

Frequently Asked Questions

What happens if I use bespoke depth for a simple color change?

You incur unnecessary structural work. Bespoke depth discards Hallmark's optimized macro-structures and requires the model to rebuild composition from scratch—adding latency and risk for a problem tuned depth solves more reliably. Per custom-theme.md, default to tuned unless signal 5 is present.

Can I switch from tuned to bespoke mid-process?

The protocol requires re-invoking Step 1. If a tuned brief later reveals a structural vision (e.g., user adds "actually, make it scroll horizontally"), the assistant must re-evaluate trigger signals and restart with bespoke depth if signal 5 now fires.

Does bespoke depth use any catalog resources?

No. Bespoke runs exclude site/css/tokens.css and all genre/macro-structure defaults. The stamp becomes the single source of truth, replacing catalog tokens entirely while still obeying slop-test constraints.

How do I identify signal 5 in practice?

Look for layout-level language: "horizontal timeline," "masonry grid," "split-screen hero," "no top navigation," or explicit rejections like "ignore your themes." These describe page shape, not visual style. Signal 5 fires when the brief names a structure Hallmark's 21 catalog themes cannot provide.

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 →