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, andtypography.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:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →